Você está na página 1de 22

Seguidor de lnea (profesional)

1. Meta del Proyecto


En este pequeo artculo intentaremos lograr que construyas un robot seguidor de lnea negra
velocista, realmente muy sencillo con pocos conocimientos, pero muy rpido y eficaz.

2. Materiales a Usar
Para empezar crearemos una lista de todos los materiales que necesitas, aparte de esto te har
falta herramientas bsicas como destornilladores, alicates, cautn, estao, y muchas ganas de
empezar. Fjate que todos los elementos del robot Relampago los puedes conseguir en tdrobotica,
solo haz clic en el nombre del producto para que puedas ver su precio y proceder a realizar la
compra para tu prximo robot seguidor de lnea.

2 Motores Pololu 10:1


: Gracias a las caractersticas de reduccin y el
diseo
del
robot
este
motor
acopla
perfectamente
con
las
necesidades
requeridas. IMPORTANTE: Si se quiere un robot ms grande o pesado recomendamos usar
motores Pololu 30:1.
Soporte para micro motores: Este soporte te permite fijar el motor a la base del robot con mucha
seguridad, especializado para micromotores pololu.

Regleta Sensores QTR 8A: Estos sensores ya ensamblados te permiten ahorrar mucho tiempo y
dinero, son 8 sensores ya arreglados para una deteccin de lnea ptima. Entre mayor nmero de
sensores tienes mayor es la velocidad a la cual el robot puede ir ya que siempre puede encontrar
la lnea que debe de seguir. Hemos visto robot seguidor de lnea con hasta 24 sensores!!!

Regulador Ajustable 2.5-9V: Es absolutamente indispensable para no daar los sensores, ya


que funcionan con 5v. El regulador lo puedes ajustar desde una entrada de 2.5V hasta 9V para
que te entrege el voltaje de salida a 5V y puedas alimentar tus circuitos o puedes utilizar
un regulador de 5 v (Lm7805).

Placa Baby Orangutn: Esta pequea placa agrupa un puente H para controlar los motores y un
microcontrolador conectados previamente ahorrndote prcticamente toda la parte electrnica y
ser nuestro controlador. Definitivamente es la mejor opcin que puedes tener para tu robot
basados en las caractersticas de tamao, precio, potencia y fcilidad de programacin.

Ruedas para seguidor de lnea : Son indispensables este tipo de ruedas ya que
aunque el robot es un seguidor de lnea, al alcanzar velocidades de ms de 2 mts segundo
necesita un agarre optimo en cada curva.
Placa, PCB Robot: Esta placa ser la estructura del robot, donde se soldaran y acoplaran todos
los componentes. Tambin puedes encontrar los diseos en el archivo adjunto al final.

Batera 7.4v 300mAH: Las bateras de LiPo son la mejor opcin en robtica el
da de hoy, est en particular es excelente opcin para el robot ya que su tamao y peso en
relacin a su eficiencia es muy buena. Ten en cuenta que ests bateras no se puede cargar con
cualquier cargador, sino que se necesita un cargador especial que tambin encuentras en
tdrobotica: cargador de bateras de LiPo.
Trompa Robot: Este componente es de acrlico, al final del tutorial encontraras un archivo zip en
donde se encuentran los planos para que lo puedas fabricar.
Programador AVR Pololu: Para programar el Baby Orangutan es necesario usar este
programador de AVR, puedes programarlo ya sea desde el AVR Studio o la interfaz de
programacin de Arduino como ser nuestro caso.
2 Cables de 5 Pines: Lo usaras para conectar los sensores a la placa del robot.
Regleta 40 Pines: Esto lo usaras en conjunto con los cables de 5 pines, igualmente para conectar
la batera a la placa.
Regleta Hembra: Esta se usara para conectar la baby orangutn a la placa principal. Este
elemento al igual que los siguientes los conseguiras con tu proveedor favorito de partes
electrnicas.
Cable Delgado 1mts: Sera necesario para conectar el motor a la placa.
2 Leds 3mm: Te indicara el estado del robot, y ser una buena decoracin.
1 Interruptor: Permite el paso de energa para programar, o usar el robot.
1 Pulsador: Te permitir activar el robot para que empiece a funcionar.
Resistencias Superficiales 1k: Resistencias para los leds y el pulsador, su funcin es no daar
los leds y no crear un corto con el pulsador al microcontrolador de la placa Baby Orangutan.
Super Bonder: Ms conocido como pegante instantneo, se usara demasiado para algunos
ajustes.
3. Construccin y Diseo
3.1 Placa, PCB Robot
En este caso el chasis del robot es la misma placa PCB, se ha realizado as para minimizar el
peso del robot y hacer que la potencia de los motores se aproveche de la mejor manera.

Adicionalmente es uno de los principales componentes del robot, ya hemos realizado el diseo y
te lo presentamos para que te gues, por supuesto te aconsejamos que lo modifiques y le des a tu
robot una forma nica. Puedes fabricar esta placa manualmente o mandarla fabricar segn sea tu
experiencia.
Puedes encontrar en el zip del proyecto una carpeta con todos los diseos para que los
modifiques y un archivo en pdf que te puede servir tambin para crear tu propio chasis. El diseo
se realiz en el PCB Wizard, puedes descargar una versin de prueba en el sitio web del
fabricante aqu.
3.2 Soldar Componentes a tu Placa
Cuando ya tengas la placa lista debes ahora soldar todos los componentes a ella, te explicaremos
de forma grafica y sencilla en donde debe ir cada uno de los componentes y su orden especifico.

3.3 Soldar y Colocar Motores


El siguiente paso es soldar a cada una de las terminales del motor un cable corto de 5 cm, los
otros extremos del cable debern ser soldados a la placa teniendo en cuenta la imagen anterior.
Siguiente a esto, se debe con los soportes para motores, ajustar los motores uno en cada lado,
siguiendo los agujeros de referencia en la placa.
3.4 Trompa del Robot
Como antes especificamos en la lista de materiales necesitas una trompa para el robot donde
colocaras los sensores para que detecten la lnea, hemos diseado unos archivos para que la
mandes a fabricar y que puedes encontrar en el zip al final del tutorial. Los archivos corresponden
a:
-Trompa
Robot
Archivo
Corel
(Corte
Laser)
-Trompa Robot PDF (Corte Artesanal)

Cuando tengas ya tu trompa debes pegar la parte nmero uno, a la placa principal del
robot. Seguidamente con 2 pequeos tornillos ajustar a la parte numero uno la nmero dos que ira
abajo, encajando los agujeros perfectamente, con esto podras cambiar el largo del robot.
3.5 Sensores y Cables
Muy bien!, pronto terminaras tu seguidor velocista!
Ahora el siguiente paso es soldar la regleta que tiene incluida los sensores, de esta manera:

IMPORTANTE: No soldar nada en el By Pass


Seguidamente colocar los sensores en la base numero 2 de la trompa del robot, entran
perfectamente, y para ajustarlos debes tener 2 pequeos tornillos.
Cuanto ya tengas todo esto armado el siguiente paso es usar los 2 cables de 5 pines y conectar
un extremo de ambos cables a la regleta de sensores, y el otro extremo a la regleta de 11 pines
que soldamos en nuestro robot.
Si hiciste correctamente todos los pasos todo debera verse algo as:

3.6 Ruedas
Tu seguidor cada vez tiene ms forma, y es hora de colocarle sus respectivas ruedas, como antes
hemos mencionado aunque estas ruedas sean de sumo, son excelentes para el seguidor de lnea
velocista ya que tienen un agarre increble.
Para colocar las ruedas de tu robot debes insertar el eje del motor en el rin, verificando que la
parte plana del eje este contra el tornillo, seguidamente pasar ajustarlo.

Ya ajustado debes insertar el neumtico a presin y ya tienes una de las dos ruedas en el robot
Sigue los mismos pasos para la otra.
4. Programacin
Esta es la etapa final de tu seguidor, no queremos que esta sea una etapa compleja y para esto te
daremos todo para que tu seguidor funcione y lo puedas adaptar a tus necesidades.
4.1 Arduino y Configuracin

Ya que la idea del robot es que sea muy sencillo y fcil de comprender, se decidi usar el famoso
software Arduino, ya que es fcil e intuitivo y seguramente lo aprenders en poco tiempo.
Adicionalmente si no sabes nada de Arduino te recomendamos visitar estos muy buenos tutoriales
aqu.
Antes de programar nuestro robot, debemos tener en cuenta que usamos una placa no nativa con
el entorno Arduino y debemos configurar y cambiar algunas cosas para que la placa sea
programada correctamente.
Pololu la empresa que fabrica esta placa, te explica un poco que debes hacer para que funcione
debidamente en el siguiente link:
http://www.pololu.com/docs/0J17/3
Igualmente tienes que instalar los drivers del programador AVR V1, en este link Pololu te explica:
https://www.pololu.com/docs/0J36/3.a (versin 1 del programador AVR)
https://www.pololu.com/docs/0J67/4.1 (versin 2 del programador AVR)
Despus de estos pasos, hay que guardar las siguientes libreras en esta direccin en tu PC:
C:\Program Files (x86)\Arduino\libraries En el caso que Arduino est instalado en otra direccin
tienes que buscarla y guardar las libreras en la carpeta libraries. Adjunto Archivo
4.2 Programa
En buena hora solo falta programar tu robot y lo tendrs en pista de inmediato!!!.
Para programar la placa debes conectarla el programador de AVR Al Baby Orangutan.
Con la batera puesta debes prender el robot y verificar que en la placa Baby Orangutan prenda el
led verde, de otra forma alguno de los pasos anteriores incluso la PCB puede estar mal. Si todo
sale bien conecta el programador a tu PC ya configurado y este a tu Baby Orangutan.
Abre el entorno Arduino y pega el siguiente Cdigo, tambin lo encuentras en la documentacin
adjunta.
#include <QTRSensors.h>
#include <OrangutanMotors.h>
//------------------------------------------------------------------------------------//
//Sensores de Linea PD
#define NUM_SENSORS 6 // Numero de sensores que usa
#define NUM_SAMPLES_PER_SENSOR 5 // Muestras por sensor
#define EMITTER_PIN 2 // emitter is controlled by digital pin 2
// sensors 0 through 5 are connected to analog inputs 0 through 5, respectively
QTRSensorsAnalog qtra((unsigned char[]) {0, 1, 2, 3, 4, 5},
NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];
OrangutanMotors motors;
//--------------------------------------------------------------------------------------//
//Velocidad Maxima Robot//--------------------------//----------------------------------//
const int maximum = 80;
//--------------------------------------------------------------------------------------//
//VALORES PD//----------//VALORES PD//--------------------------------------------------//
int VProporcional = 1.45;
int VDerivativo = 16;
//--------------------------------------------------------------------------------------//
//Velocidad de Calibracion
int velcalibrate = 20;
//--------------------------------------------------------------------------------------//
void setup()
{
int inPin = 10;
int val = 0;
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(inPin,INPUT);

val = digitalRead(inPin);
while (val == HIGH)
{
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
val = digitalRead(inPin);
};
if (val == LOW)
{
digitalWrite(9, LOW);
digitalWrite(8, LOW);
};
motors.setSpeeds(0,0);// Motores detenidos
//-------------Instrucciones
para
Empezar
Sensores--------------------------------------//

hacer

la

Calibracion

delay(1500);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);// Enciende el leds para indicar que se esta calibrando.
for (int counter=0; counter<21; counter++)
{
if (counter < 6 || counter >= 15)
OrangutanMotors::setSpeeds(-velcalibrate, velcalibrate);
else
OrangutanMotors::setSpeeds(velcalibrate, -velcalibrate);
qtra.calibrate();
delay(20);
}
digitalWrite(9, LOW); // Apaga el led para indicar que se termino la calibracion.
digitalWrite(8, LOW);
OrangutanMotors::setSpeeds(0, 0);
delay(200);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
delay(200);
digitalWrite(9, LOW); // Parpadeo para indicar que el robot esta listo.
digitalWrite(8, LOW);
delay(200); // Parpadeo para indicar que el robot esta listo.
digitalWrite(9, HIGH);
digitalWrite(8, HIGH); // Parpadeo para indicar que el robot esta listo.
delay(200);
digitalWrite(9, LOW); // Parpadeo para indicar que el robot esta listo.
digitalWrite(8, LOW);
delay(200);
//---------------------------Fin Calibracion de Sensores----------------------------------------------------//
pinMode(inPin,INPUT);
val = digitalRead(inPin);
while (val == HIGH)
{
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);

de

val = digitalRead(inPin);
};
if (val == LOW)
{
digitalWrite(9, LOW);
digitalWrite(8, LOW);
delay(1000); // Retardo X segundos antes de Empezar a andar
};
}
unsigned int last_proportional = 0;
long integral = 0;
void loop()
{
unsigned int position = qtra.readLine(sensorValues); // leemos posicion de la linea en la variable
position
// Referencia donde seguira la linea, mitad sensores.
int proportional = (int)position - 2500;
// Calculos PD
int derivative = proportional - last_proportional;
integral += proportional;
last_proportional = proportional;
int power_difference = proportional/VProporcional + integral*0 + derivative*VDerivativo;
if (power_difference > maximum)
power_difference = maximum;
if (power_difference < -maximum)
power_difference = -maximum;
if (power_difference < 0)
OrangutanMotors::setSpeeds(maximum, maximum + power_difference);
else
OrangutanMotors::setSpeeds(maximum - power_difference,maximum);
};
Antes de programarlo debers seleccionar la placa Baby Orangutan y el Programador AVR ISP v2
de la siguiente forma:
Seleccin Baby Orangutan:

Seleccin Programador:

Cuando ya tengas esto seleccionado, lo nico que falta es que programes y tu robot debera
funcionar torpemente.
5. Ajuste del Control
En esta etapa si hablaremos un poco ms del control para que entiendas el funcionamiento bsico
y porque tienes que ajustarlo.
Tu robot tiene programado un control llamado PD (Proporcional Derivativo), no entrare en
detalle acerca del l, ya que matemticamente es un poco complejo, este control tiene 2 variables

que cambian la respuesta del robot en cada situacin, literalmente son 2 numero que pueden
cambiar todo.
Esto quiz es la parte ms compleja del robot ajustar esos dos nmeros mediante muchas
pruebas, aunque algunos tips te pueden facilitar la obtencin de los valores adecuados, a
continuacin veras cuales y donde se encuentran en el cdigo estos nmeros:
//--------------------------------------------------------------------------------------//
//VALORES PD//----------//VALORES PD//--------------------------------------------------//
int VProporcional = 1.45;
int VDerivativo = 16;
Otro valor importante es la velocidad del robot, que vara de 0 a 255 y se encuentra en este lugar:
//--------------------------------------------------------------------------------------//
//Velocidad Maxima Robot//--------------------------//----------------------------------//
const int maximum = 80;
Retomando los valores del PD para lograr ajustarlos, una vez que ests seguro que el robot
funciona, debes al valor llamado VProporcional: darle un numero bajo, y el Valor
llamado VDerivativo: Darle un valor de 0, una vez hagas esto programas el robot y pruebas que
quede oscilatorio pero siguiendo la lnea, sin volverse loco a la velocidad que tu deseas, te
recomiendo empezar con menos de 150.
Hay dos posibilidades, una que el robot oscile de una manera adecuada sin descontrolarse, y otra
que el robot se vuelva loco, si sucede esto debes conectar al PC nuevamente y probar otro valor
hasta encontrar la oscilacin adecuada.
Si ya has encontrado la oscilacin adecuada, es el momento para agregarle un nmero al valor
llamadoVDerivativo, podras agregarle un nmero mayor al valor de VProporcional, progrmalo
y prueba el robot Podrs notar que el robot tiene un comportamiento totalmente diferente y que
ese valor cambio todo, ahora es cuestin de cambiar esos valores hasta encontrar que el robot
funcione como en los videos que te hemos mostrado.
Esto es un arduo trabajo y lo que ms toma tiempo, lo que yo te recomendara es que vares el
valorVDerivativoms que el VProporcional ya que este una vez encontrado es efectivo, una
forma de darte cuenta es que en rectas no oscile y acelere al 100% de la velocidad establecida,
en este punto tuVProporcional esta casi perfecto, ahora si se sale en las curvas debes cambiar
el VDerivativo poco a poco hasta encontrar el valor adecuado que haga conjunto con tu
valor VProporcional y poco a poco vallas subiendo la velocidad y cambiando los valores, la
velocidad del robot afecta los valores directamente.
NOTA: Hay que tener en cuenta que cada vez que el robot se apague debe calibrar sensores,
esta funcin est incluida en el cdigo, y mueve el robot para que los sensores pasen por toda la
lnea, cuando la batera esta descargada el robot le cuesta hacer esta operacin y debe ser
recargada.

Mi primer seguidor de linea + [Indicador de batera]


Quiero aclarar que soy un principiante en el rea de electrnica, actualmente estoy cursando el
curso de electrnica 1 en la universidad. Curso en el cual tenemos (Saludos a Olmar, es el amigo
con el que estoy trabajando este proyecto) que hacer dos robots seguidores de linea, el primero
es el que a continuacin les voy a mostrar. El segundo robot conlleva ms especificaciones, es por
eso que ojal lse logre hacer y poder compartirlo tambin por este medio.

Los robots seguidores de lnea son robots muy sencillos, que cumplen una nica misin: seguir
una lnea marcada en el suelo normalmente de color negro sobre un tablero blanco (normalmente
una lnea negra sobre un fondo blanco). Son considerados los "Hola mundo" de la robtica.
Empecemos:

Estos robots pueden variar desde los ms bsicos (van tras una lnea nica) hasta los robots que
recorren laberintos. Todos ellos, sin embargo, poseen (por lo general) ciertas partes bsicas
comunes
entre
todos:

Sensores: Un rastreador detecta la lnea a seguir por medio de sensores. Hay muchos tipos de
sensores que se pueden usar para este fin; sin embargo, por razones de costos y practicidad los
ms comunes son los sensores infrarrojos (IR), que normalmente constan de un LED infrarrojo y
un
fototransistor.
En

Este

mi

caso

es

por

el

razones

diagrama

de

que

fiabilidad

se

utilic

utiliz

dos

para

sensores

QRD1114

ambos

sensores

Motores: El robot se mueve utilizando motores. Dependiendo del tamao, el peso, la precisin del
motor, entre otros factores, stos pueden ser de varias clases: motores de corriente continua,
motores
paso
a
paso
o
servomotores.

Ruedas: Las ruedas del robot son movidas por los motores. Normalmente se usan ruedas de
materiales anti-deslizantes para evitar fallas de traccin. Su tamao es otro factor a tener en
cuenta
a
la
hora
de
armar
el
robot.

Fuente de energa: El robot obtiene la energa que necesita para su funcionamiento de bateras o
de una fuente de corriente alterna, siendo esta ltima menos utilizada debido a que le resta
independencia
al
robot.

Tarjeta de control: La toma de decisiones y el control de los motores estn generalmente a cargo
de un microcontrolador. La tarjeta de control contiene dicho elemento, junto a otros componentes
electrnicos
bsicos
que
requiere
el
microcontrolador
para
funcionar.

Funcionamiento
Todos los rastreadores basan su funcionamiento en los sensores. Sin embargo, dependiendo de la
complejidad del recorrido, el robot debe ser ms o menos complejo (y, por ende, utilizar ms o
menos
sensores).
Los rastreadores ms simples utilizan 2 sensores, ubicados en la parte inferior de la estructura,
uno junto al otro. Cuando uno de los dos sensores detecta el color blanco, significa que el robot
est saliendo de la lnea negra por ese lado. En ese momento, el robot gira hacia el lado contrario

hasta que vuelve a estar sobre la lnea. Esto en el caso de los seguidores de lnea negra, ya que
tambin
hay
seguidores
de
lnea
blanca.
Las dos maneras ms comunes de armar los rastreadores son: OPAMPS (Amplificadores
Operacionales), o con simples transistores trabajados en su zona de saturacin. Esto
dependiendo de la complejidad con la que se quiera armar el circuito. Podemos utilizar un
microcontrolador para realizar las funciones de control o guardar en l la forma del recorrido por
una
pista.
Tambin
sirve
como
escaneador
elctrico.
Materiales para el robot seguidor de Lnea

pila

cuadrada

de

2
1

Opcional
puden

los

led
infrarrojo
sensores

dos

Hojas

led

Placa
de

de
Papel

couche

1
2

Dos
2
resistencia
2
1

minimotores

de
100
resistencias
clip

y
los
QRD1114
fibra
u
led
con

9vs
fototransistores
infrarrojo

fototransistores
se
o
CNY70
de

vidrio
acetato
infrarrojo
caja
reductora
Alambre
Estao
transistores
2N3904
Ohm
(caf,
negro,
caf)
3.3K
(naranja-naranja-rojo)
para
batera
hojas

de

Materiales para el indicador de batera

2
1
resistencia
de
1
resistencia
de
resistencias
de
390
Ohms,
1
diodo
Zener
de
1
potenciometro
1
diodo
1
diodo

Diagrama

del

transistores
10K,

de
33K,

de

de
watt.
(Rx,
ver
3.3V
(Zx,
ver
de
10K
LED
LED

indicador

de

2N3904.
watt.
watt.
texto!).
texto!).
ohm.
rojo.
verde.

batera

A continuacin

Você também pode gostar