# Robótica educativa con Mbot

En este curso vamos a conocer y programar este robot: Para hacer este curso hay que saber previamente SCRATCH. M1 Preparados... Programación basada en SCRATCH (mBlock) Amplia gama de sensores y actua…

# Introducción

# Objetivos y contenidos

<p class="callout warning">**Para hacer este curso hay que saber previamente unos contenidos mínimos de SCRATCH.**</p>

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

<p class="callout success"><span style="color: rgb(22, 145, 121);">**No confundas   
mBot** objetivo de este curso, basado en Arduino unos 125€ con matriz LED [https://www.robotix.es/es/mbot](https://www.robotix.es/es/mbot) **mBot2** basado en Cyberpi unos 200€ [https://www.robotix.es/es/mbot-2](https://www.robotix.es/es/mbot-2)</span></p>

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

- Conocer el robot mBot de Makeblock, sus características y posibilidades
- Empezar a programar el robot dentro del entorno de software típico de programación educativa de Scracth
- Conocer los diferentes elementos de interacción del robot, tanto internos como externos y crear proyectos utilizándolos
- Realizar procesos de gamificación educativa

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

- **M1 Preparados..**. 
    - Programación basada en **SCRATCH** (mBlock)
    - Amplia gama de **sensores** y actuadores
    - Posibilidades de ampliación
    - Comparativa con otros robots para educar el *pensamiento computacional*:  **calidad precio posibilidades**
    - Conexión con el ordenador, cuestiones técnicas y configuraciones antes de empezar.
- **M2 Listos**
    - Módulos electrónicos integrados en la placa: 
        - Botón, LED RGB, Sensor luz, Sensor IR, Buzzer.
    - Módulos electrónicos exteriores: 
        - Sigue-líneas, Sensor ultrasónico, Matriz Led
- **M3 YA !!**! 
    - Evitar obstáculos
    - Seguir una línea
    - Más cosas !!


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

# Pensamiento computacional

Puedes ver que este robot tiene un un margen de edad y como su programación es por bloques (Scratch) su curva de aprendizaje es rápida y apropiada para muchas situaciones.

{{@4518}}

# Lenguajes de programación

mBot, mBot2 se puede programar

- Por bloques principalmente con mBlok
- Por código principalmente Python

{{@13859}}

# Robótica y accesibilidad

{{@7565}}

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

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

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

# 4 IA Introducción

# IA¿Qué es?

La **inteligencia artificial** se refiere al conjunto de algoritmos realizan tareas complejas, que son capaces de realizar procedimientos que imitan el funcionamiento de la mente, como son **aprender y tomar decisiones.**

En el fondo la IA son tomas de decisiones: Un sumatorio de muchos **función signoide** asociadas a variable de entrada que cuanto más datos, más empinada y por lo tanto más certera es su decisión (salida).

[![IA-FUNCIONSERPIENTE.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/50uia-funcionserpiente.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/50uia-funcionserpiente.png)

Por ejemplo, le pedimos a un robot con IA que tomando de muestra la temperatura corporal, nos diga si estamos enfermos o no.

- Salida eje Y 0=no estamos enfermos 1= estamos enfermos.
- Entrada: eje X La temperatura

Los puntos son las muestras que le pasamos para que aprenda

- Los puntos son dada una temperatura, % de gente que esta enferma a esa temperatura
- Estadísticamente cuanto más temperatura hay más probabilidad de que estés enfermo
- Cuanto más datos, más empinada es la función y con más acierto puede predecir.
- Nosotros sabemos ya la respuesta que el valor crítico es 37ºC pero... ¿y si tiene 36.9ºC?¿Cuánta probabilidad tiene? las máquinas nos ayudan a cuantificar.

# IA Tipos

##### <span style="color: rgb(22, 145, 121);">**ML : APRENDIZAJE AUTOMATICO O MACHINE LEARNING**</span>

Aquí los algoritmos aprenden a partir de datos, y ellos buscan patrones para identificar. **Cuanto más datos, mejores resultados.**

El principio es básico. Queremos diferenciar silla mesa: Analiza datos, localiza patrones (cuatro patas, algo común, el tamaño y forma, patrones que diferencian como el respaldo....) con esas características, puede realizar un entrenamiento, y por lo tanto esta preparado para realizar predicciones.

Hay varios tipos de ML:

- **ML Aprendizaje automático supervisado** Donde los datos se les da ya etiquetados
- **ML Aprendizaje automático no supervisado:** Aquí es el propio algoritmo que tiene que encontrar relaciones en el proceso de identificación de patrones y por lo tanto etiquetar categorías.
- **ML Aprendizaje semisupervisado**. El modelo se entrena con datos etiquetados y no etiquetados. Lo normal es primero los etiquetados (pues son los que implican mayor coste y dinero) y si el modelo ya empieza a funcionar bien, ya procesa no etiquetados para su optimización.

##### **<span style="color: rgb(22, 145, 121);">RL : APRENDIZAJE REFORZADO O REINFORCEMENT LEARNING</span>**

Es un modelo que busca la optimización. Utiliza resultados anteriores e intenta mejorarlos. Para buscar esto, se definen estados con unos parámetros que implican premio o penalización. La máquina busca soluciones y acciones para buscar los premios y huir de las penalizaciones.

##### <span style="color: rgb(22, 145, 121);">**DL : APRENDIZAJE PROFUNDO O DEEP LEARNING**</span>

Es un subconjunto del ML no supervisado, Se crea una red neuronal organizadas en capas, cada capa especializada, por ejemplo la primera de entrada recoge los datos, las intermedias, ya ocultas, identifican patrones y la última, la salida que recoge la información procesada anteriores, la que toma las decisiones.

##### **<span style="color: rgb(22, 145, 121);">PLN : PROCESAMIENTO DE LENGUAJE NATURAL</span>**

Utiliza conceptos de DL y ML para comprender el lenguaje humano. Una aplicación son los *chatbots*. Que pueden ser:

- dirigidos, es decir va tomando decisiones por etapas tipo árbol y da respuestas automáticas
- no dirigido: produce respuestas en función del contexto y las decisiones del usuario.
- hibridas que intenta producir una conversación fluida.

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

**LEARNING ML** [![cabeza_genio.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/cabeza-genio.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/cabeza-genio.png)  
[ https://web.learningml.org/en/home/](https://web.learningml.org/en/home/)

<video controls="controls" height="368" style="width: 736px; height: 368px;" width="736"> <source src="https://web.learningml.org/wp-content/uploads/2020/05/mini-tutorial-intro-imagenes.mp4" type="video/mp4"></source></video>

**ML: MACHINE LEARNING FOR KIDS** [![2024-06-08 13_08_30-Machine Learning for Kids logo.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-08-13-08-30-machine-learning-for-kids-logo.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-08-13-08-30-machine-learning-for-kids-logo.png)

[https://machinelearningforkids.co.uk/#!/welcome](https://machinelearningforkids.co.uk/#!/welcome)

Ver nuestro tutorial en [https://libros.catedu.es/books/robotica-educativa-con-mbot/page/maquina-educable-con-machine-learning-for-kids-y-scratch](https://libros.catedu.es/books/robotica-educativa-con-mbot/page/maquina-educable-con-machine-learning-for-kids-y-scratch)

**DL REDES NEURONALES : QUICKDRAW** [![2024-06-08 13_22_52-quick draw - Buscar con Google.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-08-13-22-52-quick-draw-buscar-con-google.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-08-13-22-52-quick-draw-buscar-con-google.png)

[https://quickdraw.withgoogle.com/](https://quickdraw.withgoogle.com/) Es un videojuego donde se ve claramente como se va perfilando las decisiones en forma de árbol y como la etapa final va reconociendo tu dibujo. En esta red, la primera etapa de la red neuronal son trazos que dibujas, y las neuronas intermedias son fruto de una extensa base de datos de dibujos. La última etapa es la decisión basada en las anteriores neuronas.

<p class="callout success">PRUEBALO ES SUPERDIVERTIDO, INCLUSO EN UN MÓVIL   
[![qr_img.png](https://libros.catedu.es/uploads/images/gallery/2024-07/scaled-1680-/qr-img.png)](https://libros.catedu.es/uploads/images/gallery/2024-07/qr-img.png)  
</p>

**PLN: CHATGPT COMO FUNCIONA**

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

**DL CREA TU PEQUEÑA RED NEURONAL CON PYTHON**

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/iX_on3VxZzk?list=PLZ8REt5zt2Pn0vfJjTAPaDVSACDvnuGiG" width="560"></iframe>

**DL: GOOGLE DEEPMIND**  
 Google deepmind desarrolló una red neuronal para aprender a jugar videojuegos, y ganó a varios campeones humanos en videojuegos complejos (de los que inicialmente la máquina desconocía las reglas). Puedes ver en [https://deepmind.google/](https://deepmind.google/) los diferentes proyectos actuales.

# IA: Y en plan que se entienda....

1. <span style="background-color: rgb(255, 255, 255); color: rgb(22, 145, 121);">**MÁQUINAS “YA EDUCADAS” o "pre-trained ML/AI models"**</span>
    
    
    1. Reconocimiento de **imágenes** con mBlock
        
        
        1. Programa de reconocimiento imágenes
        2. Programa reconocimiento edad
    2. Reconocimiento de **voz**
        
        
        1. Traductor Con mBlock y Cybperpi
        2. Reconocimiento de órdenes Con mBot1 t mBot2
2. <span style="color: rgb(22, 145, 121);">**SOFTWARE EDUCABLES o "No pre-trained ML/AI models"**</span>
    
    
    1. Máquina educable **Teachable Learning** y **mBlock**
    2. Máquina educable con **CODE.ORG**
    3. Máquina educable con **Machine Learning for kids y Scratch**
3. **<span style="color: rgb(22, 145, 121);">HARDWARE EDUCABLES o sea, que tienen "Smart gadgets"</span>**
    
    
    1. **SMARTCAM** y mBot1
        
        
        1. Seguir pelota color
        2. Sigue líneas

[![kenny-eliason-5afenxnLDjs-unsplash.jpg](https://libros.catedu.es/uploads/images/gallery/2024-05/scaled-1680-/kenny-eliason-5afenxnldjs-unsplash.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-05/kenny-eliason-5afenxnldjs-unsplash.jpg)  
Photo by [Kenny Eliason](https://unsplash.com/@neonbrand?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/star-wars-bb-8-5afenxnLDjs?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash)

# 5. IA máquinas ya educadas

# Cognitive Services Servicios cognitivos.

Esta extensión pertenece al conjunto de extensiones de inteligencia artificial de mBlock

[![2024-03-30 20_50_56-mBlock v5.4.3.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-30-20-50-56-mblock-v5-4-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-30-20-50-56-mblock-v5-4-3.png)

Instala un montón de instrucciones como

- Reconocimiento de voz (en diferentes idiomas)
- Reconocimiento de texto impreso (en diferentes idiomas)
- Reconocimiento de imagen (marca, famoso, monumento...)
- Reconocimiento de emociones
- Reconoce rasgos como gafas, nivel de sonrisa, cabeceo de la cabeza, color del pelo ...

[![2024-03-30 21_02_27-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-30-21-02-27-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-30-21-02-27-whatsapp.png)

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

<span style="color: rgb(0, 0, 0);">Para ver un vistazo rápido, vamos a utilizar un programa ya predeterminado, ir a **Programas de ejemplo - AI - Age Analyzer** (el del pulpo)</span>

<span style="color: rgb(0, 0, 0);">**[![2024-03-31 21_02_50-mBlock v5.4.3.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-31-21-02-50-mblock-v5-4-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-31-21-02-50-mblock-v5-4-3.png)**</span>

<p class="callout warning"><span style="color: rgb(0, 0, 0);">OJO, SI **NO ESTAS** **LOGUEADO** entonces **NO FUNCIONA**</span></p>

<span style="color: rgb(0, 0, 0);">**[![novaai2.png](https://libros.catedu.es/uploads/images/gallery/2024-05/scaled-1680-/novaai2.png)](https://libros.catedu.es/uploads/images/gallery/2024-05/novaai2.png)**</span>

<span style="color: rgb(0, 0, 0);">La verdad es que acierta bastante bien</span>

<span style="color: rgb(0, 0, 0);">**[![2024-03-31 21_04_14-mBlock v5.4.3.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-31-21-04-14-mblock-v5-4-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-31-21-04-14-mblock-v5-4-3.png)**</span>

Otro ejemplo de uso, reconocimiento de edad y traducción :

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

# Traductor

En este programa, además de usar la extensión Servicios Cognitivos, instalaremos las extensiones :

- **Text to Speech - Texto a voz**
- **Translate - Traductor**

[![2024-04-01 12_23_55-mBlock v5.4.3.png](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/2024-04-01-12-23-55-mblock-v5-4-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-04/2024-04-01-12-23-55-mblock-v5-4-3.png)

El programa es muy sencillo, lo tienes aquí : [https://planet.mblock.cc/project/3733312](https://planet.mblock.cc/project/3733312)

[![traductor.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/traductor.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/traductor.png)

# Traductor con mBot2  (o mejor dicho con Cyberpi)

Esta tarjeta controladora es un ESP32 por lo tanto permite conexión a Internet y lo podemos usar para realizar el mismo script de traducción

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

Lo primero es conectarse a la Wifi :

[![cyberpi-conexion.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/cyberpi-conexion.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/cyberpi-conexion.png)

Y para traducir

[![cyberpi-traduccion.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/cyberpi-traduccion.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/cyberpi-traduccion.png)

<p class="callout warning">OJO: HASTA QUE NO ESTES  
**1.-LOGUEADO** con tu usuario en mBlock  
**2.-CONECTADO** CON CYBERPI   
(las dos condiciones y en ese orden) **NO SE VISUALIZAN** LAS INSTRUCCIONES DE INTELIGENCIA ARTIFICIAL</p>

[![novaai.png](https://libros.catedu.es/uploads/images/gallery/2024-05/scaled-1680-/novaai.png)](https://libros.catedu.es/uploads/images/gallery/2024-05/novaai.png)

# Reconocimiento de voz- órdenes  a mBot1

Se hace con la misma extensión Cognitive Services Servicios cognitivos, podemos hacer que el panda reconozca la voz

El programa [https://planet.mblock.cc/project/3733229](https://planet.mblock.cc/project/3733229)

<p class="callout warning">Si te fijas [TENEMOS QUE **TRABAJAR EN VIVO**](https://planet.mblock.cc/project/3733312) pues la traducción la realiza el ordenador (mejor dicho el servidor de traducción y se lo comunica al ordenador y el ordenador a mBot1 pues mBot1 no tiene conexión de Internet</p>

El programa en el Sprite oso Panda es :

[![ordenmblock1-1.png](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/ordenmblock1-1.png)](https://libros.catedu.es/uploads/images/gallery/2024-04/ordenmblock1-1.png)

Y mBot que ejecuta según la orden

[![ordenmblock1-2.png](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/ordenmblock1-2.png)](https://libros.catedu.es/uploads/images/gallery/2024-04/ordenmblock1-2.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="602" src="https://www.youtube.com/embed/u-9KNv0tOb4" title="April 1, 2024" width="338"></iframe>

# Reconocimiento de voz- órdenes  a mBot2

<p class="callout warning">Aquí no trabajaremos en vivo SINO **EN CARGA** pues CibyerPi tiene conexión a Internet</p>

La primera parte es el script de conexión de Wifi La siguiente orden es reconocer la voz, y según el resultado, que ejecuta.

<p class="callout success">Como puedes observar, la orden de reconocimiento de voz, añade un . al final que hay que tener en cuenta</p>

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

[![ordenesvozmbot2.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/ordenesvozmbot2.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/ordenesvozmbot2.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="817" src="https://www.youtube.com/embed/vm-D1x8KM4M" title="mBot2 reconocimiento voz" width="460"></iframe>

# Video Sensing: esto no es IA

El siguiente programa **no interpreta** las imágenes, simplemente estamos utilizando la webcam como sensor de vídeo

[https://planet.mblock.cc/project/3730511](https://planet.mblock.cc/project/3730511)

Extensión Video Sensing

[![2024-03-30 19_08_36-mBlock v5.4.3.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-30-19-08-36-mblock-v5-4-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-30-19-08-36-mblock-v5-4-3.png)

[![mblock_block_1711822211532.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/mblock-block-1711822211532.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/mblock-block-1711822211532.png)

[![2024-03-30 10_55_03-mBlock v5.4.3.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-30-10-55-03-mblock-v5-4-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-30-10-55-03-mblock-v5-4-3.png)

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

<p class="callout success">+ info de esta extensión en [https://barclayscodeplayground.co.uk/content/dam/barclayscodeplayground-co-uk/documents/scratch/SC\_Using\_Video\_sensing\_teachers\_guide.pdf](https://barclayscodeplayground.co.uk/content/dam/barclayscodeplayground-co-uk/documents/scratch/SC_Using_Video_sensing_teachers_guide.pdf)</p>

# Google quickdraw

Un ejemplo de software ya educada es [https://quickdraw.withgoogle.com/](https://quickdraw.withgoogle.com/) (se recomienda hacerlo en una tableta) donde tus dibujos son reconocidos por un conjunto enorme de dibujos. (A la vez los que tú haces él aprende)

[![2024-06-02 19_27_10-Quick, Draw!.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-02-19-27-10-quick-draw.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-02-19-27-10-quick-draw.png)

Si quieres probar más cosas de AI con Google [https://experiments.withgoogle.com/collection/ai](https://experiments.withgoogle.com/collection/ai)

# 6. IA Software educable

# Maquina educable con Machine Learning for kids y Scratch

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

Entramos en [https://machinelearningforkids.co.uk/](https://machinelearningforkids.co.uk/)

[![machine1.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine1.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine1.jpg)

Tenemos varias opciones:

1. **Registrarnos** y tenemos dos opciones 
    1. como **Un profesor o responsable de un club de programación** en este caso tenemos otras dos opcioens 
        1. Clase **No administrada** tienes que rellenar un formulario típico y creas la clase
        2. Clase **administrada** donde tienes opciones de incorporar alumnos a tu clase, este registro es por correo electrónico y tienen que verificar que perteneces a un centro educativo.
    2. como **Estudiante** en ese caso es el profesor de una **clase administrada** el que te tiene que crear la cuenta
2. **Iniciar sesión** pues nos hemos registrado con alguna de las opciones anteriores
3. **Probar sin registrarse**

**[![machine2.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine2.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine2.jpg)**

Vamos a probar "**sin registrarnos**" pues estamos aprendiendo. Si luego esta herramienta te convence, Te registras

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

Empezamos un proyecto

[![machine3.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine3.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine3.jpg)

Empezamos un proyecto, como puedes ver hay diferentes formas de reconocer, y permite hacer un almacenamiento local, o en la nube. Como es algo de pruebas puedes hacerlo local. Pero si luego estas registrado es interesante hacerlo en la nube para tener acceso en cualquier sitio.

<p class="callout warning">Ojo al cerrar el navegador se borra todo el modelo con la opción *In your web browser*</p>

[![machine4.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine4.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine4.jpg)

Ya lo tenemos

[![machine5.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine5.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine5.jpg)

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

Primero vamos a **entrenar** la máquina

[![machine6.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine6.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine6.jpg)

Creamos dos etiquetas y vamos escribiendo situaciones (o añadir un fichero txt) donde nos apetece un refresco o no (pueden ser más de dos situaciones)

[![machine7.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine7.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine7.jpg)

Volvemos al proyecto..

[![machine8.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine8.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine8.jpg)

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

Si ves que has puesto suficientes ejemplos, pide a la máquina que entrene

[![machine9.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine9.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine9.jpg)

Empieza el entrenamiento... y para que no te aburras, te pone unas preguntas !!!

[![machine10.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine10.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine10.jpg)

Una vez acabado puedes probarlo

[![machine11.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine11.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine11.jpg)

fíjate que **bochorno** no lo hemos puesto en el entrenamiento y ha acertado bastante bien

[![machine12.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine12.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine12.jpg)

Volvemos al proyecto

[![machine8.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine8.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine8.jpg)

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

Y vamos a CREAR y nos ofrece varias herramientas de programación, elegimos SCRATCH

[![machine13.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine13.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine13.jpg)

Le damos a Abrir en Scratch 3

[![machine14.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine14.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine14.jpg)

Elegimos un nuevo objeto (quitamos el gato)

[![machine15.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine15.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine15.jpg)

y elegimos glass water

[![machine16.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine16.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine16.jpg)

Y ponemos el siguiente programa, no es perfecto... pero acierta bastante bien

[![machine17.jpg](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/machine17.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-04/machine17.jpg)

<p class="callout success"><span style="color: rgb(22, 145, 121);">**¿Sabías que ....?** </span>.. hay un curso en Aularagón de INTELIGENCIA ARTIFICIAL CON SCRATCH máquina educable con Maching Learning for KitsVes [https://libros.catedu.es/books/inteligencia-artificial-con-scratch](https://libros.catedu.es/books/inteligencia-artificial-con-scratch) con diferentes vídeos del INTEF verás paso a paso esta herramienta **desde 2019**</p>

# Máquina Educable Teachable Machine

Esta extensión sí que pertenece al conjunto de inteligencia artificial

[![2024-03-30 19_37_15-mBlock Block-Based IDE- Coding for Beginners.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-30-19-37-15-mblock-block-based-ide-coding-for-beginners.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-30-19-37-15-mblock-block-based-ide-coding-for-beginners.png)

En la extensión nos muestra la posibilidad de crear un nuevo modelo de entrenamiento

Al crear un nuevo modelo, **Build a new model** hay que definir las categorías **mínimo son tres**

**[![2024-03-30 19_58_36-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-30-19-58-36-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-30-19-58-36-whatsapp.png)**

2 - 3 - 4 .- Poner nombres a la categorías  
5.- Poner la imagen (en mi caso pantallazos del móvil)  
6.- Clicar a qué categoría pertenece, para que aprenda, darle click cuando la barra verde suba  
Repetir pasos 5 y 6 tantas veces cuanto se desee, cuanto más, mejor  
7.-Usar el modelo de aprendizaje

[![maquinaeducable.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/maquinaeducable.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/maquinaeducable.png)

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

Una vez creado el modelo, nos pone unas instrucciones que podemos usar en nuestra programación

[![2024-03-30 20_04_20-mBlock Block-Based IDE- Coding for Beginners.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-30-20-04-20-mblock-block-based-ide-coding-for-beginners.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-30-20-04-20-mblock-block-based-ide-coding-for-beginners.png)

Otro ejemplo parecido usando playmovil

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

# Maquina educable con CODE ORG

Una manera muy didáctica de enseñar los conceptos de Inteligencia Artificial es con CODE.ORG tiene cursos y el funcionamiento es parecido a la Máquina Educable de mBlock

[![ia-codeorg2.png](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/ia-codeorg2.png)](https://libros.catedu.es/uploads/images/gallery/2024-04/ia-codeorg2.png)

El resultado es

[![ia-codeorg.png](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/ia-codeorg.png)](https://libros.catedu.es/uploads/images/gallery/2024-04/ia-codeorg.png)

# Playground, Teachable Machine Google y Microbit

Playground es como Scratch pero puedes utilizar las Teachable Machines de Google en tu programación

Entramos en [https://playground.raise.mit.edu/httyr/](https://playground.raise.mit.edu/httyr/)

Y podemos usar una máquina educable de Google en (1) y luego utilizarlo en (2)

[![2024-06-02 19_58_55-PRG AI Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-02-19-58-55-prg-ai-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-02-19-58-55-prg-ai-blocks.png)

Podemos conectar nuestro robot MICROBIT CUTEBOT

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/pbzWLtWW31M?t=6s" width="560"></iframe>

Este vídeo por ejemplo nos enseña cómo utilizar una máquina que reconozca que tocamos la cara o no

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

O reconocer textos

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

Por ejemplo este programa muestra si tienes puesto un sombrero o no

[![2024-06-02 20_07_47-Copia de Wednesday - Presentaciones de Google.png](https://libros.catedu.es/uploads/images/gallery/2024-06/scaled-1680-/2024-06-02-20-07-47-copia-de-wednesday-presentaciones-de-google.png)](https://libros.catedu.es/uploads/images/gallery/2024-06/2024-06-02-20-07-47-copia-de-wednesday-presentaciones-de-google.png)

*Ulrich Pedersen Dah &amp; Ture Reimer-Mattesen Center for Underisningsmidler CPU*

# 7. IA Hardware educable

# SmartCamera - Qué es

Esta cámara se vende como accesorio de los robots de Makeblock por unos [140€ ,](https://www.robotix.es/es/smart-camera)

[![smartcamera1.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera1.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera1.jpg)

<p class="callout warning">ATENCIÓN, ESTE SENSOR NO SE SUMINISTRA CON EL KIT DE PRÉSTAMO DE CATEDU</p>

<p class="callout danger">Atención ESTA ESPECIALMENTE DISEÑADO PARA **mBot1,** no esta muy bien ajustado para mBot2</p>

Por dentro es un PIXCAM [https://pixycam.com/](https://pixycam.com/) que tiene integrado un firmware que puede trabajar de dos formas :

- **Modo reconocer colores.** 
    - Reconoce con IA hasta 7 colores distintos
    - Salida I2C que facilita las coordenadas X e Y con respecto a un punto determinado (suele ser el centro) y por lo tanto servos o motores pueden realizar el seguimiento de color reconocido.
- **Modo seguimiento de líneas/barras**
    - Reconocimiento de líneas
    - Con IA toma decisiones de rumbo en las intersecciones
    - Modo lectura códigos de barras Reconoce 15 códigos de barras verticales definidos de fábrica

Se ve mejor con un video:

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

El kit para Makeblock es la misma cámara pero encapsulado, y se añade

- batería
- cables de conexión para mbot1
- cable de conexión para mbo2
- pelotas de colores
- los códigos de barras que hemos comentado

[![2024-03-16 10_35_58-Tutorial Smart Camera de Makeblock.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-16-10-35-58-tutorial-smart-camera-de-makeblock.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-16-10-35-58-tutorial-smart-camera-de-makeblock.png)

##### <span style="color: rgb(22, 145, 121);">**NO ES LA ÚNICA:** </span>

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

Se puede poner al robot **Maqueen Plus** de Microbit [https://libros.catedu.es/books/microbit-car/page/cars-para-microbit](https://libros.catedu.es/books/microbit-car/page/cars-para-microbit)

[![2024-05-06 19_04_45-micromaqueen-plus-v2-advanced-stem-education-robot-18650-battery-version-7_600x..png](https://libros.catedu.es/uploads/images/gallery/2024-05/scaled-1680-/2024-05-06-19-04-45-micromaqueen-plus-v2-advanced-stem-education-robot-18650-battery-version-7-600x.png)](https://libros.catedu.es/uploads/images/gallery/2024-05/2024-05-06-19-04-45-micromaqueen-plus-v2-advanced-stem-education-robot-18650-battery-version-7-600x.png)

- Es barata aprox [55€](https://tienda.bricogeek.com/sensores-imagen/1410-huskylens-camara-de-vision-artificial.html?search_query=HuskyLens&results=4)
- Tiene más funciones, como reconocimiento facial
- Tiene una pantalla pequeña de 2 pulgadas OLED integrada para visualizar su funcionamiento.
- Su utilización es muy similar, entrar en el modo de operación que se desee (reconocimiento color, líneas, facial....) y dar al botón cuando es el objeto que se desea [ver](https://edu.dfrobot.com/makelog-308564.html)
- Necesita una placa complemento para la microbit (Robot Maqueen Plux o una[ tarjeta IO expansión...](https://tienda.bricogeek.com/microbit/1668-io-expansion-para-microbit.html?search_query=IO+Expansion+para+Micro%3Abit&results=32))
- <span style="background-color: rgb(255, 255, 255);">Debido a su consumo 320mA necesitan una alimentación externa </span>**<span style="background-color: rgb(251, 238, 184);">HAY QUE RECHAZAR TODA ALIMENTACIÓN CON LAS BATERÍAS 1860 QUE ESTEN ACCESIBLES</span> [ver peligros](https://libros.catedu.es/books/rover-marciano-alphabot-rasbperry-y-python/page/121-ojo-con-las-baterias-18650)**
- [![2024-05-06 19_39_01-Robot Maqueen Plus V2 para Micro_bit.png](https://libros.catedu.es/uploads/images/gallery/2024-05/scaled-1680-/2024-05-06-19-39-01-robot-maqueen-plus-v2-para-micro-bit.png)](https://libros.catedu.es/uploads/images/gallery/2024-05/2024-05-06-19-39-01-robot-maqueen-plus-v2-para-micro-bit.png)
    - Hay que descartar las 18650 modelos [https://www.dfrobot.com/search-maqueen%20plus.html](https://www.dfrobot.com/search-maqueen%20plus.html)
    - Hay modelos con baterías AAA NiMh recargables[ aprox 105€ ](https://www.dfrobot.com/product-2027.html)

Ver ejemplo de uso :

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/PPCDj8t5hdc?t=17s" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Smart AI Lens kit** </span><span style="color: rgb(22, 145, 121);">**ELECFREAKS**</span>

<span style="color: rgb(0, 0, 0);">Ver ejemplos de uso Microbit+cutebot + AI LENS en [https://libros.catedu.es/books/microbit-car/page/ai-lens-elecfreak](https://libros.catedu.es/books/microbit-car/page/ai-lens-elecfreak)</span>

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/YLxeKgtaUCU?t=13s" width="560"></iframe>

# SmartCamera - conexión con mBot

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

Para conectarlo con mBot1 **hace falta la batería** que se suministra en el pack, con su cable de conexión (punto 3 al 4 de la figura( y el cable de conexión del puerto I2C (punto 2) al RJ45 (punto 1).

[![smartcamera2.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera2.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera2.png)

*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,   
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Una propuesta de montaje es este:

[![smartcamera3.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera3.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera3.png)

*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón, Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Otra podría ser esta, utilizando también la misma pieza para que SmartCam tenga más visión :

[![2024-04-01 12_46_55-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/2024-04-01-12-46-55-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2024-04/2024-04-01-12-46-55-whatsapp.png)

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

<span style="color: rgb(0, 0, 0);">En este robot, no tenemos puertos con clavija RJ45 pero sí puertos I2C que permiten comunicación de los diferentes módulos de sensores y actuadores en serie, en la figura vemos como se conectan el sensor sigue líneas con el sensor distancia ultrasonidos en serie.</span>

<span style="color: rgb(0, 0, 0);">[![smartcamera7.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera7.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera7.png)</span>

<span style="color: rgb(0, 0, 0);">Podemos no perder el sensor a distancia de ultrasonidos y conectarlo desde este sensor (1) al smartcamera (2) con el cable I2C que se suministra en el pack de smart cámera.</span>

<span style="color: rgb(0, 0, 0);">[![smartcamera6.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera6.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera6.png)</span>

<span style="color: rgb(0, 0, 0);">Por supuesto puedes prescindir el sensor de distancia de ultrasonidos y conectarlo al sensor sigue líneas. O incluso directamente a la placa y prescindir también del sigue líneas.</span>

<p class="callout success"><span style="color: rgb(0, 0, 0);">Con mBot2 **NO hace falta conectar la batería.** Smart cámera ya se alimenta a través del cable I2C. Pero si se pone no pasa nada, internamente las masas están conectadas.</span></p>

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

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

<span style="color: rgb(0, 0, 0);">Tenemos que ir a bloques e instalar la **extensión SMART CAMERA**</span>

<span style="color: rgb(22, 145, 121);">**[![smartcamera8.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera8.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera8.png)**</span>

# Smart camera - seguimiento color - sencillo

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

##### <span style="color: rgb(22, 145, 121);">**Método por software (recomendado)**</span>

Una forma de configurar la cámara en este modo, es insertar estas instrucciones al inicio del programa

[![smartcamera.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera.png)

La explicación es :

- Encenderemos el led para ser un poco independientes de la luz ambiental, esto es optativo.
- Iniciar smart cámera **en el modo de seguimiento de color**
- Luego le diremos a la cámara que aprenda el color. Para ello ponemos la pelota que queramos ENFRENTE DE LA CÁMARA, LO MOVEREMOS SUAVMENTE HASTA QUE EL LED TENGA EL MISMO COLOR QUE LA PELOTA. En ese momento pulsamos el botón LEARN.

[![smartcamera10.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera10.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera10.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Se ve mejor con un vídeo

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

##### <span style="color: rgb(22, 145, 121);">**Método por hardware**</span>

Otro método es:

- pulsar en el botón de LEARN Y <span style="text-decoration: underline;">NO SOLTARLO</span>
- el led empieza a parpadear en diferentes clores
- el led pregunta qué color quieres que aprenda, el código es el siguiente

[![smartcamera22.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera22.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera22.jpg)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

- Ojo: *NO SIGNIFICA QUE HAY QUE PONER ESOS COLORES* es decir, si el led está en rojo, no significa que tienes que poner una pelota roja, sino que pregunta por el color 1
- Cuando está en el color que deseas (por ejemplo, queremos grabar el color número 1, entonces esperamos a que el led se ponga rojo) entonces en ese momento <span style="text-decoration: underline;">LO SOLTAMOS</span>
- Ahora igual que antes: 
    - Ponemos la pelota del color que deseamos que aprenda, y cuando coincide hacemos una pulsación corta en LEARN

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

El programa es sencillo

- Si el color se detecta arriba, avanza
- Si el color se detecta abajo, retrocede
- Si el color se detecta a la izquierda, gira a la izquierda
- Si el color se detecta a la derecha, gira a la derecha

[![smartcamera21.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera21.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera21.jpg)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Lo añadimos en un bucle junto con el script anterior de configuración de la cámara, y se añaden unos avisadores de led para saber en qué estado está la cámara

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

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

Si no quieres poner lo accesorio [https://planet.mblock.cc/project/3719420](https://planet.mblock.cc/project/3719420)

[![smartcam79.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam79.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam79.png)

<p class="callout success">**Aclárate** ¿Qué potencia le doy? 50% o 90%?  
R: Pues el que quieras, cuanto menos potencia, lo sigue mejor, pero si la bola va deprisa, lo "pierde"  
Si la das más potencia, no lo sigue tan bién, hay a veces "oscilaciones" que no se estabilizan. Ver este vídeo</p>

<p class="callout success"><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="791" src="https://www.youtube.com/embed/ntxRP3fOz3M" title="18 March 2024" width="445"></iframe>

</p>

# Smart camera seguimiento color avanzado

##### <span style="color: rgb(22, 145, 121);">**Kp, velocidad diferencial del motor.... ¿Eso qué es?**</span>

En la extensión CAMARA INTELIGENTE ESPECÍFICA PARA EVENTOS

[![smartcam30.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam30.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam30.jpg)

Encontramos estas dos instrucciones

[![smartcam31.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam31.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam31.jpg)

¿Qué significan?

Vamos a definir dos sistemas de coordenadas

- Las **coordenadas del fondo de PixiCam**
- Las **coordenadas de la SmartCam asociadas al evento** (en este caso el seguimiento del color) que en la instrucción se llama *velocidad diferencial* (no puedo llamarlo velocidad pues son coordenadas espaciales, como físico lo siento, no puedo 😫)

Las **coordenadas de fondo de Pixicam** <span style="text-decoration: underline;">son fijas</span>, y van desde 0,0 a 320,240 y se pueden ver en la pantalla de PixiMon moviendo el ratón:

[![smartcam32.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam32.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam32.jpg)

Las otras coordenadas *"**Las coordenadas de la SmartCam asociadas al evento**"* están asociadas al evento y están escalados según el valor de 100\*Kp donde Kp tiene que ser un número de 0 a 1 por lo tanto el máximo es 100 y el centro de coordenadas lo fija el usuario en el número de la siguiente instrucción, ese número está referido a las coordenadas del fondo de Pixicam

[![smartcam33.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam33.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam33.jpg)

Para entendernos mejor, si ponemos

[![smartcam34.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam34.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam34.jpg)

El origen será 160,120, o sea lo normal, el centro del fondo de Pixicam, pero puede interesarte "acercar" la bola al robot por lo tanto ¿subirías y a más de 120 o bajarías de 120?

Para entenderlo mejor un dibujo,:

- Las **coordenadas del fondo de PixiCam** <span style="color: rgb(224, 62, 45);">en rojo</span>
- Las **coordenadas de la SmartCam asociadas al evento**<span style="color: rgb(35, 111, 161);"> en azul</span>

[![smartcam36.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam36.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam36.jpg)

Y para entenderlo mejor, vamos a ejecutar el siguiente programa test **en mBot2** para que se vea en la pantalla del Cyberpi [https://planet.mblock.cc/project/3657404](https://planet.mblock.cc/project/3657404)

[![smartcam37.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam37.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam37.jpg)

Al ejecutarlo vemos que muestra las coordenadas de la pelota roja (asociada al evento) y como Kp es 0.3 va desde -30 a +30 tanto para X como para Y

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="791" src="https://www.youtube.com/embed/CA84H3AELKM" title="kp SmartWatch camera mbot" width="445"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Kp, velocidad diferencial del motor.... ¿Eso para qué sirve?**</span>

Pues como son las coordenadas de lo que se "separa" la bola de tu origen, puedes darle velocidad a los motores según esas coordenadas

Desde el punto de vista de las Y (avanzar o retroceder) si hay más Y más tienen que ir los dos motores (hacia delante) si la Y es negativa los dos motores tienen que retroceder, luego desde el punto de vista de las Y :

- Velocidad motor izquierdo = Y
- Velocidad motor derecho = Y

Desde el punto de vista de las X (girar) si la X es positiva, tiene que girar a la derecha por lo tanto motor izquierdo avanzar (positiva) y el derecho retroceder (negativo) y si es negativo al revés por lo tanto

- Velocidad motor izquierdo = X
- Velocidad motor derecho = -X

Juntando los dos, tenemos:

- Velocidad motor izquierdo = Y + X
- Velocidad motor derecho = Y - X

##### <span style="color: rgb(22, 145, 121);">**Seguimiento del color utilizando Kp, velocidad diferencial**</span>

Podemos aumentar en un factor de 3 para darle más caña pues el máximo sería 30% al multiplicarlo por 3 conseguimos llegar al 90%. Ese factor de multiplicación de la potencia del motor tendría que ser más o menos 10\*Kp

<p class="callout info">Es decir, Velocidad motor izquierdo = 10 *Kp*  ( Y + X ) Velocidad motor derecho = 10 *Kp*  (Y - X)</p>

Cuánto más Kp, se sigue mejor a la pelota pero se consigue peor estabilización.

El programa [https://planet.mblock.cc/project/3613286](https://planet.mblock.cc/project/3613286)

[![smartcam77.png](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam77.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam38.jpg)

##### <span style="color: rgb(22, 145, 121);">**¿Por qué el seguimiento del color utilizando Kp, velocidad diferencial es mejor que el simple?**</span>

<span style="color: rgb(0, 0, 0);">Piénsalo bien, cuanto más se aleja, más potencia, mientras que el simple, si la pelota estaba en una zona determinada, va a una potencia fija.</span>

##### <span style="background-color: rgb(255, 255, 255); color: rgb(22, 145, 121);">**+ Información**</span>

En estos PDFs tienes una explicación más formal de Kp y las velocidades diferenciales:

- En Inglés [https://www.a4telechargement.fr/mBot/MB-P1100022\_SmartCamera\_StudentsBookSmartCamera\_ANG.pdf](https://www.a4telechargement.fr/mBot/MB-P1100022_SmartCamera_StudentsBookSmartCamera_ANG.pdf)
- En Español [https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf](https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf)

# Smart camera Piximon

##### <span style="color: rgb(22, 145, 121);">**INSTALACIÓN DE PYXMON V2**</span>

<span style="color: rgb(0, 0, 0);">No es un software obligatorio, pero viene muy bien qué está pasando y qué esta viendo la cámara. Además nos permite opciones avanzadas y configurar con más detalle sus posibilidades.</span>

<span style="color: rgb(0, 0, 0);">El software está en la página de [https://pixycam.com/](https://pixycam.com/)</span>

<span style="color: rgb(0, 0, 0);">[![smartcamera9.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera9.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera9.png)</span>

<p class="callout danger"><span style="color: rgb(0, 0, 0);">**ATENCIÓN** NO CONECTAR LA CAMARA CON EL CABLE USB ANTES DE LA INSTALACIÓN DE PIXIMON</span></p>

<span style="color: rgb(0, 0, 0);">Pues Windows instalará unos drivers erróneos o dejará marcado como desconocido la cámara. Instalaremos PixyMon v2 y **después** conectaremos el cable USB del ordenador a l a cámara.</span>

<span style="color: rgb(0, 0, 0);">En el caso de que hayamos metido la pata, ir a Windows-Administrador de dispositivos, quitar a cámara, instalar PixyMon y conectar la cámara.</span>

##### <span style="color: rgb(22, 145, 121);">**PARA QUE NOS SIRVE PIXIMON: PARA SABER QUÉ OCURRE EN LA DETECCIÓN DE COLOR**</span>

<span style="color: rgb(0, 0, 0);">Si algo falla, podemos conectar la Smart Camera al ordenador y Piximon nos enseña qué ve y cómo lo hace, por ejemplo el siguiente vídeo se ve que está en modo de detección de color, y vemos que ha detectado el verde</span>

<p class="callout info"><span style="color: rgb(0, 0, 0);">Conecta el cable USB a la cámara</span></p>

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="567" src="https://www.youtube.com/embed/PWXYGdNGolA" title="smartcam piximon" width="319"></iframe>

Más información

- En inglés [https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:pixymon\_index](https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:pixymon_index)
- En español [https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf](https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf)

##### <span style="color: rgb(22, 145, 121);">**PARA QUE NOS SIRVE PIXIMON: CONFIGURAR EL SIGUE-LINEAS**</span>

<span style="color: rgb(0, 0, 0);">Podemos entrar en configuración y determinar el grosor de la línea, brillo, contraste...</span>

[![image.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/SD5image.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/SD5image.png)

Para más información de la configuración del sigue líneas

- En inglés [https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:line\_pixymon](https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:line_pixymon)
- En español [https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf](https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf)

# Smart Camera Código de barras

En el modo de detección de código de barras, puede detectar 15 códigos de barras ya definidas.

[![smartcamera52.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera52.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera52.png)

Las puedes descargar aquí [https://drive.google.com/file/d/1K28cD6o5csGg1\_h7cnmsZ5Box02NTdUC/view?usp=sharing](https://drive.google.com/file/d/1K28cD6o5csGg1_h7cnmsZ5Box02NTdUC/view?usp=sharing)

[![smarcamera50.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smarcamera50.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smarcamera50.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Y las tiene que detectar en la posición correcta, excepto la 15 que es simétrica, el resto no son invariantes bajo rotación

[![smartcamera51.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera51.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera51.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

En mBlock las detecta desde el número 1 al 15. Pero observa que del 1 al 9 tiene ya unos nombres predefinidos

<p class="callout warning">**Esto no quiere decir que estés obligado a ejecutar la acción acorde al nombre de la etiqueta**, puedes elegir perfectamente que si detecta la etiqueta 5(parar) que haga girar</p>

<p class="callout info">Si quieres cambiar de nombres, dentro del software Piximon puedes renombrar estas etiquetas en Configure-Barcode labels</p>

[![smartcamera53.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera53.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera53.png)

Un programa ejemplo sería

[![smartcamera54.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera54.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera54.png)

*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

También puede detectar dada una posición, por ejemplo este programa

[![smartcamera55.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera55.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera55.png)

*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

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

<span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0); text-decoration: underline;">Caja registradora</span></span>

<span style="color: rgb(0, 0, 0);">El programa lo tenemos en [este tutorial ](https://aprender.tdrobotica.co/courses/smart-camera/lecci%c3%b3n/proyecto-1-5/)(hay que registrarse para verlo) </span>

<span style="color: rgb(0, 0, 0);"><iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/lNP9A2G3abo?t=51s" width="560"></iframe>

</span>

<span style="color: rgb(0, 0, 0);">Color traductor.[ Aquí el tutorial](https://aprender.tdrobotica.co/courses/smart-camera/lecci%c3%b3n/proyecto-2-4/) (hay que registrarse)</span>

<span style="color: rgb(0, 0, 0);"><iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/0CcMS0qkBJY" width="560"></iframe>

</span>

# SmartCamera - sigue líneas

mBot ya tiene un sigue-lineas [https://libros.catedu.es/books/robotica-educativa-con-mbot/page/siguelineas](https://libros.catedu.es/books/robotica-educativa-con-mbot/page/siguelineas) pero no trabaja la inteligencia artificial. Es un sensor que nos detecta el brillo del suelo y sobre esa respuesta programamos la potencia de los motores para que sigan la línea.

Pero en este caso será la cámara la que detectará la línea y tomará la decisión de qué rumbo tomar, para ello montaremos la cámara con una visión horizontal utilizando la pieza de ángulo recto:

[![detallesmartcamsiguelineasconexion.png.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/detallesmartcamsiguelineasconexion-png.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/detallesmartcamsiguelineasconexion-png.png)

Y conectaremos la batería con la SmartCam y el puerto I2C con el Puerto 4 por ejemplo.

[![angulosmartcamsiguelineas.png.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/angulosmartcamsiguelineas-png.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/angulosmartcamsiguelineas-png.png)

En este modo, la SmartCam reconoce las líneas que ve, y con el programa Piximon las marca con diferentes colores y decide de forma óptima el camino a seguir. El color rojo marca la decisión

[![siguelineas4.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/siguelineas4.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/siguelineas4.png)

Si el fondo,, contraste o grosor de las líneas no es el adecuado, con el programa PixiMon podemos cambiar la configuración para que lo detecte correctamente:

[![siguelineas5.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/siguelineas5.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/siguelineas5.png)

Si cargamos el programa siguiente[ https://planet.mblock.cc/project/3715899](https://planet.mblock.cc/project/3715899)

[![siguelineas3.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/siguelineas3.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/siguelineas3.png)

El resultado es :

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

Explicado paso a paso

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

##### <span style="color: rgb(22, 145, 121);">**La decisión en una intersección con programación**</span>

Si queremos que no decida automáticamente, sino que por ejemplo el ángulo del cruce es menor de 45 que gire a la derecha, el código sería

[https://planet.mblock.cc/project/3716895](https://planet.mblock.cc/project/3716895)

[![smartcam89.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam89.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam89.png)

También podríamos hacer la decisión en función si el cruce está más a la derecha o más a la izquierda, recuerda que las coordenadas x van desde el extremo izquierdo 0 al extremo derecho 320. Una opción sería :

[![siguelineas68.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/siguelineas68.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/siguelineas68.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

##### **<span style="color: rgb(22, 145, 121);">La decisión de una intersección por código de barras</span>**

El modo sigue-lineas **es también** modo de etiquetas :

[![siguelineas69.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/siguelineas69.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/siguelineas69.png)

Esto nos permite que podemos utilizar las etiquetas para las decisiones de las intersecciones

[![image.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/3pXimage.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/3pXimage.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="315" src="https://www.youtube.com/embed/rumXx31SgkI?si=ZD0YjocYGx1pD3Ef&start=684" title="YouTube video player" width="560"></iframe>

[![smartcamera47.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera47.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera47.jpg)

Extraído de [https://arduiblog.com/2022/05/01/smart-camera-de-makeblock/](https://arduiblog.com/2022/05/01/smart-camera-de-makeblock/) autor JCQuetin, licencia BY-NC-SA 3.0

# Creditos

* 2017 Capítulos 1,2 y 3 con mBlock4 por Javier Quintana CATEDU
* 2023 Actualizado a mBlock 5 por Javier Quintana CATEDU
* 2024 Capítulo 4, 5, 6 Inteligencia Artificial por Javier Quintana CATEDU

{{@3195}}