# 1. Preparados

# ¿Qué es mBot?

<p class="callout warning">{{@4448#bkmrk-no-confundas-mbot-ob}}</p>

mBot es un robot educativo de la empresa [Makeblock](http://www.makeblock.cc/), que persigue los siguientes objetivos:

1. El objetivo principal es **desarrollar el pensamiento computacional** en el alumnado motivado por la ejecución de órdenes en algo físico como es el robot.
2. El robot está diseñado para su **uso escolar**: resistente y económico
3. Basado en hardware **libre** y software **libre**

**El objetivo 1** da como resultado que el kit de mBot sólo permite una configuración posible más los complementos que tiene el kit que proporciona el kit de CATEDU, **no hay tiempos en construcción, sólo en programación**, esto es otra filosofía diferente frente a otras alternativas como los robots de LEGO, que el tiempo en construcción y creatividad es importante. No queremos defender qué alternativa es buena y cual mala, sino que el docente tiene que decidir qué objetivos quiere perseguir, según lo que quiere tiene que decidir qué producto es el adecuado.

**El objetivo 2** No podemos hablar de este objetivo pues actualmente este equipo no se fabrica Las características y precios de mBot 2.4G se puede ver en [este enlace](http://www.makeblock.es/productos/robot_educativo_mbot_2.4g/).

**El objetivo 3** el hardware libre está materializado en que se basa en la placa **ARDUINO**, que lo han personalizado con más sensores y conexiones rápidas RJ11 (la clavija de teléfono fijo). El software libre en este robot está en **el programa [mBlock](http://www.mblock.cc/)** que está basado en el software de programación **[Scracth](https://scratch.mit.edu/)**, diseñado para desarrollar el pensamiento computacional en los niños, ampliamente usado en todo el mundo, el cual le añaden unas librerías propias del robot, dando como resultado [mBlock](http://www.mblock.cc/).   
El software mBlock es el resultado de instalar el [firmware de la placa Arduino](http://app.makeblock.cc/firmware/), instalar las [librerías ](https://github.com/Makeblock-official/Makeblock-Library/archive/master.zip)del robot en el Scracth, [actualizar](http://learn.makeblock.cc/learning-scratch/#Step2-Upload-the-firmware), etc... recomendamos lo práctico: Descargar el **[mBlock](http://www.mblock.cc/)** directamente que lo tiene todo ya preparado.  
Dentro de esta filosofía de libertad, los agujeros son compatibles con LEGO ampliando las posibilidades.

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-olqnvzmo.jpeg) **Fuente: [http://makeblock.es/](Fuente:%20http://makeblock.es/)**

## **<span style="background-color: rgb(255, 255, 255); color: rgb(22, 145, 121);">¿Se puede uno fabricar un "mBot"?</span>**

SI, pues prácticamente es un Arduino con motores y sensores bastante estándares, y encima el programa mBlock es gratis, lo único es que no te saldrá tan perfecto. ¿Cómo se hace? para esto ya hay un curso en Aularagon MCLON [https://libros.catedu.es/books/mclon-con-nanoarduino](https://libros.catedu.es/books/mclon-con-nanoarduino)

y un grupo en Twitter: @mClonRobot

[![embedded-image-pk7CkywQ.jpeg](https://libros.catedu.es/uploads/images/gallery/2022-02/scaled-1680-/embedded-image-pk7ckywq.jpeg)](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-pk7ckywq.jpeg)

### <span style="color: rgb(22, 145, 121);">**¿Se puede simular?**</span>

**¿Qué no tienes robot?** no pasa nada, hay buenos simuladores [https://scratch.mit.edu/projects/788113358/editor/](https://scratch.mit.edu/projects/788113358/editor/)

# mBot y mBlock

## **<span style="color: rgb(22, 145, 121);">Requisitos de conceptos previos</span>**

Es necesario haber realizado una **FORMACIÓN BÁSICA EN SCRATCH** la formación exclusiva de [Scratch ](https://scratch.mit.edu/)en [Aularagón ](http://moodle.catedu.es/)es suficiente.

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

Necesitas el **kit de robótica mBot** de MakeBlock que presta CATEDU :

- [mBot con mochila de comunicación 2.4G](http://www.makeblock.es/productos/robot_educativo_mbot_2.4g/). (actualmente solo ser vende la versión con Bluetooth)
- [Matriz de LEDS 8x16](http://www.makeblock.es/productos/mbot_matriz_leds/) donde aumentaremos la capacidad de interacción de nuestro simpático mBot.

## **<span style="color: rgb(22, 145, 121);">Requisitos de software y Hardware</span>**

Instalar el **mBlock** en la [página oficial de descarga mBlock http://www.mblock.cc/](http://www.mblock.cc/).

Disponible en diversos sistemas operativos y su instalación no presenta ningún problema.

- mBlock for PC: aconsejado para el aula, y recomendamos conexión 2.4G: **Windows, Mac, Linus, ChromeOS,.**
- mBlock for Mobile, que no aconsejamos para el aula porque necesita Bluetooth y se produce interferencias: Android, **iPad** .

Recomendamos usar la versión descargada y así no usar Internet, tenemos versión Windows y versión Mac, para Linux ver <span style="color: rgb(22, 145, 121);">**[Robótica con Vitalinux](https://wiki.vitalinux.educa.aragon.es/index.php/Rob%C3%B3tica_con_Vitalinux)**</span>

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

Hay que destacar que en Windows, la primera vez que se quiere comunicar con el robot **salta el Firewall de Windows** bloqueándolo, pero mostrando un diálogo si se permite o no esta comunicación externa, clickar en **PERMITIR**.

Se actualiza muy a menudo, mejorando cada vez más sus prestaciones, lo que implica que su descarga es cada vez más pesada, más de cien megas, pero después prescinde de Internet.

El programa es muy sencillo si estás acostumbrado al SCRATCH :

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

**Fuente: [http://makeblock.es/](Fuente:%20http://makeblock.es/)**

### **<span style="color: rgb(22, 145, 121);">Qué curioso !</span>**

mBlock está basado en Scratch y simplemente ha añadido extensiones para trabajar mBot, pero también ha añadido extensiones para trabajar Arduino, no es capricho, es porque mBot es un Arduino con dos motores y sensores.

En CATEDU hemos experimentado distintas formas de programar el Arduino de forma sencilla para alumnos de primaria y encontramos mBlock como el mejor programa para hacerlo. Nuestros cursos de -Arduino utilizamos mBlock.

#### <span style="color: rgb(22, 145, 121);">**Un vistazo a mBlock en la página de Robotopia :**</span>

<iframe align="center" height="800" id="bkmrk--2" src="https://www.makeblock.es/soporte/mblock/" width="800"></iframe>

# Arduino: El corazón de mBot

El kit es fácil de montar ([instrucciones](http://www.spc-makeblock.es/download/mbot_castellanov1-1-pdf/)), pero si nos fijamos el corazon es la placa de Arduino:

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

**Fuente: [http://makeblock.es/](fuente:%20http://makeblock.es/)**

Nos tenemos que fijar en estos componentes de la placa:

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

**Fuente: [http://makeblock.es/](fuente:%20http://makeblock.es/)**

- Los R25 donde montaremos los diferentes componentes externos, tienen colores para indicar qué componentes son compatibles.
- **Transmisor de Infra Rojos** para interactuar con el mando a distancia, un elemento de interacción, pero ojo: común a todos los robots que estén en el aula
- **Botón** que permitirá interactuar
- Puertos de motor, donde conectaremos los motores de las ruedas.
- **Buzzer** o pequeño altavoz, no puede hacer maravillas, sólo tonos simples
- RGB Led o luces de los tres colores básicos.
- **Light Sensor** o sensor de luz, que nos servirá como otra vía de interacción.
- También tiene una **conexión USB** para conectarse con el ordenador con un cable. 
    - Esta conexión USB a la vez puedes usarse como alimentación. Es una opción a considerar si se nos ha agotado las pilas y queremos seguir programando. O si quieres que se mueva el robot sin cable, y te has quedado sin baterías y no tienes pilas, pon un powerbank en ese puerto y a funcionar.
    - La conexión USB funciona también como cargador si en vez de pilas usamos la batería de litio que hay debajo de la placa
- Para que entiendas qué diferencia hay entre una placa Arduino y esta placa de mBot, esta placa es un Arduino con ... 
    - Algunos elementos integrados: sensor luz, botón, transmisor IR, buzzer, leds...
    - Tiene puertos RJ25 para conectar elementos exteriores fácilmente.

# Componentes exteriores

Los componentes exteriores no importantes a la hora de programar del Kit son:

- Dos[ motores 200rpm 6V](http://www.makeblock.cc/tt-geared-motor-dc-6v-200rpm/) conectados a las ruedas.
- [Mochila de comunicación 2.4G](http://www.makeblock.es/productos/mbot_usb_2.4g/) que permite conectarse con el ordenador de forma inalámbrica.

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 danger">**Puedes elegir montar estos componentes en otros puertos, simplemente tienes que tenerlo en cuenta en la programación.   
Si utilizas el kit de Catedu TE PEDIMOS NO MODIFICAR LOS PUERTOS PARA NO TENER PROBLEMAS CON LOS SIGUIENTES COMPAÑEROS QUE UTILICEN EL EQUIPO.**</p>

![](https://libros.catedu.es/img/EL_LIGHT_makeblock_EL_LIGHT.jpg) ![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-628xsak2.jpeg)

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

Fuente de las imágenes: http://makeblock.es/

# Programación mBlock

{{@2986}}

# Preparando mBlock

Descargamos y ejecutamos **mBlock** desde la página de descargars de mBlock [https://www.mblock.cc/en/download/](https://www.mblock.cc/en/download/)

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

Podemos configurar el lenguaje

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

Vamos a Dispositivos, vemos pues como mBlock esta preparado para controlar distintos tipos de robot, destacamos Microbit, Arduino, .... bueno, al grano, vamos a añadir mBot

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

- Podemos **quitar** los dispositivos que no sean mBot pues no vamos a trabajar con ellos
- Si lo marcamos mBot pulsando en la estrella, ya saldrá predeterminado.

# IMPORTANTE: ACTUALIZAR FIRMWARE

P.-Enciendes tu mBot, y de repente ¡¡se pone a hacer cosas !!! pero si no le programado aún nada!!! ¿Cómo es posible?  
R.-Seguramente tu equipo mBot, el anterior alumno **ha dejado un programa** dentro del mBot

<p class="callout warning">ACTUALIZAREMOS EL FIRMWARE SIEMPRE QUE MBOT NO RESPONDA A MBLOCK</p>

### <span style="color: rgb(22, 145, 121);">**¿Cómo se hace?**</span>  


1. Conectamos mBot con el **cable USB** al ordenador y **encenderlo  
    [![conectarUSB.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/conectarusb.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/conectarusb.png)** *Fuente el autor*
2. Pulsamos en mBlock "**CONECTAR**"  
    [![conectarmBot.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/conectarmbot.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/conectarmbot.png)
3. En el diálogo seleccionamos **USB** y de todos los puertos USB seleccionamos el que esta conectado (suele ser el que propone) y **CONECTAR**  
    [![conectarmBot2.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/conectarmbot2.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/conectarmbot2.png)
4. Una vez que la conexión ha sido un éxito, le damos a **ACTUALIZAR  
    [![conectarmBot3.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/conectarmbot3.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/conectarmbot3.png)**
5. Sale un diálogo para **elegir qué firmware** quieres, si el de fábrica o el que existe en Internet, no hay mucha diferencia de versiones  
    [![conectarmBot4.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/conectarmbot4.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/conectarmbot4.png)
6. Sale un mensaje de que **se ha actualizado** y advierte que SE VA DESCONECTAR EL DISPOSITIVO  
    [![conectarmBot5.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/conectarmbot5.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/conectarmbot5.png)
7. Volvemos a **conectar el dispositivo**, es decir, repetimos los pasos PASO 2 Y PASO 3
8. **PROBARLO** vamos al dispositivo mBot, nos aseguramos que esta en modo EN VIVO, elegimos una instrucción sencilla, por ejemplo vamos a LUZ Y SONIDO elegimos ENCIENDE LED TODOS EN ROJO DURANTE 1 SEGUNDO damos DOS CLICKS en esa instrucción y mBot tiene que responder  
    [![conectarmBot6.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/conectarmbot6.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/conectarmbot6.png)

# EN VIVO ¿Eso qué es?

<span style="color: rgb(0, 0, 0);">{{@11514}}</span>


## <span style="color: rgb(22, 145, 121);">**¿Qué hace mBot EN VIVO dependiendo del ordenador?**</span>

En el modo EN VIVO, mBot obedece a un programa interno (**Firmware**) que es el que hemos puesto al ACTUALIZAR EL FIRMWARE

Este **Firmware** lo que le ordena a la placa Arduino es:

1. Haz caso a las instrucciones del mando de IR ver figura de abajo
2. Haz caso a la conexión con el ordenador y a las instrucciones que vengan por ahí

Esto tiene su importancia:

- El punto 1 te dice que no puedes hacer un programa con el Mando IR pues prevalece el del Firmware, por lo tanto no se puede utilizar en tu programación el mando IR en el modo "dependiendo del ordenador" pero sí en el modo "independiente del ordenador".
- El punto 2 te dice que tus programas se ejecutan en el ordenador y se lo comunica al robot luego:
- Si desconectamos el ordenador o la conexión, dejan de funcionar, o mejor dicho se mBot se queda atascado en la última instrucción ejecutada.
- Tus programas van un poco lentos, pues dependen del ordenador. El mismo programa lo pasas al modo "independiente del ordenador" y va mucho más rápido.

Instrucciones del mando IR en el firmware que viene por defecto (modo dependiendo del ordenador):

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

**Fuente de las imágenes: [http://makeblock.es/](fuente:%20http://makeblock.es/)**

<p class="callout success">AL ACTUALIZAR EL FIRMWARE ESTAS DICIENDO AL MBOT QUE TRABAJE EN VIVO</p>

# EN VIVO conexión 2.4 Bluetooth o cable

Tenemos dos opciones de comunicarnos con mBot, inalámbrica 2.4G o con cable, aconsejamos la primera:

#### <span style="color: rgb(22, 145, 121);">**Conexión inalámbrica 2.4G**</span>

La conexión inalámbrica se realiza a través de la [mochila 2.4G](http://www.makeblock.es/productos/mbot_usb_2.4g/). Insertamos el pincho USB de la mochila (no necesita ningún driver, el ordenador lo interpreta como un ratón inalámbrico).

[![pincho24g.png](https://libros.catedu.es/uploads/images/gallery/2023-09/scaled-1680-/pincho24g.png)](https://libros.catedu.es/uploads/images/gallery/2023-09/pincho24g.png)  
Pincho USB 2.4G fuente Makeblock.es

Cada pincho va asociado a un robot (o mejor dicho: a la [mochila 2.4G](http://www.makeblock.es/productos/mbot_usb_2.4g/) están emparejados, si el led de la mochila parpadea es que ha perdido conexión, podemos emparejarlo haciendo una pulsación larga en el botón que hay en la mochila 2.4G.

![](https://libros.catedu.es/img/pincho.jpg)  
![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-1zcx39he.jpeg)

Mochila 2.4G fuente makeblock.es

y conectamos el robot con el programa en **Conectar- 2.4G Serial- Conectar**

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

Si sale que esta conectado 2.4G ya podemos trabajar SOLO EN VIVO

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

Podemos probarlo haciendo dos clicks a la instrucción de encender led rojo durante un segundo

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

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

Existe la posibilidad de conexión por cable, útil por ejemplo si se ha perdido el pincho, seguir programando hasta la espera de la compra de otro, o por ejemplo si se agotan las pilas, por cable el robot puede seguir funcionando. Evidentemente con la pérdida de libertad de movilidad.

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

No hay que olvidar que si optamos por la conexión Serial por el puerto USB, TENEMOS QUE DESCONECTAR LA OTRA CONEXIÓN INALÁMBRICA:

# CARGAR

La opción de cargar tu programa en el mBot se hace simplemente

1. Conectar el mBot por CABLE como lo hemos visto anterirormente
2. Realizas tu programa
3. Pulsa CARGAR
4. Pulsa SUBIR y el programa va al mBot

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

<p class="callout danger">**ATENCION**, UNA VEZ CARGADO EL PROGRAMA, **TE HAS "CARGADO" EL FIRMWARE** por lo tanto si quieres volver a trabajar con el mBot **EN VIVO** tienes que volver a ACTUALIZAR EL FIRMWARE tal y como lo hemos visto</p>

# EN VIVO vs CARGAR

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

- Se trabaja y se programa **MUY FÁCILMENTE** simplemente se ponen instrucciones en la pantalla de bloques y se van ejecutando en vivo
- una ventaja muy considerable **PUEDES INTERACTUAR CON EL ORDENADOR Y CON LOS OBJETOS esto da mucha libertad**
    - puedes con el teclado, ratón dar órdenes al robot
    - puedes visualizar en la pantalla del ordenador lo que lee mBot (por ejemplo la distancia del sensor US)
    - puedes que los objetos (el panda o lo que sea...) interactúe
    - con la opción CARGAR puedes interactuar con los objetos si utilizas la extensión BROADCAST 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)

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

- Dependes del **ordenador**, es decir, el ordenador tiene que estar encendido
- **lentitud**, las órdenes van y vienen, no es lo mismo que si se ejecuta desde el mismo mBot, programas que implican rapidez, como el sigue líneas no funcionan bien en vivo, al menos que bajes la velocidad de los motores.

Cargar un programa tiene las ventajas y desventajas al revés de en vivo

<p class="callout warning">OJO una vez que le das a CARGAR si quieres trabajar EN VIVO tienes que ACTUALIZAR EL HARDWARE</p>

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

# A JUGARRRRR !!!!

¿Lo probamos? venga!!! monta este sencillo programa. Las flechas te indican dónde está cada instrucción :

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

Lo tienes aquí [https://planet.mblock.cc/project/2999030](https://planet.mblock.cc/project/2999030)

y como decía Joaquín Prat en el **precio justo** **A jugaaarr !!**

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

Fuente [http://lossesentas-mispersonajes.blogspot.com.es/2015/08/joaquin-prat.html](http://lossesentas-mispersonajes.blogspot.com.es/2015/08/joaquin-prat.html)

*(si entiendes esto último, es que tienes la edad óptima para aprender a programar ;)*

#### *<span style="color: rgb(22, 145, 121);">**PONLE MÁS DIVERSIÓN**</span>*

Pega en el mBot con cinta aislante una varilla sujeta globos, pon en un extremo un globo y en el otro extremo una aguja de coser también con cinta aislante

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

Se lo pasan genial !!!

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