Un sencillo seguidor de líneas
Código básico
Los dos sensores ópticos colocados bajo la placa de Cutebot, similares a los de un ratón de ordenador, pueden detectar líneas negras. El kit de Cutebot incluye una plantilla de papel con una línea negra cerrada a modo de circuito. Programaremos micro:bit para que Cutebot sea capaz de reconocer el circuito y recorrerlo de forma autónoma.
Tras cargar la extensión de Cutebot, comenzaremos por introducir un código que muestre en la matriz de LED de micro:bit el logotipo del seguidor de líneas:
El bucle para siempre se dedicará a leer continuamente los dos sensores de líneas y a actuar sobre la velocidad de las ruedas. Cuando los dos sensores de líneas detecten el color negro (El estado del seguimiento es ●●), significará que Cutebot está justo sobre la línea del circuito y que debe continuar avanzando hacia adelante. Para ello hay que hacer girar las dos ruedas a la misma velocidad.
Si el sensor derecho detecta color blanco (El estado del seguimiento es ●○), el robot se ha salido de la línea por la derecha y debe girar hacia la izquierda. Para ello habrá que parar la rueda izquierda y hacer girar la rueda derecha hacia adelante. El código tendrá el siguiente aspecto:
Si, por el contrario, el sensor izquierdo detecta color blanco (El estado del seguimiento es ○●), el robot se habrá desviado hacia la izquierda y habrá que girarlo hacia la derecha para recolocarlo sobre la línea:
¿Qué ocurre si el robot ha perdido completamente la línea y los dos sensores detectan color blanco? En este caso, (El estado del seguimiento es ○○), conviene parar el robot. El código completo se muestra a continuación:
Mutatis mutandis
El código desarrollado es efectivo, pero admite muchas mejoras. Por ejemplo, cuando el robot intente dar una curva muy cerrada, es posible que pierda la línea y se detenga completamente. Realicemos una pequeña modificación en el código para que Cutebot pueda volver a encontrar la línea perdida:
De acuerdo con el último bloque condicional, cuando se pierda la línea (El estado del seguimiento es ○○) el robot comenzará a rotar sobre sí mismo y no se detendrá hasta que la vuelva a encontrar.
Si no frenamos completamente las ruedas al realizar las correcciones de la trayectoria podremos conseguir que el movimiento de Cutebot sea más suave. El código requiere unos cambios mínimos:
Añadimos funciones automáticas
El seguidor de líneas puede incorporar luces automáticas que se enciendan, por ejemplo, al entrar en un túnel. Incorporar esta función es tan simple como añadir al código un evento de tiempo que lea el sensor de luz de micro:bit y, dependiendo del valor medido, encienda o apague los LED de Cutebot.