# 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>