Basados en Arduino robot velocista QTR-8RC Pololu sensor de línea (3 / 3 paso)

Paso 3: El Arduino código 1.0

/ / Remezclado por Hazim Bitar/Techbitar
Fecha: Feb 12, 2012
Basado en el código de ejemplo proporcionado por Pololu.com
Contacto: techbitar arroba gmail punto com

#include < PololuQTRSensors.h >
#include < AFMotor.h >

AF_DCMotor motor1 (1, MOTOR12_8KHZ); PIN 11 - crear motor #1 pwm
AF_DCMotor motor2 (2, MOTOR12_8KHZ); PIN 3 - crear motor #2 pwm

Cambiar los valores siguientes para todos los motores de tu robot, peso, tipo de rueda, etc..
#define KP.2
#define KD 5
#define M1_DEFAULT_SPEED 50
#define M2_DEFAULT_SPEED 50
#define M1_MAX_SPEED 70
#define M2_MAX_SPEED 70
#define MIDDLE_SENSOR 3
#define NUM_SENSORS 5 / / número de sensores utilizados
#define espera 2500 / / espera para 2500 para sensor salidas para ir bajo
#define EMITTER_PIN 2 / / emisor es controlado por el pin digital 2
#define DEBUG 0 / / el valor 1 si es necesario el resultado de la depuración serie

PololuQTRSensorsRC qtrrc ((unsigned char[]) {18,17,16,15,14}, NUM_SENSORS, tiempo de espera, EMITTER_PIN);

unsigned int sensorValues [NUM_SENSORS];

void setup()
{
Delay(1000);
manual_calibration();
set_motors(0,0);
}

lastError int = 0;
int last_proportional = 0;
integral de int = 0;

void loop()
{
sensores unsigned int [5];
int posición = qtrrc.readLine(sensors);
int error = posición - 2000;

motorSpeed int = KP * error + KD * (error - lastError);
lastError = error;

int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;
int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;

conjunto motor velocidades usando las dos variables de velocidad del motor por encima
set_motors (leftMotorSpeed, rightMotorSpeed);
}

void set_motors (int motor1speed, int motor2speed)
{
Si (motor1speed > M1_MAX_SPEED) motor1speed = M1_MAX_SPEED; límite de velocidad máxima
Si (motor2speed > M2_MAX_SPEED) motor2speed = M2_MAX_SPEED; límite de velocidad máxima
Si motor1speed (motor1speed < 0) = 0; mantener el motor por encima de 0
Si motor2speed (motor2speed < 0) = 0; mantener la velocidad del motor por encima de 0
motor1.SETSPEED(motor1speed);     ajustar la velocidad del motor
motor2.SETSPEED(motor2speed);     ajustar la velocidad del motor
motor1.Run(Forward);
motor2.Run(Forward);
}

void manual_calibration() {}

int i;
para (i = 0; i < 250; i ++) / / la calibración llevará unos segundos
{
qtrrc.Calibrate(QTR_EMITTERS_ON);
Delay(20);
}

Si (depurar) {/ / si es cierto, generar DAT sensor vía salida serie
Serial.Begin(9600);
para (int i = 0; i < NUM_SENSORS; i ++)
{
Serial.Print(qtrrc.calibratedMinimumOn[i]);
Serial.Print(' ');
}
Serial.println();

para (int i = 0; i < NUM_SENSORS; i ++)
{
Serial.Print(qtrrc.calibratedMaximumOn[i]);
Serial.Print(' ');
}
Serial.println();
Serial.println();
}
}

Artículos Relacionados

Arduino robot velocista

Arduino robot velocista

El propósito de la línea que sigue el robot:Sigue la línea de dos maneras diferentes.Seguir líneas blancas sobre un fondo negro para seguir una línea negra sobre un fondo blanco información sobre robots:Sensores infrarrojos gracias a una línea negra
Basados en Arduino robot radar IR

Basados en Arduino robot radar IR

el prototipo de robot en este Instructable es mi segunda basados en Arduino "slumbot" que es un robot autónomo. Se adjunta junto con restos y artículos para el hogar. El robot "ve" con un IR análisis detector girada por un servo. Ve iz
Basados en ARDUINO robot de control remoto IR

Basados en ARDUINO robot de control remoto IR

Hola todo el mundo. Este mi nuevo robot de control remoto proyecto IR utilizando arduino. Se trata de un robot de simple diseño, que usted puede construir fácilmente.Paso 1: requisitos:Requerimientos del proyecto:Arduino uno Tsop1738 (receptor ir)H p
Basados en Arduino robot humanoide mediante motores servo

Basados en Arduino robot humanoide mediante motores servo

Hola a todos,Este es mi primer robot humanoide, de lámina de plástico grueso que no sé el nombre de la hoja. Está disponible en varios espesores. Aquí usé 0,5 mm. Ahora este robot puede caminar cuando encienda. Ahora estoy trabajando en conectar Ardu
Inteligencia Artificial basados en Arduino Robot que habla

Inteligencia Artificial basados en Arduino Robot que habla

Este proyecto va a hacer nuestro robot hablando con Arduino basada en inteligencia artificial.Que en nuestro proyecto anterior hicimos nuestro robot que se verificaron en comando de voz del teléfono.Se puede ver aquí.Este proyecto que desarrollemos n
Basados en Arduino robot seguidor de luz

Basados en Arduino robot seguidor de luz

una demostración de la presentación que publiqué
Loco Caterpillar - Arduino Robot w/Grove conjunta y Sensor infrarrojo

Loco Caterpillar - Arduino Robot w/Grove conjunta y Sensor infrarrojo

Mi amigo Steven, que es un maestro de escuela secundaria, me pidió diseñar un precioso animal biónico como una ayuda a la formación que podría ayudar a hacer más interesante su estudio.Asi que me hice la oruga loca por ella. El pequeño gusano tiene d
Línea siguiente Arduino Robot

Línea siguiente Arduino Robot

Este robot utiliza un algoritmo de control PID para seguir autónomamente un camino negro sobre un fondo blanco. Utiliza una matriz de ocho sensores de reflectancia IR para determinar la posición del robot en la línea, y el microcontrolador Arduino Na
4WD todo terreno Arduino Robot para todos

4WD todo terreno Arduino Robot para todos

Siempre me ha gustado robots que pueden moverse en terrenos ásperos. Esta vez he decidido que voy a utilizar chasis confeccionado modificarlo un poco y añadiendo unos pocos componentes adicionales. Mediante el uso de un chasis listo rápidamente podrí
Simple robot velocista con un brote de Runt para Rover Actobotics

Simple robot velocista con un brote de Runt para Rover Actobotics

Junto al obstáculo evitando robots, el bot de principiante más común sería un seguidor de línea. Yo amo a seguidores de línea, y son algunas de mis compilaciones favoritas del fin de semana. Es tan divertido ver bot un poco siguiendo la línea negra p
Cómo hacer el más pequeño robot velocista mundo (robo Rizeh)

Cómo hacer el más pequeño robot velocista mundo (robo Rizeh)

Cómo hacer más pequeño robot velocista del mundo (vibrobot)"roboRizeh"peso: 5 gr tamaño: 19 x 16 x 10 mmpor: Naghi Sotoudehwww.roborizeh.irLa palabra "Rizeh" es una palabra persa que significa "pequeño". Rizeh es un robot muy
Basados en Arduino sigue líneas de escritorio - jolliBot

Basados en Arduino sigue líneas de escritorio - jolliBot

Uno de los clásicos proyectos que pueden interesar a aficionado de robótica nivel de entrada es la línea siguiente robot que más comúnmente se conoce como un seguidor de línea. Hay un montón de kit sistemas disponibles para construir seguidores de li
Proveedor de cubo de hielo automático basado en Arduino

Proveedor de cubo de hielo automático basado en Arduino

El viernes pasado algunos ingenieros de DFRobot tomaron su el desafío del cubo de hielo para concienciar para ALS. Decidimos hacerlo en una forma de fabricante con un proveedor de cubo de hielo automático basado en Arduino.And estamos desafiando a to
Cómo hacer un obstáculo evitando Arduino Robot! "Mi Robot V1"

Cómo hacer un obstáculo evitando Arduino Robot! "Mi Robot V1"

Este instructable muestra las instrucciones de pasos para hacer un obstáculo evitando robot con Arduino.Empezar a dejarmi bloghttp://robot4pro.blogspot.com/p/My-robots.htmlPaso 1: Materiales necesariosAquí le damos todo que lo necesario para hacer My