Este documento describe el diseño y desarrollo de un robot seguidor de línea que usa hardware y software libre. El robot usa sensores infrarrojos CNY70 para detectar una línea negra y motores controlados por un Arduino para seguir la línea. El documento explica el diseño electrónico y mecánico del robot, así como el código de programación en Arduino para controlar los motores y hacer que el robot siga la línea.
1. ROBOT SEGUIDOR DE
LÍNEA CON SOFTWARE Y
HARDWARE LIBRE
July Paola Chitiva Ortiz
Jhosman Alfonso Lizarazo
Universidad Distrital Francisco José de Caldas
Facultad Tecnológica
Tecnología en Sistematización de Datos
2. PROBLEMA PLANTEADO
Vehículo Controlado Mediante un Computador: se podría
controlar un “vehículo” (Robot pequeño de ruedas) que
avance, retroceda o gire mediante instrucciones que se
impartan desde el computador, o se podría hacer que este
vehículo en vez de seguir instrucciones desde el PC, siga una
ruta determinada mediante sensores infrarrojos. Este será
constituido por ruedas, motores, fuente de energía, y tarjeta de
control (micro controlador Arduino ATmega168) programado en
lenguaje Arduino.
3. FASE DE DISEÑO
ELECTRÓNICO
El robot actuará como un móvil seguidor de línea
negra haciendo uso de sensores infrarrojos, los
cuales detectan la línea y envían una señal al resto
del circuito del robot. Allí, de acuerdo a la
programación realizada, se tomará una decisión
respecto a las acciones que el robot debe realizar
para mantenerse en el camino y llegar a la meta.
Este diseño electrónico cuenta con dos sistemas:
percepción y potencia.
4. PERCEPCIÓN
En el sensor infrarojo lo que hace es enviar y recibir una
señal muy pequeña que determina la transmisión de
luz infraroja que dependiendo de las condiciones del
espacio puede darnos varios valores, estos van
conectados a unas resistencias R2 y R4 controlan el
flujo de corriente, la cual desbloqueará su base y
permitirá la amplificación de la señal. Las resistencias
R1 y R3 actúan como protección de los led
disminuyendo el flujo de corriente hacia éstos.
5. CNY70
Es importante tener presente que el sensor infrarrojo
también es sensible a la luz ambiente, razón por la cual
tanto el led infrarrojo como el fotodiodo deben
recubrirse con cinta aislante negra (u otro material
oscuro), formando una especie de conducto que
limita la incidencia de esta luz y facilita que el haz de
luz infrarroja se emita en una sola dirección. O
reprogramar la sensibilidad de los sensores CNY70
dentro de la programación.
6. POTENCIA
La señal de salida obtenida de los sensores infrarrojos
se convierte en la señal de entrada a la fase de
programación, en la que interviene un módulo
electrónico (Arduino) para el control del robot. Para
ello se utilizará un componente (SN754410NE) o el
componente (L293D) quienes realizarán la función de
indicar a los motores que actividad realizar
dependiendo del momento
7. “
”
FUNCIONAMIENTO DEL PUENTE H
S1 S2 S3 S4 Resultado
1 0 0 1 El motor gira en avance
0 1 1 0 El motor gira en retroceso
0 0 0 0
El motor se detiene bajo su
inercia
1 0 1 0 El motor frena (fast-stop)
8.
9. DISEÑO MECANICO
El robot cuenta con tracción diferencial, ya
que utiliza dos ruedas que son controladas
de manera individual y soportadas en un eje
central común (rueda loca) para el balance.
Las dos ruedas tienen un recubrimiento de
caucho que permite mayor adhesión a la
superficie plana del entorno; la rueda loca
además facilita el movimiento del robot al
contar con un giro libre de 360 grados. Las
dos ruedas principales son controladas por
un motor de corriente continua que cuenta
con un sistema de engranajes que ayuda a
aumentar la potencia en el movimiento.
10. UBICACIÓN DE LAS RUEDAS DEL
ROBOT
En la figura 7 se observa la ubicación de las ruedas en el robot;
la rueda loca se encuentra en la parte posterior de éste. Las
formas de avance con las que cuenta robot son hacia adelante,
girar a la izquierda y girar a la derecha y hacia atrás si así se
requiere. En la figura 8 se indica la posición en el robot de los
sensores para el avance del seguimiento de línea:
11. DISEÑO DE PROGRAMACIÓN
Como ya se ha descrito en la fase de diseño mecánico la
tracción de los robots es diferencial, pero se hace necesario
controlar su movimiento (detenerse, avanzar, girar) y además
garantizar el correcto funcionamiento de los sensores para seguir
un camino. Para solucionar esto se propone hacerlo a través de
un entorno de programación, teniendo en cuenta la población
principal a la cual va dirigida la actividad, por lo que es
importante que sea de fácil acceso y uso.
De esta manera, el control de los robots se realiza a través el IDE
de programación de Arduino www.arduino.cc.
12. DISEÑO DE PROGRAMACIÓN
Para que sea posible la programación de la placa en el entorno
Arduino, primero debe descargarse el software Arduino y el
firmware que hará posible el reconocimiento de dicha placa por
el entorno. En la página principal de Arduino se encuentran las
especificaciones de instalación de acuerdo al tipo y versión del
sistema operativo con el que se cuente. En este proyecto se
utilizó la versión de Arduino para Ubuntu, el cual se puede
encontrar en el centro de Software para
Ubuntu: https://apps.ubuntu.com/cat/applications/arduino/
17. PROGRAMACION
7) Si no tiene permisos asignar permisos al puerto USB que se
asignó a la placa (crwxrwxrwx 1 root dialout 188, 0 may 24 10:33
ttyUSB0)
~$chmod 777 ttyUSB0
20. ELEMENTOS NECESARIOS
Cantidad Componente
2 Led infrarrojo CNY70
2 Resistencias 220
2 Resistencias 47K
1 Driver para motor L293 B ó
SN754410NE
2 Secciones de acrílico de
12x12 cms de 10 mm. de
ancho para las partes
superior e inferior.
Tornillos y Tuercas
2 Ruedas de 8 cm de
diámetro
1 Rueda loca
1 Twin Motor GrearBox
1 Placa Arduino ATMega168
1 Protoboard
Cables para conexiones
5 Condensadores
Agradecimientos:
Laura Romero
Leonardo Urrego
Documentación arduino.cc
Google y Wikipedia
Texas Instruments