# 2. Listos

# Módulos electrónicos

En esta sección vamos a aprender los módulos que están integrados en la placa:

- Botón
- Led RGB
- Buzzer
- Sensor Infrarrojos
- Sensor de luz

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-gueu3opd.png) Fuente : Modificado de [http://makeblock.es](http://makeblock.es/)

## <span style="color: rgb(22, 145, 121);">**Botón**</span>

<span style="color: rgb(22, 145, 121);">**RETO**</span>

Realizar un programa que salga un mensaje al apretar el botón de mBot.

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--1" src="//www.youtube.com/embed/us7_aFRmXq4" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Con mBlock5 puedes utilizar o el código de la derecha o el de la izquierda

Utilizaremos la técnica VARIABLES GLOBALES, creamos una variable global MENSAJE, ver [https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock](https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock)

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

Y en el objeto oso panda

[![mbotl-boton2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbotl-boton2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbotl-boton2.png)

Con mBlock3 era

[![embedded-image-snKETvoE.png](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-snketvoe.png)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-snketvoe.png)  
Pregunta tonta: ¿por dónde sale el mensaje?  
El botón es un elemento de interacción a tener en cuenta, aunque como veremos más adelante es más útil usar el teclado del PC.  
Siempre es típico que el primer programa en un curso de programación sea un "Hola Mundo" pero lo hemos personalizado

## <span style="color: rgb(22, 145, 121);">**LED RGB**</span>

Los LED que hay montados en la placa permiten poner los 3 colores básicos a distintas tonalidades, desde 0 hasta **255**, que podemos mezclar

<span style="color: rgb(22, 145, 121);">**RETO**</span>

Realizar un programa que al apretar en el teclado.. \* 'a' se encienda el rojo \* 's' se encienda el verde \* 'd' se encienda el azul

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--0" src="//www.youtube.com/embed/ZEmBMGpltw0" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

En mBlock5 lo tienes aquí [https://planet.mblock.cc/project/3261360](https://planet.mblock.cc/project/3261360)

[![mbot1-teclas-color.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot1-teclas-color.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot1-teclas-color.png)En mBlock3  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-cofhbkge.png)  
Ahora usa el teclado de tu ordenador, pulsa las teclas **a s** y **d**  
**¿No funciona?** Puede ser que mBot se quede enganchado con algún código anterior, y no lo tengas en modo VIVO

### <span style="color: rgb(22, 145, 121);">**Buzzer**</span>

Este simpático zumbador nos da algo de juego, podemos cambiar la nota como la duración, vamos a probarlo:

##### <span style="color: rgb(22, 145, 121);">**Reto**</span>

Realizar una sirena, es decir, que suene un tono un segundo por ejemplo, y otro tono diferente durante otro segundo, y así sin parar. Para complicarlo más, sólo hará la sirena si pulsamos la tecla *espacio*. Para pararlo hay que pulsar el círculo rojo que hay al lado de la bandera.

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

En mBlock5 lo tienes aqui [https://planet.mblock.cc/project/3261365](https://planet.mblock.cc/project/3261365)

[![mbot-teclaespacio-pitido.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot-teclaespacio-pitido.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot-teclaespacio-pitido.png)

En mBlock3  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-mncs8pnq.png)  
  
[Aquí ](http://forum.makeblock.cc/t/changing-notes-on-the-speaker/2153)podemos conseguir un tono creciente

Y para los más frikis ;) ...

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--8" src="//www.youtube.com/embed/oWfT9Yyl4tA" width="560"></iframe>

De [http://juegosrobotica.es/musica-con-mbot/](http://juegosrobotica.es/musica-con-mbot/)

Si alguien lo hace, por favor que lo cuelgue[ en el muro](https://libros.catedu.es/muro.md) !

## <span style="color: rgb(22, 145, 121);">**Mando a distancia y sensor IR**</span>

El sensor de IR puede recibir del mando números, letras A-D, flechas y el botón configuración. Ojo: El mando no es exclusivo de un robot, es decir, los demás robots del aula reciben las misma información, lo importante es apuntar el mando a los sensores del robot y no a otro:

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-rzhqzfva.png)

Fuente: Tutorial de [http://makeblock.es](http://makeblock.es/)

<span style="color: rgb(0, 0, 0);">Para comprobar si tu mando funciona, es muy fácil (válido para todos los mandos, incluso el de TV) enfoca con tu móvil y aprieta a ver si se enciende la luz. La cámara de los móviles es sensible al IR</span>

<span style="color: rgb(0, 0, 0);"><video controls="controls" height="150" width="300"><source src="https://youtube.com/shorts/CdPWtj0eNZs?feature=share"></source></video></span>

##### <span style="color: rgb(22, 145, 121);">**Reto**</span>

Vamos que puedes hacerlo bailar !! con el mando a distancia, tienes que controlar sus movimientos, flecha arriba adelante, flecha atrás retrocede.... botón central (el de la rueda dentada) que pare.

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--12" src="//www.youtube.com/embed/9Q8_KgLinpg" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

Con mBlock 5 se puede en vivo o cargar. Lo tienes aquí [https://planet.mblock.cc/project/3263253](https://planet.mblock.cc/project/3263253)

[![mbot1-mando.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot1-mando.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot1-mando.png)

Con mBlock 3 sólo se puede cargar, no en vivo

## ![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-i8h4q4ku.png)  
  
<span style="color: rgb(22, 145, 121);">**Sensor Luz**</span>

El sensor Luz está situado al lado de los de IR, detecta la luz ambiente, pero también hemos experimentado que detecta la infrarroja, por lo que es sensible a la calefacción, y falsea su medida.

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-njma2jeg.png)

Fuente: Tutorial de [http://makeblock.es](http://makeblock.es/)

##### <span style="color: rgb(22, 145, 121);">**Reto que el panda diga la luz que hay**</span>

Vamos a creare un programa donde el objeto Panda diga la cantidad de luz que lee. La intención es ver cual es el umbral para realizar el siguiente reto

En mBlock5.0

Puedes utilizar la técnica de VARIABLES GLOBALES, que es muy fácil y lo hemos visto y explicado aquí [https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock](https://libros.catedu.es/books/robotica-educativa-con-mbot/page/programacion-mblock) y que sería el programa como este [https://libros.catedu.es/books/arduino-con-echidna-y-mblock-scratch/page/el-ldr-en-a5](https://libros.catedu.es/books/echidna/page/montaje-5-ldr) pero vamos a utilizar en este caso la técnica más sofisticada BROADCAST

El programa lo tienes aquí [https://planet.mblock.cc/project/3263369](https://planet.mblock.cc/project/3263369)

El programa en el dispositivo MBOT (hay que ir al + de abajo, e instalar la extensión BROADCAST)

[![mbot1-luz1.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot1-luz1.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot1-luz1.png)

El programa en el dispositivo OSO PANDA (hay que ir al + de abajo, e instalar la extensión BROADCAST)

[![mbot1-luz2.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot1-luz2.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot1-luz2.png)

#### <span style="color: rgb(22, 145, 121);">**RETO MARCHA NOCTURNA**</span>

Realizar un programa que si se apaga la luz, el robot ¡¡se pone a dar vueltas!! sino, se queda quieto:

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--18" src="//www.youtube.com/embed/1ypZ9gAjQn4" width="560"></iframe>

Solución

Utilizaremos el programa anterior para saber el UMBRAL es decir, qué valor determinamos que hay luz y no hay luz, en nuestro caso por las características del aula, lo fijamos en 500, en tu caso puede ser distinto.

En mBlock5.0 lo tienes aquí [https://planet.mblock.cc/project/3263444](https://planet.mblock.cc/project/3263444)

[![mbot1-marchanocturna.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot1-marchanocturna.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot1-marchanocturna.png)

En mBlock 3.0   
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-wg8ib60b.png)

Es muy espectacular hacerlo con los alumnos, se deja el aula a oscuras, se encienden todas las luces y todo baila !

[![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-jxuku5zj.jpeg)](https://www.pscp.tv/w/1YqJDLrpOPOJV)

---

No te quedes sólo con darle vueltas

El pobre tiene ganas de salir de marcha por la noche:

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--22" src="//www.youtube.com/embed/p9543Fjx4sM" width="560"></iframe>

#### <span style="color: rgb(22, 145, 121);">**RETO Robot polilla**</span>

Ya sabemos que las polillas van a la luz: Realizar un programa que si hay luz entonces que vaya recto, si no hay luz que de vueltas

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--24" src="//www.youtube.com/embed/8rucCGgt1gs" width="560"></iframe>

Solución

En mBlock 5.0 lo tienes aquí [https://planet.mblock.cc/project/3263452](https://planet.mblock.cc/project/3263452)

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

<p class="callout success">Se ha optado por dar un poco de potencia a la otra rueda cuando no hay luz, para que de la vuelta un poco más abierta. Puedes poner simplemente la instrucción girar (a la derecha o a la izquierda) pero si hace la vuelta abierta, va mejor.</p>

En mBlock3, y de paso que nos diga el oso la luz  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-sfmmvow7.png)

# Componentes exteriores

Componentes exteriores importantes a la hora de programar y que trataremos en este curso son:

- [Sensor de Línea](http://www.makeblock.es/productos/sensor_luz_y_escala_grises/) para utilizarlo por ejemplo como sigue líneas. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL **PUERTO 2.**
- [Sensor de distancia por ultrasonidos](http://www.makeblock.es/productos/modulo_ulstrasonidos_v2/) para utilizarlo por ejemplo como evita-obstáculos. EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL **PUERTO 3.**
- [Matriz de leds 8x16 ](http://www.makeblock.es/productos/mbot_matriz_leds/)para expresar símbolos y caracteres. Este componente no está en el [kit standard mBot](http://www.makeblock.es/productos/robot_educativo_mbot_2.4g/), pero sí en el[ que presta CATEDU](http://www.catedu.es/webcatedu/index.php/destacados/149-robotica). EN ESTE CURSO LO CONSIDERAREMOS CONECTADO EN EL **PUERTO 1.**

<p class="callout success">**Por favor no cambies los puertos del equipo de préstamo de Catedu**</p>

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-sjsolvpd.jpeg) ![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-lm1klaqu.jpeg)  
Fuente de las imágenes: [http://makeblock.es/](fuente:%20http://makeblock.es/)

## <span style="color: rgb(22, 145, 121);">**Sensor de línea**</span>

El sensor de líneas está situado en la parte inferior de mBot:

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-cynu3ifh.png)

Fuente: Tutorial de [http://makeblock.es](http://makeblock.es/)

Y tiene los siguientes valores:

- 0 si detecta todo negro (en binario 00)
- 1 si detecta blanco derecha pero negro a la izquierda (01)
- 2 al revés (10)
- 3 si detecta los dos blancos (11)

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-ltn4zuhn.png)

Fuente: Tutorial de [http://makeblock.es](http://makeblock.es/)

#### <span style="color: rgb(22, 145, 121);">**Reto, la oveja en su redil**</span>

Ponemos a mBot en un recuadro blanco con el borde negro, queremos que hagas un programa que no salga nuestro robot del "*redil*".

<p class="callout info">Consejo: Poner velocidad baja pues si va rápido se salta la línea.</p>

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--2" src="//www.youtube.com/embed/cgEejjvatlk" width="560"></iframe>

Solución

En mBlock 5.0 lo tienes aquí [https://planet.mblock.cc/project/3263664](https://planet.mblock.cc/project/3263664)

[![mbot-corral.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot-corral.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot-corral.png)

<p class="callout success">Fíjate que se ha puesto NINGUNO NEGRO de esta manera, en el momento que uno de los sensores detecte negro, dará la media vuelta</p>

En mBlock3.0

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-mdovyt7w.png)  
  
Si no funciona bien, se salta la línea.. no trabajes en vivo, carga el programa

## <span style="color: rgb(22, 145, 121);">**Sensor distancia**</span>

El sensor de distancia por ultrasonidos nos devuelve por eco la **distancia en cm** del objeto que se encuentra enfrente, hasta un máximo de 400 cm

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-1bacxvgi.png)

Fuente: Tutorial de [http://makeblock.es](http://makeblock.es/)

#### <span style="color: rgb(22, 145, 121);">**Reto huir**</span>

Queremos que hagas un programa que si pongo la mano delante, que se vaya atrás. Por ejemplo a menos de 10cm.

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--6" src="//www.youtube.com/embed/AJXZ7CayLY4" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

En mblock5.0 lo tienes aquí [https://planet.mblock.cc/project/3264009](https://planet.mblock.cc/project/3264009)

[![mbot-mealejo.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot-mealejo.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot-mealejo.png)

<p class="callout success">Se ha utilizado una instrucción de MATRIZ LED que veremos a continuación para visualizar la distancia</p>

En mBlock 3 Para calibrar, se ha utilizando el Panda que diga la distancia que lee (Instruccion **Decir...**). Está realizado el programa con mBlock3.

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-zxwprghl.png)  
  
**Fuente: Captura de pantalla mBlock. Programa: el autor.**

Intenta cogerlo !!! (por delante claro)

<iframe allowfullscreen="allowfullscreen" class="giphy-embed" frameborder="0" height="480" id="bkmrk--9" src="https://giphy.com/embed/yRXnlNNC9U7FC" width="480"></iframe>

[via GIPHY](https://giphy.com/gifs/running-funny-silent-movie-yRXnlNNC9U7FC)

## **<span style="color: rgb(22, 145, 121);">Matriz Led</span>**

Con este simpática matriz, tenemos mucho juego, podemos hacer un dibujo, texto, valores numéricos ...

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

y si hacemos dos clicks nos permite poner el gráfico que queramos, incluso guardarlo en favoritos!

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-5qcjcftk.png)

##### <span style="color: rgb(22, 145, 121);">**Reto**</span>

Realizar un programa como en anterior pero en vez de huir, que sonría. Es decir, si pongo la mano delante sale una cara sonriente.

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--13" src="//www.youtube.com/embed/KOR8Cj4wdvU" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Solución**</span>

En mBlock 5.0 lo tienes aquí [https://planet.mblock.cc/project/3264027](https://planet.mblock.cc/project/3264027)

[![mbot-sonrioymealejo.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot-sonrioymealejo.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot-sonrioymealejo.png)

En mBlock3

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-lp2l38u0.png)

Qué simpático ¿no?

<iframe allowfullscreen="allowfullscreen" class="giphy-embed" frameborder="0" height="196" id="bkmrk--17" src="https://giphy.com/embed/l41lYnl1Cw89JSsve" width="480"></iframe>

[via GIPHY](https://giphy.com/gifs/movie-1995-showgirls-l41lYnl1Cw89JSsve)

También puede ser que se ponga triste si no se pone la mano

<iframe allowfullscreen="allowfullscreen" height="314" id="bkmrk--19" src="//www.youtube.com/embed/VYLgz10udck" width="560"></iframe>

¿No funciona?

Puede ser que mBot se quede enganchado con algún código anterior, la solución como siempre ACTUALIZAR FIRMWARE

Podemos enviar un texto, con la instrucción **show face**:

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-jwswcoau.png)

Esto envía en las coordenadas 0,0 la palabra CATEDU pero.... ¡¡**SALE CAT**!!

Claro ! no cabe!! ¿cómo lo hacemos? esto requiere más programación, hay que crear una variable X e ir ¿incrementando o decrementando la coordenada x? vamos a probar decrementando

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-50tctbzb.png)

Y ahora incrementando ¿cómo salen las letras CATEDU?

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-haa530uu.png)

<p class="callout success">A pesar de que las capturas están con mBlock 3.0 con mBlock 5.0 es igual</p>

Enviar la hora .... este curso es largo ¿qué hora es? que nos lo diga:

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-if9diysc.png)

El robot no tiene reloj .. entonces ¿Quién le dice la hora?

<details id="bkmrk-mbot-lo-gobierna-un-"><summary></summary>

mBot lo gobierna un Arduino, por lo tanto un micro atmel128 con reloj interno, que puede utilizarse, pero no es este caso, pues es una instrucción azul que es propio de Scratch, por lo tanto del ordenador, que no puede usarse con Upload Arduino o Cargar sino EN VIVO

</details>