# 3. Ya!!!

# 3. Evitar obstáculos

## Reto Roomba

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-" src="//www.youtube.com/embed/ScN4D67fgLI" width="560"></iframe>

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

**Fuente: Autor**

##### Solución

  
Solución sencillota:  
  
![](/assets/romba.png)  
  
Solución super-avanzada:  
 *Al azar gira o derecha o izquierda*  Si el obstáculo persiste a estar cerca (menos de 8cm) pues que recula un poco.  
  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-0pblzlbl.png)  
  
Entre una y otra solución hay varias intermedias.  
  
**Fuente: Captura de pantalla mBlock. Programa: el autor.**

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

Pero no le pongas cosas encima

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

[via GIPHY](https://giphy.com/gifs/baby-oscar-roomba-HqtdH0m61NBSg)

# 3.1 Upload to Arduino

## ¿Por qué?

Si queremos que nuestro programa funcione **independiente** del ordenador, es decir grabar nuestro programa en el Arduino del mbot, y que funcione, claro!

También si queremos que nuestro mBot funcione más rápido, mejor o si "Dependiendo del ordenador" no hace las cosas del todo bien.

## Esto tiene una pega

En nuestro programa no podemos utilizar ningún comando propio de Scratch, es decir por ejemplo en **Aparencia "Decir Hello"** pues corresponde al personaje "panda" del programa Scratch-mBlock

## ¿Cómo se hace?

- Desconectamos nuestro mbot del ordenador, la conexión inalámbrica que teníamos

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

- Conectamos el mbot con el cable USB y encendemos:

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

- Conectamos el mblock con mbot por el puerto serie, automáticamente pone el puerto que ha detectado, porque antes hemos dado a instalar el driver del Arduino, será el último puerto que se ha instalado (en la foto COM3):

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

- Cambiamos en nuestro programa el comienzo del programa (el de la bandera) por uno propio del robot:

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

- Con el botón derecho, pinchamos en el mBot program y elegimos Upload Arduino, o más fácil en **Editar- Modo Arduino**:

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

- Se nos abrirá una ventana con el CODIGO PARA GRABARLO EN EL ARDUINO DEL ROBOT, incluso PODEMOS MODIFICAR LO QUE QUERAMOS, le damos a UPLOAD TU ARDUINO

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

CURIOSIDADES: El código que aparece a la derecha es código de Arduino, lo podemos modificar si sabemos, y si no sabemos... pues podemos hacer nuestros atrevimientos ¿qué pasaría si en el anterior código cambiamos SetBrightness(6) por SetBrightness(3) ? pues que la matriz brilla menos!!

- **YA ESTÁ** si dice un mensaje de que se ha grabado correctamente PODEMOS FUNCIONAR EL PROGRAMA DEL ROBOT SIN EL ORDENADOR ENCENDIDO!!, podemos quitar el cable usb y nuestro robot funciona independiente.

## Al terminar, deja las cosas como estaban,

No sea que el siguiente quiera utilizar el robot de forma "dependiendo del ordenador" y se encuentra que funciona con tu programa

Tenemos que QUITAR EL PROGRAMA que hemos instalado sino no puede volver a conectarse con el mBlock usando la bandera por ejemplo.

- Conectar el cable (ver paso 2)
- Conectar mBlock por el puerto serie (ver paso 3)
- Reseteamos el arduino, esto quitará nuestro programa y pone deja el robot como estaba antes:

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

**Fuente de las imágenes: Captura de pantalla de mBlock. Las fotos: El autor.**

¿te has liado? no me extraña, un vídeo a ver si te aclaras:

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

## ¿Y si hay algún problema?

Puede ser que nuestro Windows no reconozca mBot (o sea, no reconozca la placa Arduino) para eso, instalamos el Arduino Driver en nuestro programa mBlock:

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

## ¿Y si siguen los problemas?

Por si acaso han sacado una nueva actualización vamos a **Actualizar el firmware**:

1. Conectamos el robot con el cable y encendemos
2. En mBlock Conectar-Puerto serie- elegimos el último puerto que se ha creado al conectar el robot (en la foto COM3)
3. En mBlock Conectar-Actualizar firmware

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

# 3.2 Quiero saber más

No te pierdas este libro **Libro gratuito en Español** [Divirtiéndome con mBot ( PDF 145 páginas 14.5Mb )](https://www.dropbox.com/s/kx2qq756dutn955/divirtiendome_con_mbot__espa%C3%B1ol.pdf?dl=1)

<iframe align="center" height="800" id="bkmrk-https%3A%2F%2Fwww.makebloc" src="https://www.makeblock.es/soporte/robot-mbot/" width="800">https://www.makeblock.es/soporte/robot-mbot/ En \[Twitter\](https://twitter.com/hashtag/mbot) puedes encontrar más ejemplos y twittear al mundo los tuyos: <iframe align="center" height="800" src="https://twitter.com/hashtag/mbot" width="800"> [Tweets sobre #mBot](https://twitter.com/hashtag/mBot) <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></iframe>

</iframe>

# 3.3 Deja las cosas como estaban

No estaría nada mal que antes de devolver mBot lo devolvieses con la configuración de fábrica

Si no te acuerdas aquí lo tienes en [flash ](http://aularagon.catedu.es/materialesaularagon2013/mbot/video/DejarmBotcomoNuevo.htm)o aquí en [pdf](http://aularagon.catedu.es/materialesaularagon2013/mbot/video/DejarmBotcomoNuevo.pdf)

<iframe allowfullscreen="true" frameborder="0" height="569" id="bkmrk-" mozallowfullscreen="true" src="https://docs.google.com/presentation/d/e/2PACX-1vTh0PV7AsHkZxwbwZHYM-_vtTcl7jqWvAEaZK41xKn0kB8cTWph9PWCp7fxffX0MnJUPdynf7op0SK1/embed?start=false&loop=false&delayms=3000" webkitallowfullscreen="true" width="100%"></iframe>

# 3.4 Muro

No te cortes !! muestra a los demás alumnos tus ejemplos :

<div class="padlet-embed" id="bkmrk-" 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"><iframe frameborder="0" src="https://padlet.com/embed/vnnfhf8gtr62" style="width:100%;height:608px;display:block;padding:0;margin:0"></iframe>

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

# Grupo Robótica educativa Aragón

{{@4982}}

# Creditos

2017 por [CATEDU ](/www.catedu.es)(Javier Quintana Peiró).

{{@3195}}