MICROROBOTICA
Robot FET_0x08
Line Follower Robot Project
Vilches Expósito1, Sergio; Goitia Hernández2, Jon; Castro Castilla3, Gonzalo; García García4, Ruy
vilxes91@[Link] ‐ 2jon.goitia91@[Link] ‐ [Link]@[Link] ‐ [Link]@[Link]
Universidad Carlos III de Madrid
Centro de referencia: IES Clara Campoamor (Getafe)
evitar fallos de suministro al chip se ha optado
Resumen
por utilizar una fuente semi‐indepentiente que se
Este documento describe el desarrollo del robot detalla en el apartado correspondiente.
FET_0x08, diseñado y construido por cuatro
estudiantes de primer curso de Grado en Ingeniería El objetivo de participar en esta prueba ha sido
Electrónica Industrial y Automática de la Universidad iniciarnos en la robótica de competición y poner
Carlos III de Madrid. En marzo de 2010, el robot en práctica los conocimientos adquiridos hasta
participará en las competiciones Cosmobot y ahora.
Madridbot, siempre en la modalidad de velocistas.
El equipo
La base del robot es el chasis de un coche radiocontrol,
que ha sido modificado y al que se le han añadido Como se ha dicho, somos cuatro estudiantes que,
sensores para seguir la línea. Toda la parte electrónica frustrados por la dura carga teórica de nuestros
ha sido creada desde cero, y se ha desarrollada estudios, decidimos juntarnos e intentar aprender
alrededor del chip Atmega328. por nuestra cuenta habilidades prácticas. Por ello,
adquirimos varios Arduinos, (plataforma de
computación física open hardware de bajo coste),
Introducción con los que aprendimos las bases de la electrónica
y programación de microcontroladores en C.
FET_0x08 es un robot que aprovecha la mecánica
de un coche radiocontrol Iwaver 02 escala 1:28,
modificada para poder seguir líneas y ensamblar
la electrónica necesaria. 1. Objetivos de diseño
La decisión de participar en la competición de
A éste chasis se le cambió el motor de dirección
velocistas se tomó debido a que uno de los
por un microservo, se le añadió una placa con 5
miembros del grupo tenía a su disposición un
sensores de reflexión IR y una PCB que integra
coche RC, lo que ofrece ciertas facilidades en
tanto la electrónica de potencia y los reguladores
cuanto a la mecánica del robot. Por ello, el
de tensión como la lógica de control (basada en
principal objetivo del diseño ha sido aprovechar y
un Atmega328 y programada con Arduino). Para
1
2
mejorar al máximo esta mecánica, así reutilizar La placa está diseñada para poder cambiar la
componentes que tuviésemos en casa para evitar configuración de los sensores. Hay 3 sensores fijos
un coste elevado del robot. (en el centro) para detectar la línea en los
trayectos rectos, y otros dos sensores laterales con
posiciones variables, gracias a un conjunto de 8
2. Estructura mecánica del robot zócalos donde pueden colocarse.
Como hemos dicho, la mecánica del robot es un
chasis de un coche Iwaver 02 escala 1:28 que
utiliza propulsión trasera, incluye diferencial, y
cuya dirección está controlada mediante un
sistema similar al utilizado en automoción. Tras
quitar toda la electrónica original, se le modificó
2. Placa de sensores
el sistema de dirección.
Originalmente, el coche tenía un sistema de
dirección activado por un pequeño motor con 4. Sistema de tracción
reductora y un potenciómetro para determinar su
El robot emplea un motor DC de 6V. Se puede
posición. Debido a la poca fiabilidad de este
hallar más información sobre el motor en
mecanismo, la primera mejora fue cambiarlo por
[Link]/iwaverparts‐02‐ogi‐[Link]
un microservo de medidas similares (Turnigy
TG9e). Además, este cambio hace que el método La velocidad del motor se controlará a través de
de control a nivel de programación sea más Pulse Width Modulation (PWM), que consiste en
sencillo. variar el suministro de corriente al motor muchas
veces por segundo, consiguiendo así un valor
intermedio que puede variar entre la velocidad
mínima (parado) y la velocidad máxima.
5. Electrónica
1. Chasis del coche RC utilizado
3. Sistema sensorial 3. Placa principal con microcontrolador
La tarea de detección de líneas la llevan a cabo 5 La electrónica de este robot ha sido diseñada y
sensores de reflexión por infrarrojos QRD1114, creada desde cero por los miembros del grupo.
colocados de manera simétrica en una PCB Como ya se ha dicho, el procesador es un
diseñada y creada por el equipo. Los sensores Atmega328 programado con Arduino. La
envían información analógica al chip para su información analógica enviada por los sensores es
posterior interpretación. interpretada por el chip, que a su vez envía los
impulsos necesarios al motor y al servo para
2
3
controlar la velocidad y la dirección del robot. La sin embargo, sólo se tienen que definir dos
placa está diseñada para hacer posible futuras funciones para poder hacer funcionar el
modificaciones y mejoras. Por ejemplo, se han programa: setup que corre una vez al inicio (se
instalado dos LEDs, uno para indicar que el calibran los sensores y se inicializan las
circuito está conectado a la batería, y otro que es configuraciones) y loop, que se ejecuta
programable, para poder cambiar su significado. repetidamente.
También se han añadido extensiones de algunos
pines del chip que no están en uso, para facilitar
la añadidura de otros componentes si fuese 8. La organización del trabajo del equipo
necesario. Ambas PCBs (la principal y la de los
El trabajo en equipo se ha visto limitado por la
sensores) fueron diseñadas con el software
distancia entre los diferentes miembros del grupo.
gratuito Eagle CAD.
Por ello, la coordinación de trabajo se llevó a cabo
por medio de correo electrónico y una Wiki sobre
el robot, a través de la cual recopilábamos
información y opiniones.
En las últimas fases del desarrollo, optamos por
hacer la mayor parte del trabajo restante en
grupo, para así poder colaborar todos en el diseño
creativo y búsqueda de soluciones a los
problemas.
Las fases que se han seguido han sido son las
siguientes:
• Ingeniería inversa sobre el coche RC para
averiguar los parámetros de funcionamiento.
• Búsqueda de materiales y recursos para
adaptarlo a nuestras necesidades.
4. Diseño de la placa principal con Eagle CAD
• Creación de un prototipo para poder probar
electrónica/mecánica y probar con diferentes
6. Sistema de Alimentación ajustes.
• Creación de la electrónica final.
El robot lleva cuatro pilas AAA (1.5 V cada una)
conectadas en serie para formar una batería de • Desarrollo del código.
alimentación de 6V. El motor, el servo y los • Mejora del código.
sensores están conectados directamente a esta
fuente. Sin embargo, como el procesador opera a
5V, no se puede conectar directamente. Se ha
decidido utilizar un transformador DC/DC, que
convierte 2.5 V (conectando dos pilas) en 5V. De
esta manera, hay dos pilas que, además de
contribuir a la batería principal, también están
alimentando el procesador y los dos LEDs.
7. Programación
El robot se sirve de los cálculos de un procesador
avr, idéntico a los empleados en Arduino. Para la
programación del mismo hemos empleado el
software proporcionado por la comunidad de
Arduino, que consiste en un IDE de 5. Fase de prototipado
programación. El procesador se programa en C,
3
4
9. Problemas encontrados y posibles mejoras
La mayor dificultad con la que hemos tenido que
tratar es con el poco agarre de los neumáticos del
coche RC con el suelo. Hasta ahora, no hemos
encontrado ninguna solución a este problema, ni
parece que haya ninguna, ya que estos coches
están diseñados para correr sobre pistas de lija, y
no superficies lisas.
Por otra parte, el sistema de alimentación que el
coche trae de serie (4 pilas AAA) resulta ser poco
efectivo. Una alimentación basada en baterías
LiPo habría tenido mejor resultado.
10. Conclusiones
Este trabajo nos ha servido, ante todo, para ver
que las cosas no son tán fáciles como parece. Algo
tan simple como seguir una línea puede llevar
muchos quebraderos de cabeza, algunos bastante
previsibles (el algoritmo de control), pero otros
inesperados (bajadas de tensión, ruido debido al
motor, fallos eléctricos y mecánicos, etc).
Lo bueno: que cada uno de estos obstáculos te
enseña algo diferente, y te ayuda a no volver a
cometer los mismos errores.
Por otra parte hay que mencionar que, aún
habiendo momentos frustrantes, el desarrollo del
robot ha sido bastante divertido, al mismo tiempo
que desafiante.