Por muy sencillo que pueda aparentar, hacer que un objeto recorra un camino preestablecido, delineado y bien marcado no es un juego de niños. Existen muchos ingredientes visibles relacionados con la electrónica y otros invisibles que tienen que ver con la física, los que en oportunidades suelen ser más complejos de resolver que los electrónicos. Hagamos un breve repaso de los conceptos fundamentales para obtener un eficiente robot siguelíneas: desde los sensores hasta la inteligente distribución de pesos dentro de la estructura móvil. Ven y aprende a construir el tuyo.
También conocidos como rastreadores o seguidores, la función de estos vehículos electrónicos es la de seguir un camino trazado por una línea que cierra un circuito sobre una superficie que puede variar en rugosidad y en desniveles. Otro concepto elemental es que el camino está formado por una línea de ancho variable que generalmente se encuadra dentro de los dos centímetros y que su color contrasta con el de la superficie del resto del piso. Es decir, si la línea es blanca, la base del circuito será negra y viceversa.
A pesar de ser utilizados como práctica inicial dentro de la robótica o mecatrónica, su función no se limita a que cumpla un simple recorrido en forma exitosa, sino que se organizan apasionantes competencias por encontrar al vehículo más ágil, al más veloz y hasta al más resistente. La correcta selección de los materiales a emplear en su construcción junto a un apropiado diseño electrónico y físico son la base fundamental de un móvil que sea capaz de funcionar correctamente. Veamos un ejemplo de cómo se desplazan, observemos la función que cumplen y luego comencemos con el análisis.
Teoría de funcionamiento
Su principio básico es muy sencillo y fácil de comprender. La primera parte para mencionar en orden de relevancia funcional es el elemento que debe detectar la línea, es decir, el camino a seguir. Aquí encontramos sensores ópticos dispuestos apropiadamente en la parte inferior del vehículo que “ven” la línea o dejan de hacerlo y le informan de esta situación al microcontrolador principal del robot. De esta forma, el vehículo nunca perderá el rumbo deseado. Los motores actuarán o no según las instrucciones que reciban y, al comenzar a rodar, los sensores leerán la línea a seguir enviando los resultados obtenidos al microcontrolador. De esta manera, el ciclo se cierra formando un lazo continuo de funcionamiento.
Una particularidad para destacar es que no todos los diseños deben incluir forzosamente un microcontrolador para poder hacer funcionar un robot de estas características. Si disponemos de dos sensores eficaces que puedan ubicarse a ambos lados de la línea a seguir y que conectados a un circuito apropiado puedan activar los motores impulsores en forma individual, ya tendremos a nuestro alcance la forma más elemental de lograr hacer funcionar un pequeño y sencillo robot siguelíneas.
La manera de lograrlo será la que nos indica la imagen siguiente. Mientras leen que efectivamente se hallan transitando fuera de la línea, los sensores mantendrán activados a los motores impulsores y el vehículo recorrerá el circuito en forma rectilínea y sin inconvenientes. Cuando una curva se hace presente o cuando el robot se desplaza fuera de su camino correcto, uno de los sensores detectará el evento y ordenará al motor de su mismo lado a frenar la marcha, mientras que el otro motor sigue su curso normal. Este procedimiento provocará un giro en la orientación de traslado y el robot comenzará un recorrido oscilatorio hasta encaminarse en la senda correcta.
La disposición mostrada de sólo dos sensores es a modo de ejemplo porque en la práctica se suelen ver modelos de robots de tres, cuatro y hasta más de seis sensores para determinar el estado del vehículo respecto a la pista. De esta forma, los sistemas basados en microcontroladores y programas muy pulidos pueden determinar la medida justa de aceleración y frenado (o desconexión) de las respectivas ruedas motoras. También es común verlos instalados en diversas zonas de la estructura vehicular y la ubicación más usual es la más próxima posible a las ruedas tractoras para así copiar de la manera más fiel el trazado de la línea.
Los sensores ubicados por delante de los que están encargados de determinar la dirección del robot servirán para avisar a un sistema controlado por microcontrolador que la línea se terminó y que hay que frenar la marcha para no salirse de la pista. Por otro lado, si colocamos detectores en la parte trasera, podemos tener todavía un control auxiliar y límite para saber donde estamos ubicados en caso de habernos pasado de largo y retomar hacia atrás el camino o bien girar y volver el recorrido en sentido inverso.
Por último, se suelen encontrar sensores desplazados mucho más afuera de la medida de la línea a seguir. Esto obedece a que muchos circuitos (hablando ya de competencias) suelen tener cruces de vías en las que el robot deberá tomar la decisión de “hacia dónde doblar”. Estos sensores se ubican allí para tomar lectura de marcas de señalización que determinan el sentido que deberá tener la marcha del robot ante el próximo cruce de líneas que enfrente. Esta información se grabará en la memoria interna del microcontrolador y, ante la presencia del cruce de vías, recurrirá a dicha información para saber qué decisión tomar.
Los sensores
Una parte fundamental en el diseño y desarrollo de un robot siguelíneas es la elección acertada de los elementos encargados de detectar la línea trazada en la superficie donde se desempeñará el vehículo. La opción más habitual es el conocido y popular optoacoplador CNY70. Este dispositivo está formado elementalmente por tan sólo un diodo emisor infrarrojo y un fototransistor que opera en la misma longitud de onda. Gracias a su formato constructivo, el acoplamiento óptico se realiza por reflexión cuando es acercado a una superficie preferentemente plana y sólida.
La emisión infrarroja del led incorporado es recuperada por el fototransistor y dicho nivel de señal obtenido dependerá de cuán cerca se encuentre el optoacoplador de la superficie de referencia. Es decir, cuanto más nos alejamos de la superficie de la pista, menor será la señal recuperada por el fototransistor. Lo mismo ocurre con el color del plano al que se exponga el optoacoplador. Una superficie blanca será mejor reflectora que una negra, por lo que una ubicación a la altura apropiada nos permitirá obtener una diferencia útil de señal reflejada. Esto nos permitirá discriminar la línea a seguir respecto al resto de la pista. Dicho de otro modo, sería discriminar el color blanco del negro para utilizarlo a nuestra conveniencia.
La señal que obtendremos con el fototransistor ubicado dentro del optoacoplador será, por supuesto, de características analógicas. ¿Qué significa esto? Que si la distancia entre el dispositivo óptico y la superficie de reflexión varía, también lo hará la señal obtenida. Esto es muchas veces una complejidad agregada por no contar con una señal constante y certera de que realmente estamos sobre la línea o no. Es decir, un uno o un cero, un sí o un no. Para resolver esta situación se apela a dos métodos muy sencillos y eficaces: la utilización de un comparador de tensión o, lo más habitual, el empleo de circuitos inversores Schmitt Trigger, tales como el CMOS CD40106. De esta forma, tendremos una señal inequívoca y fehaciente de dónde se encuentra cada sensor que hemos dispuesto en el vehículo.
Los valores de las resistencias son orientativos pero también son los utilizados en la mayoría de los casos. Debes incluir el jumper JP1 en el circuito ya que, gracias a este arreglo de hardware, se ahorran muchas líneas de código de programación de un microcontrolador por el simple hecho de que la pista tenga los colores invertidos; es decir, cuando se utiliza una superficie blanca con una línea negra en lugar de una superficie negra con una línea de trayectoria de color blanca. Por último, y como ya lo planteamos anteriormente, la estrategia a utilizar para colocar los sensores será determinada por la práctica en función de los resultados mecánicos obtenidos con el móvil. No existe una única manera como la más eficaz. Deberás agudizar el ingenio y jugar con tu diseño mecánico y dinámico hasta obtener los mejores resultados.
Los motores a utilizar
Las opciones más usuales son tres: los motores comunes de corriente contínua, los motores conocidos como “paso a paso” y los servomotores. Todos tienen sus ventajas y desventajas. En el caso de los motores convencionales de corriente contínua, nos encontramos con la posibilidad de obtener una velocidad final muy importante, y seguramente ganadora, pero su implementación requiere un hardware y líneas de código “extra” que los servomotores no necesitan. Esta necesidad se basa en la posibilidad de disminuir la velocidad ante la llegada de una curva o una intersección de líneas. Los motores de corriente continua necesitarán una inversión de polaridad, mientras que los servomotores sólo requieren una única y sencilla instrucción en el software para realizar esta operación.
Por otro lado, los tiempos de reacción son muy elevados en los motores de corriente contínua respecto a un servomotor que posee un arranque y puesta en velocidad casi instantáneos. Además, la complejidad mecánica de dotar al motor convencional de una caja de engranajes para transformarlo en un elemento motriz útil significa un tiempo extra que muchas veces se puede aprovechar para diagramar un software bien pulido y perfeccionado. Es por todos estos motivos que la mayoría de los constructores de robots siguelíneas se inclinan por servomotores.
Por su parte, los motores paso a paso se encuentran en un nicho intermedio donde el hardware adicional también es importante, pero tienen la desventaja de poseer un consumo eléctrico muy elevado, motivo por el cual no son tan empleados. A este tipo de motores los puedes encontrar en las impresoras y equipos de fax. Como dato final, agregamos que el diámetro de las ruedas a utilizar también será fundamental en nuestro diseño. Ruedas pequeñas significarán una gran velocidad inicial y capacidad de largada exitosa, mientras que ruedas de mayor diámetro equivaldrán a mayor velocidad final, cuestión que en una competencia de velocidad es muy tenida en cuenta. Ruedas anchas significarán mejor agarre en las curvas, mientras que ruedas angostas permitirán menos rozamiento y mayor velocidad final.
Baterías
La elección acertada del acumulador de energía también es de suma importancia al momento de construir un robot. Su autonomía dependerá de cómo terminaremos una competencia y de las chances que tendremos en ella ya que, en casi todos los eventos, el reglamento no permite cambiarla. Debes utilizar siempre la misma. Afortunadament, hoy están muy difundidas las baterías de Litio-Ion que, además de poseer las mejores características de peso versus suministro energético en Amperes, son las que mayor duración poseen de funcionamiento efectivo y las que menor tiempo de carga requieren. Por lo tanto, la elección en este componente no demandará mayores análisis ni pruebas.
Conclusiones
Luego de haber visto los elementos más importantes que componen un robot siguelíneas, podemos concluir el análisis reforzando la importancia de los sensores a emplear y su ubicación dentro del carro. Puedes utilizar logicamente cualquier diodo emisor (LED) infrarrojo y cualquier fotodetector, con tal que logres los resultados satisfactorios que deseas. El CNY70 es sólo una muestra de lo que se utiliza habitualmente. También puedes encontrar optoacopladores por reflexión en videograbadoras VHS en desuso (debajo de cada reel) o en equipos de cassettes antiguos.
No intentes armar tu robot según tus sueños e imaginación y tampoco pretendas un funcionamiento extraordinario a la primera. La electrónica, la mecánica y la física siempre nos tienen preparadas sorpresas y escollos para vencer y superar. No te desanimes ante los primeros ensayos fallidos. Recuerda siempre que cada robot siguelíneas exitoso que ves en los videos es la sumatoria de muchas noches de insomnio y abundantes jornadas de fracasos desmoralizantes.
Hasta aquí te hemos detallado lo que creemos que es la teoría más preponderante en la construcción de un robot siguelíneas. La práctica la harás tú con mucha paciencia, empeño y dedicación. Por supuesto, esperamos muy pronto verlo luciéndose en YouTube.
Hola mario:
Interesante el articulo, a mi me gusto mucho ademas porque en estos dias hay una competencia de seguidores de linea aca en colombia, y seria muy bueno participar. Aunque en la parte de los motores, para los servomotores deben modificarse para que puedan dar el giro completo cierto?.
Pero me gusto mucho el articulo, me voy a animar a armar uno.
Te tenia una pregunta con respecto al programa PIC SIMULATOR, me podrias indicar como se activa la interrupcion por tiempo en este programa en visual; osea lo que quiero es realizar un programa que cada tanto tiempo sea interrumpido por una cantidad de segundos.
Gracias
Hola Yesbond !
Efectivamente tienes razón. A los servos hay que modificarlos para que puedan girar libremente como un motor tradicional. Existen muchas páginas en la web que enseñan el método (que varía de un modelo de servo a otro) de ralizar este trabajo. Aparece mucho en Google como "truco" o "trucaje" de servos.
Al PIC Simulator no lo conozco, pero no debe ser muy distinto al resto de los programas que trabajan con Basic. Lo que siempre se hace es setear los registros correspondientes : GIE, OPTION_REG e INTCON según el PIC que utilices y luego escribir el programa.
En el HELP del programa tal vez tengas algún ejemplo de aplicación.
Protón Lite, que es el que utilizo yo, posee el siguiente ejemplo para el 16F877
DEVICE 16F877
OPTION_REG = %00000111
INTCON = %00100000
SYMBOL LED = PORTD.0
ON INTERRUPT GOTO My_Int ‘ Enable software interrupts, and point to interrupt handler
Fin:
DELAYMS 1
GOTO Fin
DISABLE ‘ Disable interrupts in the handler
My_Int:
TOGGLE LED ‘ Toggle an LED when interrupted
RESUME ‘ Return to main program
ENABLE ‘ Enable interrupts after the handler
donde prende y apaga un LED conectado al pin 0 del puerto D.
Saludos Cordiales !
Hola mario,
Muchas gracias por tu ayuda, esta interupcion por puerto me sirve mucho, ademas tambien para saber de otros programas en visual para programar pic.
Aunque especificamente queria saber sobre las interrupciones por tiempo, por ejemplo para hacer un reloj, o para escanear un evento cada tiempo exacto y que el micro no dependa de la instruccion. Especificamente quiero hacer que cada 30 segundos se incremente una variable, pero al mismo tiempo voy mostrando en unos leds unos mensajes; con esta interrupcion por tiempo puedo hacer las dos cosas al mismo tiempo.
Espero me puedas dar una mano con esto.
Muchas gracias de nuevo desde Colombia.
Hola, yo voy a empezar este año la carrera de ingeniería técnica especializado en electrónica, para luego seguir el camino de robótica, y la verdad es que está muy interesante, aunque me tendré que familiarizar con muchos componentes ya que de la mitad de los que se habla en el artículo me suenan a chino. Pero es muy curioso y me gusta, la verdad es que me ha resultado interesante.
Éxito en la carrera David! Si te gusta, seguramente lo lograrás!
Saludos !
Lo mio es el software a alto nivel, pero me resulta muy intezante entender como se hacen estas cosas, en la facultad hay un profesor en la escuela de computación que todos semestres pone ha hacer un carrito de estos en grupos, pero el man es demaciado quebrador y por lo general solo pasan unos pocos este curso asi que preferi llevarlo con otro profesor.
En mi facultad también hay una asignatura de robótica en la que se da esto a modo de introducción. Yo mismo he hecho dichas prácticas y he de decir que son de las más facilonas de la carreara jeje (por lo menos de la manera en que abordamos el problema: programando) Así que nada de noches de insomnio 😀 Esas noches se las llevaron otras asignaturas puñeteras ¬¬
Lo que sucede es que Ud. es muy inteligente Señor X ! Se nota en los rasgos de su rostro …
Excelente!!!
Mirad, este es el ultimo siguelineas desarrollado por mi: http://www.youtube.com/watch?v=byMcnfG_98A
Wow, muy bueno!
Hey Ncoola ! Buen trabajo amigo !
Gracias por mostrarnos tu robot!
Ojalá otros se animen y nos muestren sus trabajos.
Saludos !
el ultimo video de youtube, es un compañero que va en mi escuela, UPIITA, campeones del ultimo concurso de robotica en estados unidos, jeje, el robot de este video les dio en la madre a todos por velocidad, pero desgraciadamente tenian que dar 3 vueltas, y en la tercer vuelta, se salio y perdio, jeje, asi es la vida, pero en esta escuela buscan el desarrollo en competencias, lo bueno es que la robotica esta creciendo en esta escuela, Ojala hubiera mas apoyo.
Felicitaciones Mario, por la premiación de tu tutorial
Muy buen artículo!
Saludos desde Medellín!
vean este siguelineas, lo hice para la escuela
http://www.youtube.com/watch?v=6Df1_1UDCzI
saludos
QUE TAL DAVID ME LLAMO ISRAEL Y QUISIERA PEDIRTE SI ES POSIBLE ME PUDIERAS PASAR LOS DIAGRAMAS Y LA LISTA DE MATERIAL QUE UTILIZASTE PARA EL SIGUELINEAS REALMENTE TE LO AGRADECERIA, MI CORREO ES russia_m117@hotmail.com DE ANTEMANO TE AGRADESCO TU TIEMPO Y ATENCION.
………
hola mi nombre es idania y me gustaria que me faciliten el diagrama y los pasos o el tutorial para realizar un sigue lineas mi correo es pilar_vf30@hotmail.com bueno gracias
el programa del microcontrolador me lo podrías ceder??
me podrias ceder el programa del micro? utilizo el mplab sim
A RESPECTO DE MOTORES USAS LOS MOTORES DEPENDE EL TAMAÑO DEL ROBOT ESO YA LO SE PERO SI USO UN ROBOT DE 15 CM DE CUANTA FUERZA TENDRIA QUE SER EL MOTOR
GRACIAS
MUY BUENA LA PAGINA 😉
Como se construye me puedes dar un manual a: xamakito_hlm_@hotmail.com es mi correo porfavor enviarme ahi