Robot seguidor de línea programado en Minibloq

Uno de los atractivos de la robótica es que permite, con un poco de ingenio, crear una gran variedad de diseños con equipamiento no necesariamente tan costoso, dando lugar a una gran variedad de robots que pueden realizar las funciones mas diversas.

Un seguidor de líneas es un robot que, de manera autónoma, es capaz de seguir una trayectoria arbitraria marcada con una línea que, según el diseño, puede ser de color claro (blanco) o de color oscuro (negro). Esto se logra habitualmente gracias a una cantidad variable de sensores infrarrojos que detectan el contraste entre la línea que define la trayectoria y el fondo sobre el que está pintada.

En este artículo les comparto una experiencia educativa realizada con un kit de robótica comercial programado con el software Minibloq.

Introducción

En el caso del robot creado en nuestra escuela, utilizando los componentes que integran el Kit N8 de la empresa Robotgroup

El movimiento se hace siguiendo una línea de color negro. Para mejorar el contraste, pintamos  una “pista” de color blanco de 15 cm con una línea negra al medio, de 5 cm de ancho sobre el piso. Este contraste es importante, porque permite que el robot detecte la diferencia entre los dos colores y sea capaz de seguir la línea que marca la trayectoria.

Fig. 1. Pista de fondo blanco con línea central negra

Sensores

Precisamente para detectar esa diferencia de color, usamos dos sensores infrarrojos del tipo CNY70 que están incluidos en el Kit.

Estos sensores tienen un diodo que emite luz infrarroja y un fototransistor que la recibe. Cuando se lo apunta a una superficie, la cantidad de luz que detecta el receptor depende del color de la superficie: las superficies oscuras reflejan poca luz y la cantidad de luz detectada es baja, mientras que las superficies claras reflejan mas luz y la cantidad de luz detectada es alta.

Nuestro robot está programado en Minibloq, que tiene un bloque o función especial para leer este tipo de sensores que devuelve un valor entre 0 y 100, según la cantidad de luz que se detecte. Entonces, cuando un sensor está sobre la linea negra, el bloque devuelve valores bajos, mientras que si está sobre el fondo blanco, el bloque devuelve valores altos.

Fig. 2. El sensor CNY70 y su circuito interno

Nuestro diseño emplea dos sensores de este tipo, que es el mínimo para un seguidor de líneas, separados unos cuatro centímetros.

Dos sensores permiten saber si el robot se está desviando para la derecha o la izquierda, detectando cual es el que se sale de la línea negra.

Otros diseños mas sofisticados emplean un número mas elevado de sensores, hasta 6 o incluso 8 de ellos.

La separación entre los sensores es importante, porque está relacionada con la capacidad del robot para detectar rápidamente si se está desviando de la trayectoria.

Fig. 3. Sensores infrarrojos al frente del robot

Hay que tener especial cuidado con las condiciones de iluminación. Nuestras pruebas se realizaron en el patio de la escuela, es decir al aire libre y sujetas a muchos cambios de iluminación. La pintura negra tiene cierto brillo y puede reflejar la luz solar, produciendo lecturas altas equivalentes a la que da el color blanco en condiciones de menor iluminación. Esto puede solucionarse en parte cubriendo los sensores para crear una “zona de sombra” o haciendo mas inteligente el software de control (en nuestro caso exploramos sólo la primer opción)

 Fig. 4. Sensores protegidos de la luz ambiente

Algoritmo

El algoritmo de control es muy simple y se basa en que cada sensor controla un motor pero de forma cruzada: el sensor ubicado a la izquierda controla el motor derecho y el sensor ubicado a la derecha controla el motor izquierdo.

Esto puede verse en la Fig. 5, donde se ven los sensores y motores conectados a la CPU que contiene el programa.

Cuando un sensor detecta “color negro” pone en marcha el motor. Si detecta “color blanco” detiene el motor correspondiente. Esto tiene el efecto de que si el robot va sobre la línea negra, ambos sensores detectan color negro y los dos motores están encendidos, manteniendo el movimiento en línea recta (a), pero si la línea tuerce, por ejemplo a la derecha (b), el sensor izquierdo detectará el fondo blanco, deteniendo momentáneamente el motor derecho y produciendo una corrección del rumbo en esa dirección.

Algo similar ocurriría si la linea tuerce a la izquierda (c). Esta detección y corrección se hace de manera constante, aplicando breves ajustes de dirección que permiten que el movimiento del robot se vaya adaptando a la trayectoria marcada.

Fig. 5. Principio de funcionamiento del robot siguelíneas

Programa

Como se dijo antes, el programa está escrito en Minibloq, por la simplicidad de uso que ofrece y porque el algoritmo es sencillo de implementar. 

En referencia a la Fig. 6, el bloque 1 marca el comienzo del programa y el bloque 2 inicia un bucle sin fin (generalmente todos los programas en robótica consisten en un bucle que se repite indefinidamente, porque el programa no termina nunca).

El bloque 3 pregunta si el valor que entrega el sensor infrarrojo derecho es menor a 30. Si la respuesta es afirmativa (bloque 4) significa que ese sensor está sobre la pintura negra y prende el motor izquierdo al 40% (el signo menos es para ajustar correctamente el sentido de giro). Si la respuesta es negativa, el motor se para (bloque 5).

Los bloques 6, 7 y 8 hacen lo mismo con el sensor izquierdo y el motor derecho.

Finalmente el bloque 9 cierra el bucle del programa.

Fig. 6. Programa en Minibloq

El programa puede descargarse aquí

Pruebas

Para finalizar, algunas imágenes y videos del robot armado y las pruebas realizadas para ponerlo a punto. Un gran reconocimiento a Facundo, que le dedicó mucho tiempo extraescolar a este proyecto!


1 comentario en «Robot seguidor de línea programado en Minibloq»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Habilitar notificaciones OK No, gracias