Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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!!!
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.
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:
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.
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
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