Skip to main content

Lucípeto y Giróvago

Lucípeto...

Muñoz (2023) presenta un código muy simple para que Cutebot pueda detectar las fuentes de luz intensa y se mueva hacia ellas, al igual que un insecto.

El código combina la lectura del sensor de luz de la placa micro:bit con los bloques de control de velocidad de los motores de CuteBot. Cuando el nivel de luz medido es muy bajo, el robot enciende las luces frontales con color rojo y gira sobre sí mismo buscando una fuente de luz lo suficientemente intensa. El giro se consigue moviendo las dos ruedas a la misma velocidad, pero en sentidos contrarios.

Cuando el sensor detecta suficiente luz, las dos ruedas pasan a girar a la misma velocidad, por lo que Cutebot avanza en línea recta hacia la fuente de luz. Adicionalmente, se encienden las luces frontales con luz blanca.

Lucípeto.png

...y Giróvago

Vamos a convertir Cutebot en un spinner activado por un sonido fuerte, como una palmada. El spinner girará sobre sí mismo, encenderá una luces e irá reduciendo paulatinamente su velocidad hasta pararse.

El código utilizado es el siguiente:

Giro00.png

Esta vez introduciremos el código que hace girar al robot dentro del evento al detectar el sonido alto, disponible en el menú Entrada.

Necesitamos una variable, a la que llamaremos velocidad, para guardar el valor de la velocidad de las ruedas. Dicha velocidad irá disminuyendo progresivamente, al igual que ocurre en un spinner; la variable debe ser creada previamente pulsando sobre el menú Variables.

Giro01.png

Volviendo al código, cuando micro:bit detecte un sonido fuerte, se activará el evento al detectar el sonido alto y la variable velocidad tomará al azar un valor inicial entre el 30% el 50%.

Seguidamente se iniciará un bucle mientras que mantendrá girando el robot durante 500 mS en cada iteración. La rueda derecha se moverá hacia adelante a velocidad y la rueda izquierda se moverá hacia atrás a -velocidad.

Transcurridos 500 mS, se restará 1 a la variable velocidad. Mientras la velocidad sea mayor que 10, el bucle mientras se volverá a ejecutar y Cutebot se mantendrá girando, aunque cada vez a menor velocidad.

Cuando la velocidad sea igual o menor que 10, la ejecución saldrá del bucle mientras y parará los motores.

Añadamos ahora al nuestro spinner efectos de luces con los LED colocados bajo la placa y con los bloques de la biblioteca Neopixel. Esta biblioteca está pensada para producir efectos de luz con tiras de LED. En primer lugar lugar hay que inicializar los dos LED que forman nuestra tira:

Giro02.png

Fijar strip es un bloque que se encuentra en Neopixel. Strip es la variable con la que nos refirimos a las luces colocadas bajo la placa de Cutebot, P15 es el puerto correspondiente a las luces y 2 es el número total de luces a controlar.

Los LED RGB generan cada color gracias a la mezcla de tres luces, cada una de ellas correspondiente a uno de los tres colores primarios: rojo, verde y azul.

En cada ejecución del bucle mientras se encenderán los dos LED de la variable strip con un color que será la mezcla de los tres colores rojo, verde y azul, generados cada uno de ellos con intensidades aleatorias, desde 0 (valor mínimo) hasta 255 (valor máximo).

Giro04.png

Al salir del bucle mientras es preciso apagar los LED mediante el bloque strip show color black.