# Cutebot se mueve

##### ¿Qué es Cutebot?

Cutebot es un **pequeño robot programable** diseñado para enseñar programación y robótica a los niños. Cutebot dispone de una ranura en la que se inserta una tarjeta micro:bit, que actúa como controladora del robot.

El fabricante de Cutebot es [Elecfreaks](https://www.elecfreaks.com/about-us), una empresa con sede en China que desarrolla, fabrica y vende productos educativos basados en micro:bit. La empresa es el distribuidor de micro:bit en China y uno de los **socios de la fundación micro:bit**.[![Cutebot.jpg](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/cutebot.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-09/cutebot.jpg)

Cutebot tiene las siguientes **funcionalidades**:

- Dos <span style="color: rgb(224, 62, 45);">ruedas controladas </span>independientemente y conectadas a sendos motores provistos de reductoras de engranajes.
- Alimentación mediante tres pilas alcalinas R06 (AAA), tres pilas recargables de NiMH o un pack de batería de litio.
- Dos <span style="color: rgb(224, 62, 45);">LED frontales </span>RGB de colores seleccionables desde el código del programa.
- Dos <span style="color: rgb(224, 62, 45);">LED RGB bajo la placa</span> para producir efectos de luz mediante una biblioteca de bloques específica.
- Dos sensores colocados bajo la placa para <span style="color: rgb(224, 62, 45);">detectar líneas</span>.
- Dos LED azules sobre la placa para informar sobre el estado de la detección de líneas.
- Un emisor y receptor de <span style="color: rgb(224, 62, 45);">ultrasonidos</span> para la detección de obstáculos.
- Varios puertos para la conexión de <span style="color: rgb(224, 62, 45);">accesorios</span> tales como brazos motorizados, cámaras de inteligencia artificial, pantallas OLED, servomotores, etc.
- Un receptor de <span style="color: rgb(224, 62, 45);">infrarrojos</span> que permite el control del robot mediante un mando a distancia.
- Un pequeño <span style="color: rgb(224, 62, 45);">zumbador</span> para producir sonidos.

<p class="callout info">Cada sensor o actuador es accesible mediante **puertos numerados desde P0 hasta P15**. Por ejemplo, las luces LED situadas bajo la placa se activan desde el puerto P15. Los puertos P13 y P14 corresponden a los sensores del seguidor de líneas.</p>

##### Biblioteca de bloques de Cutebot

Para controlar Cutebot es preciso programar previamente la placa micro:bit. Los bloques de programación para el control de Cutebot no están disponibles inmediatamente en el editor MakeCode, por lo que deben ser cargados antes de comenzar a programar. Para ello hay que pulsar sobre el menú <span style="color: rgb(126, 140, 141);">**+Extensiones**</span> de MakeCode.

[![Extensiones.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/extensiones.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/extensiones.png)

Se desplegará un **mosaico de imágenes de accesorios** entre los que se encuentran varios robots. Tan sólo hay que buscar la imagen correspondiente a Cutebot y pulsar sobre ella.

[![Selección Cutebot.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/seleccion-cutebot.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/seleccion-cutebot.png)

Tras unos instantes, se cargarán **dos nuevos menús de bloques**, uno llamado **<span style="color: rgb(45, 194, 107);">Cutebot</span>** para el control del robot y otro llamado <span style="color: rgb(98, 216, 196);">**Neopixel**</span> para producir efectos de luces con los LED colocados bajo la placa.

El menú **<span style="color: rgb(45, 194, 107);">Cutebot</span>** ofrece **bloques** para el control de la velocidad de las ruedas, para ajustar el color de las luces, para leer los sensores de infrarrojos, de líneas y de obstáculos y para accionar los servomotores que pudieran conectarse.

[![Menú Cutebot.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/menu-cutebot.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/menu-cutebot.png)

##### Cutebot se mueve

Para probar Cutebot, vamos a programar un pequeño bucle que haga **avanzar una corta distancia al robot cuando detecte un ruido fuerte**, como una palmada. Adicionalmente, el robot encenderá las luces frontales y emitirá un breve pitido de confirmación. El código a introducir es el siguiente:

[![Cute Palmada.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/cute-palmada.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/cute-palmada.png)

La secuencia que se ejecuta continuamente dentro del bucle **<span style="color: rgb(53, 152, 219);">para siempre</span>** consta de los siguientes pasos:

- Comprobar si el nivel de sonido supera un cierto umbral, en nuestro ejemplo, 180.
- En caso afirmativo encender las dos luces frontales con luz roja.
- Tocar una nota musical breve y esperar a que termine de sonar.
- Hacer girar las dos ruedas hacia adelante a un 25% de su velocidad máxima.
- Esperar un segundo.
- Detener las ruedas.
- Apagar las luces.

En algunos casos, Cutebot no conseguirá avanzar en línea recta. Esto ocurrirá cuando las ruedas giren a velocidades ligeramente distintas, efecto producido por la variabilidad en las características de los motores. Por ejemplo, el robot se desviará a la derecha cuando la rueda izquierda gire a una velocidad algo mayor que la derecha. Para solucionar este problema conviene reducir ligeramente la velocidad de la rueda izquierda o bien aumentar la velocidad de la rueda derecha.

[![Reducir velocidad.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/reducir-velocidad.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/reducir-velocidad.png)