# 3. Ya!!!

# Evitar obstáculos

Programa al mBot para que sea capaz de evitar cualquier obstáculo, paredes... usando el sensor de ultrasonidos, aunque el del vídeo le ha puesto sirena!!

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

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

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

<span style="color: rgb(0, 0, 0);">Con mBlock 5.0 te vamos a proponer que lo obtengas de los programas ejemplo</span>

<span style="color: rgb(0, 0, 0);">[![mbot-salvaobstáculos.png](https://libros.catedu.es/uploads/images/gallery/2023-12/scaled-1680-/mbot-salvaobstaculos.png)](https://libros.catedu.es/uploads/images/gallery/2023-12/mbot-salvaobstaculos.png)</span>

<span style="color: rgb(0, 0, 0);">Y te proponemos que lo modifiques</span>

- <span style="color: rgb(0, 0, 0);">Que vaya rápido</span>
- <span style="color: rgb(0, 0, 0);">Que funcione en vivo</span>

##### <span style="color: rgb(22, 145, 121);">**RETO que no se atasque**</span>

Se ataca a veces, ¿y si le haces estas mejoras? (la captura está en mBlock3 pero para mBloc5 es igual)

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

##### <span style="color: rgb(22, 145, 121);">**RETO que salga de un laberinto**</span>

Una opción es salir de un laberinto, [página descarga piezas 3D](http://www.thingiverse.com/thing:1169585)

# Siguelíneas

El sensor sigue-líneas no le hemos sacado potencial, pide a gritos que siga un circuito, en el kit impreso hay una propuesta de circuito, también te lo puedes descargarlo [aquí](https://www.dropbox.com/s/2oc3t7mu0nrklun/Line%20Follower%20Map%20-%20A2%20Size.pdf?dl=0) pero otra opción es con **cinta negra adhesiva** hacer en el suelo (tonos claros) **el circuito que queramos**, pero recomendamos poner **doble grosor**, sobre todo si mBot va rápido, pues se lo salta, y no hacer curvas muy cerradas. Si ves que hay problemas, no trabajes en vivo, carga el programa.

**¿Cómo harías el programa?**

Ten en cuenta que el sigue líneas, si devuelve 3 es que va por buen camino, si devuelve 1 habría que girar hacia la ... si devuelve 2 habría que girar hacia la ... y si devuelve 0 es que se ha ido, lo mejor es que des marcha atrás.

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

Esta captura está con mBlock 3 con mBloc5 es parecido

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-tsujxcfz.png)  
  
  
Pero tiene un problema: a veces se salta la línea, esto es debido a que se necesita un giro **más suave** que una rueda gire y la otra quita, no que una gire en un sentido y la otra en sentido inverso.

##### <span style="color: rgb(22, 145, 121);">**SOLUCIÓN BUENA**</span>

Para ello hay que instalar la extensión PLATAFORMA DEL FABRICANTE

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

y puedes mejorar el programa de esta manera con giros más suaves pues ya tienes el control de las ruedas

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

El programa lo tienes predeterminado aquí

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

Puedes hacer puentes y todo

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

# Flappy bird

Un ejemplo de interactuar con objetos es hacer que estos se muevan utilizando los sensores de mBot

Vamos a jugar al Flappy Bird, pero para que suba el pájaro que sea cuando el sensor de ultrasonidos detecte nuestra mano

##### <span style="color: rgb(22, 145, 121);">**Primer paso, descargar el programa Flappy Bird**</span>

No vamos a realizar el videojuego desde cero, aprovecharemos el código que hay en Internet. Vamos al proyecto [https://planet.mblock.cc/project/1328490](https://planet.mblock.cc/project/1328490) y en Sourcecode nos descargamos en nuestro ordenador el código (se abrirá mBlock online, y damos a descargar el código en nuestro ordenador)

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

[![flappybird2.jpg](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/flappybird2.jpg)](https://libros.catedu.es/uploads/images/gallery/2023-09/flappybird2.jpg)  
(este paso te lo puedes saltar si quieres trabajar diréctamente en Internet)

##### <span style="color: rgb(22, 145, 121);">**Segundo paso abrir el código en tu programa mBlock**</span>

Abrimos este código en nuestro mBlock (este paso te lo puedes saltar si quieres trabajar diréctamente en Internet)

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

##### <span style="color: rgb(22, 145, 121);">**Tercer paso, que mBot envíe un mensaje que se ha puesto la mano**</span>

Añadimos el dispositivo mBot, conectamos y ponemos este código

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

También podríamos haber usado UNA VARIABLE GLOBAL MANO de tal manera que por ejemplo cambie a 1 si se pone la mano y sea 0 si no se pone la mano

##### <span style="color: rgb(22, 145, 121);">**Cuarto paso que Flappybird suba al poner la mano**</span>

Vamos al código del objeto BirdySprite y vemos que sube si O se pulsa clic O se pulsa espacio O se pulsa flecha arriba, copiamos ese código y que suba si recibe el mensaje MANO

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

Si usamos variables globales se pondría dentro de la instrucción O la condición MANO=1

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

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/X1L0zw0jSto" width="560"></iframe>

Valeee... ya sé que soy muy malo

# Publica tus construcciones

[Aquí para verlo más grande](https://padlet.com/CATEDU/mBot)

<iframe frameborder="0" src="https://padlet.com/embed/vnnfhf8gtr62" style="width: 100%; height: 608px; display: block; padding: 0; margin: 0;"></iframe>

<div class="padlet-embed" id="bkmrk--1" style="border: 1px solid rgba(0,0,0,0.1); border-radius: 2px; box-sizing: border-box; overflow: hidden; position: relative; width: 100%; background: #F4F4F4;"><div style="padding: 8px; text-align: right; margin: 0;">[![Hecho con Padlet](https://resources.padletcdn.com/assets/made_with_padlet.png)](https://padlet.com?ref=embed)</div></div>

# Publica cosas de otros

<iframe frameborder="0" height="240" id="bkmrk--1" src="https://padlet.com/embed/kkp4btdn81k1" style="width: 100%; height: 608px; display: block;" width="320"></iframe>