Escuela 4.0. Programacion y robótica en secundaria Cyberpi y mBot2.

Curso para aprender a utilizar técnica y metodológicamente  los dispositivos Cyberpi y Mbot  que están dentro de el programa Escuela 4.0. Estos dispositivos llegan a los centros de secundaria y están pensados para ser utilizado desde 2º de ESO a 4º de ESO.

mBot2 es un robot educativo de última generación que combina la robustez de un chasis de aluminio con el potencial de la placa CyberPi. Para el profesorado, es una herramienta clave si buscas un recurso de larga duración y alta resistencia en el aula. Incorpora motores con codificadores de alta precisión (los movimientos son exactos), una pantalla a color integrada en el propio robot y una batería recargable de larga duración, lo que optimiza la gestión del tiempo de clase al olvidarte de las pilas.

Desde el punto de vista didáctico, su valor diferencial es su preparación para el futuro tecnológico. Gracias a su micrófono, altavoz y conectividad Wi-Fi, el docente puede diseñar actividades innovadoras que van más allá de la robótica clásica, introduciendo de forma sencilla conceptos de Inteligencia Artificial (IA), reconocimiento de voz y aprendizaje automático (Machine Learning). Además, su software (mBlock) permite realizar una transición impecable empezando por la programación por bloques estilo Scratch y, con un solo clic, ver ese mismo código traducido a lenguaje de texto Python. 

Escuela 4.0 STEAM


Escuela 4.0 STEAM

Escuela 4.0 STEAM

El programa de cooperación territorial Código Escuela 4.0 y las actuaciones que incluye, se enmarcan dentro del Plan de Digitalización y de Competencias Digitales del Sistema Educativo (#DigEDu). Este plan recoge las iniciativas impulsadas por el Ministerio de Educación, Formación Profesional y Deportes dirigidas a mejorar las competencias digitales en el ámbito educativo, la dotación de medios tecnológicos y su integración efectiva y eficaz en los procesos de enseñanza y aprendizaje.


El objetivo principal del Programa Código Escuela 4.0 es incluir los lenguajes de programación y la robótica educativa para el desarrollo del pensamiento computacional y de la competencia digital del alumnado, dando así respuesta a las nuevas demandas educativas de una sociedad cambiante y crecientemente digitalizada. Es necesario que el alumnado, como parte del proceso de desarrollo de su competencia digital, tenga la oportunidad de iniciarse en la programación informática, mediante el uso de lenguajes de programación adaptados a su nivel madurativo. Implica una nueva alfabetización que le permita aproximarse y comprender la lógica interna del funcionamiento del medio digital en el que vive, habilidad imprescindible para la ciudadanía en los próximos años.


El programa Escuela 4.0 quiere dar acceso al pensamiento computacional y sus dimensiones (descomposición, patrones, algoritmos y abstracción), a lenguajes de programación adaptados y a dispositivos robóticos amigables para el alumnado de todas las edades y accesibles para el profesorado no especialista. También quiere facilitar la integración en las aulas desde las primeras etapas educativas, potenciando el conocimiento y el interés por las disciplinas STEAM de manera gradual y experiencial entre todo el alumnado, contribuyendo así a la disminución de la brecha de género en el ámbito digital.


Para más información: 

https://escuela40aragon.es/

 

Módulo 1 Pensamiento computacional y currículo

Módulo 1 Pensamiento computacional y currículo

Pensamiento computacional

Definiciones de Pensamiento computacional: 


El pensamiento computacional se basa en cuatro pilares básicos: descomposición de un problema en pasos sencillos, reconocimiento de patrones, abstracción y diseño de algoritmos. Este tipo de pensamiento es básico para llevar a cabo un programa informático y generalizable a otro tipo de situaciones. 

Haz clic en las zonas activas de la presentación para acceder a toda la información.

Módulo 1 Pensamiento computacional y currículo

Currículo

Cyberpi y mBot es uno de los dispositivos de la adjudicación del programa de cooperación Escuela 4.0 a los centros de secundaria. Se recomienda su uso desde 2ª de ESO hasta 4º  de ESO.

itinerario dispositivos E40.png

Imagen tomada de la web  https://escuela40aragon.es/itinerario/. Acceder a ella para consultar el itinerario

El pensamiento computacional, la programación y la robótica guarden relación directa según está recogido en el currículo con las siguiente asignatura de secundaria obligatoria:

001_Lomloe.jpg

Imagen tomada de la web  https://escuela40aragon.es/curriculo/. Acceder a ella para consultar el  apartado de currículo de manera interactiva.

Pero la realidad que es podemos trabajar el pensamiento computacional, la programación y la robótica desde cualquier asignatura utilizado el enfoque STEAM.

Módulo 2 Conocimiento del robot

Módulo 2 Conocimiento del robot

Conocimiento del robot.

En este módulo vamos a conocer el equipo .

1- Conocer Cyberpi

HARDWARE

Cyberpi ya es un robot, tipo placa electrónica, basado en ESP32 por lo tanto con Wifi y Bluetooh integrado y se le incorporan los suiguientes SENSORES Y ACTUADORES

2024-05-16 20_42_23-cyberpi-guia (1) - PDF-XChange Viewer.png

2024-05-16 21_03_57-cyberpi-guia (1) - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

HARDWARE - PUERTOS

2024-05-16 21_32_56-cyberpi-guia (1) - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

  • Puerto para conexión de tarjetas de extensión : La tarjeta Cyberpi esta diseñada para conectarse al chasis del robot mBot2, así como otros shields comerciales para esta placa. por ejemplo el de la figura:
    2024-05-16 21_39_06-cyberpi-guia (1) - PDF-XChange Viewer.png
    Fuente:  Guia Cyberpi Robotix con permiso del autor
  • Puerto USB tipo C para conectarnos con el PC e instalar los programas que deseemos, Se pueden añadir varios y seleccionar con el Joystick cual ejecuta.
  • Puerto para Conexión módulos electrónicos:, con protocolos serie I2C, permite conexión de diferentes módulos, sin necesidad de tener más puertos, simplemente conectando todos en serie.

2024-05-16 21_33_23-cyberpi-guia (1) - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

SOFTWARE

Permite una programación en bloques con mBlock5 y con código con Python que también se puede hacer desde el mismo mBlock.

Para actualizar el Firmware instalado en Cyberpi, se tiene que hacer desde el mismo mBlock, Aquí cómo se hace.

Para ejecutar los programas que se graban en Cyberpi, se entra en Cambiar programa y seleccionando los programas cargados.

2024-05-16 22_27_07-cyberpi-guia (1) - PDF-XChange Viewer.png

2024-05-16 22_27_38-cyberpi-guia (1) - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

 Si se quiere ejecutar los programas predefinidos mover el joystick en el menú anterior a la derecha, y encontramos los típicos: Nivel de voz, sigue líneas, ....

 2- Conocer mBot2

Hay que entender mBot2 como un chasis a CyberPi es decir, el rotot es CyberPi y le añadimos sensores y actuadores que es mBot2

2024-07-16 14_12_24-mbot2-actividades - PDF-XChange Viewer.png

Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

MOTORES CODIFICADORES

Permite el control de la velocidad y de la posición pues están codificados (motores paso a paso o motores con un detector de posición) por lo tanto permite movimientos precisos y colocar mBot2 en lugares exactos.

Comparandolo con mBot1 su control se realizaba por más o menos potencia a los motores, lo que provocaba desviaciones indeseadas.

SENSOR ULTRASONICO

Más preciso que su anterior. y además tiene unos leds que permite más interacción

2024-07-16 14_26_54-mbot2-actividades - PDF-XChange Viewer.png

Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

SENSOR QUAD RGB

Es un sigue líeas más avanzado pues permite detectar cruces de 90ª pues tiene 4 sensores frente a los 2 que tenía mBot1

Además tiene un sensor de color lo que permite conocer en qué posición de la línea estamos.

2024-07-16 14_29_03-mbot2-actividades - PDF-XChange Viewer.png
Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

Para que el sensor interprete los colores que pertenecen a la línea mirar el vídeo :

Módulo 3. Programación con Cyberpi.


Módulo 3. Programación con Cyberpi.

Comenzamos con Cyberpi

Conectamos Cyberpi con el PC utilizando un cable USB tipo c

2024-05-16 22_29_10-cyberpi-guia (1) - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

OJO, hay cables baratos que sólo sirven para "cargar", el cable que necesitamos tiene que permitir la comunicación bidireccional.

Entramos en mBlock5 https://ide.mblock.cc/ y añadimos el dispositivo CyberPi

2024-05-16 22_29_43-cyberpi-guia (1) - PDF-XChange Viewer.png

Una vez cargado el dispositivo CyberPi recomendamos entrar en la conexión directa (3) y pulsamos Conectar (4)

2024-05-16 23_31_11-mBlock Block-Based IDE- Coding for Beginners.png

Al dar a Conexión directa nos da dos opciones, Bluetooth y Serie, elegimos serie

2024-05-17 13_00_51-Window.jpg

Nota: La conexión Bluetooth sólo es si tenemos el pincho asociado (se vende aparte) y permite una conexión en vivo inalámbrica.
2024-05-17 13_04_08-Window.jpg

Se abren los puertos disponibles, elegimos el que esté conectado nuestro Cyberpi

Ojo: Tiene que estar encendido, si está con mClon, dar al interruptor on

2024-05-17 13_02_27-Window.jpg

Al dar a Conexión directa desaparece el texto y aparece Conexión con mLink ¿Qué es eso? Es otra opción, que antes se hacía obligatoriamente si usabas mBlock online: Instalar el programa mLink (que se puede descargar en https://www.mblock.cc/en/download/mlink/ ) y antes de entrar a mBlock online, tienes que ejecutar este programa y dejarlo minimizado. Aunque es una opción que puedes utilizar (y te evita la ventana anterior) la conexión directa es también cómoda.
2024-05-17 13_10_07-Window.jpg

Al conectar, nos aparecen instrucciones específicas de Cyberpi como instrucciones generales

2024-05-16 23_41_08-mBlock Block-Based IDE- Coding for Beginners.png

Podemos empezar con nuestro primer programa

2024-05-16 23_45_30-mBlock Block-Based IDE- Coding for Beginners.png

Le damos a Cargar , (luego aclaramos el modo En vivo qué es) y se ejecuta el programa

2024-05-16 23_46_23-mBlock Block-Based IDE- Coding for Beginners.png

MODO VIVO ¿ESO QUÉ ES?

El modo vivo, permite interactuar con el PC, por ejemplo:

2024-05-17 13_41_35-Window.jpg
https://www.youtube.com/shorts/tV1yhUV41lg?feature=share

Si te fijas, Cyberpi está conectado con cable USB al PC pues estamos En vivo dependemos del ordenador. Si se quiere una conexión En vivo e Inalámbrica, es necesario comprar el pincho bluetooth

UN POCO MÁS COMPLICADO

Podemos complicarlo un poco más para darle más colorido y sonido

2024-05-16 23_47_54-mBlock Block-Based IDE- Coding for Beginners.png

               MUY IMPORTANTE

Para poder continuar con el curso, es necesario tener algunos conocimientos mínimos de programación en bloques, sobre todo el significado de los siguientes bloques

2024-07-16 12_18_07-mBlock v5.4.3.png

Recomendamos visitar las páginas 30 al 42

Módulo 3. Programación con Cyberpi.

LED

En el apartado de LED 2024-07-03 18_31_52-cyberpi-guia - PDF-XChange Viewer.pngpodemos realizar diferentes animaciones de la tira de Leds RGB que tiene Cyberpi, por ejemplo 

2024-07-03 18_43_52-mBlock v5.4.3.png

Otro ejemplo más animado sería

2024-07-03 18_48_39-mBlock v5.4.3.png

Lo siento.... no lo podía evitar, si lo entiendes es que tienes la edad perfecta para la robótica 😁 para cambiar los colores, de los leds hacer doble clic en la muestra

2024-07-03 19_06_39-mBlock v5.4.3.png

 

 

Módulo 3. Programación con Cyberpi.

Pantalla con textos

La pantalla OLED que incorpora Cyberpi nos permite muchas posibilidades. para ello entramos en 2024-07-03 19_11_18-cyberpi-guia - PDF-XChange Viewer.png

2024-07-03 19_22_45-mBlock v5.4.3.png

2024-07-03 19_22_19-WhatsApp.png

Cómo puedes observar, si el texto no le cabe, automáticamente hace salto de línea. También puedes ver que no le gustan los acentos, ñ etc.. 

Puedes forzar el salto de línea con la instrucción :

2024-07-03 19_29_54-mBlock v5.4.3.png

Y también podemos imprimir una etiqueta en la fila 1 a 8 pero ten en cuenta que si coincide, se sobrescribe. Por ejemplo este código:

2024-07-03 19_31_54-Introducción a Cyberpi.pdf.png

Los números no se borran, pero si hacemos este programa, se sobrescriben

2024-07-03 19_34_00-Introducción a Cyberpi.pdf.png

Si queremos que el texto se desplace como una marquesina, tenemos que usar un contador y fijar la etiqueta en coordenadas X e Y correspondientes:

2024-07-03 19_34_54-Introducción a Cyberpi.pdf.png

Las coordenadas X e Y :

2024-07-03 19_37_08-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Módulo 3. Programación con Cyberpi.

Pantalla con gráficos

La pantalla OLED integrada de Cyberpi esta muy bien conseguida, permite muchas posibilidades inalcanzables en otras placas como Microbit y Arduino R4 (me refiero a sus pantallas integradas). Mira el primer minuto de este vídeo y lo verás

Gráficos de líneas

Ahora realiza este ejercicio, como puedes ver va representando números aleatorios:

2024-07-03 19_49_54-Introducción a Cyberpi.pdf.png

Cambia el espaciado de 5 pixeles a 20 píxeles y notarás la diferencia. Aquí en este figura tienes un ejemplo

2024-07-09 22_39_39-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Podemos pues hacer que visualice la lectura de los sensores, por ejemplo el de luz. Como podemos ver en el vídeo es bastante preciso.

Nota: Cambia 30 por 300 para que te de tiempo a jugar con la luz

2024-07-03 19_47_03-mBlock v5.4.3.png

https://planet.mblock.cc/project/7548309

https://www.youtube.com/shorts/JDbkvJcwSvw

Gráficos de barras

Este ejemplo (que se muestra en vivo, pero también lo puedes poner en forma cargar) 

2024-07-09 22_41_21-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Produce un gráfico de barras de dos columnas de datos :

2024-07-09 22_43_17-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

¿Y qué harías para tener 4 barras de diferentes colores?

Si queremos esto
2024-07-09 23_44_52-cyberpi-guia - PDF-XChange Viewer.png

Tenemos que hacer
2024-07-09 23_45_36-cyberpi-guia - PDF-XChange Viewer.png

Si quieres otro ejemplo más elaborado de gráficos de barras, en la página 15 del manual  Pere Manel Verdugo Zamora  podrás encontrar un ejemplo de simular un dado 100 veces.

Escribir tablas en la pantalla

La pantalla de Cyberpi permite tablas de 4x3 como máximo

2024-07-09 23_03_45-mBlock v5.4.3.png

Este ejemplo

2024-07-09 23_04_46-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Produce la salida siguiente

2024-07-09 23_05_42-cyberpi-guia - PDF-XChange Viewer.png
Fuente:  Guia Cyberpi Robotix con permiso de la empresa.

Y más...

Podemos fijar los colores con estas dos instrucciones:

2024-07-10 00_06_03-mBlock v5.4.3.png

Podemos rotar la pantalla 

2024-07-10 00_06_32-mBlock v5.4.3.png

2024-07-10 00_08_24-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Y también tenemos :

2024-07-10 00_07_12-mBlock v5.4.3.png

Funciones trigonométricas

2024-07-16 12_03_05-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

2024-07-16 12_03_32-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

2024-07-16 12_03_59-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Módulo 3. Programación con Cyberpi.

Detección

Detección del Joystick y teclas A y B

Podemos hacer este mensaje en el Cybperpi

2024-07-13 23_02_49-mBlock v5.4.3.png

aunque parece largo, es corto si se hace duplicar el if principal

En el objeto panda hacemos el programa:

2024-07-13 23_04_02-mBlock v5.4.3.png

También es corto y fácil de hacer utilizando duplicar. Como te puedes imaginar, el resultado es el siguiente :

.

También puede contar el número de veces que se produce el evento.

El siguiente programa nos puede servir como "contador de personas manual"

2024-07-13 23_19_20-contador de personas manual - Buscar con Google.png

2024-07-13 23_14_57-mBlock v5.4.3.png
Y el resultado es :

¿Por qué existe ese "espera" 0.1 segundos?

Para quitar los rebotes.
Prueba quitarlo y verás

También puede detectar las teclas A y B, como ya vimos en SONIDOS

2024-05-17 14_00_55-Window.jpg
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Sensor de sonido

Podemos hacer este programa para ver la detección del sonido

2024-07-14 00_04_38-mBlock v5.4.3.png

Sensor luz

La detección de la luz, que ya lo vimos en gráficos

.

2024-07-03 19_47_03-mBlock v5.4.3.png

https://www.youtube.com/shorts/JDbkvJcwSvw

Otro sensor que tiene incorporado es el nivel de batería

Temporizador

Con este programa tenemos un cronómetro sencillo

2024-07-14 00_10_27-cyberpi-guia - PDF-XChange Viewer.png

Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Otras detecciones

Que sólo  tienen sentido si Cyyberpi esta montado en una extensión, por ejemplo el chasis mbot2

2024-07-14 07_40_54-mBlock v5.4.3.png

2024-07-14 07_39_30-Clipboard.png

Un ejemplo de detección

Puedes experimentar las diferentes fuerzas, velocidades con este script en vivo.

Lo tienes en https://planet.mblock.cc/project/3576507

2024-07-16 11_24_40-mBlock v5.4.3.png

Módulo 3. Programación con Cyberpi.

LAN

Conectarse a la Wifi método por programación

Podemos poner en la programación las órdenes necesarias para que el Cyberpi se conecte a la red Wifi, la instrucción básica la tienes en la pestaña IoT 
2024-07-16 10_35_07-mBlock v5.4.3.png 

2024-07-15 23_36_45-mBlock v5.4.3.png

Pero tiene la desventaja de que no nos informa el estado. Este script es más elaborado

2024-07-15 23_42_27-mBlock v5.4.3.png

Conectarse a la Wifi método rápido

Otra manera es utilizar el programa mismo mBlock

2024-07-15 23_21_14-Documento1 - Microsoft Word.png

Nombre del equipo

Para identificar nuestro equipo, necesitamos saber su nombre para diferenciarlos de otros, tenemos en en bloque de detección

2024-07-14 08_17_40-mBlock v5.4.3.png

2024-07-14 08_18_21-WhatsApp.png

El nombre del equipo se puede ajustar aquí :

2024-07-14 08_20_24-mBlock v5.4.3.png

INSTRUCCIONES DE LAN

Una vez que estamos conectados, los diferentes CYBERPI que están dentro de una LAN pueden enviarse mensajes con estas instrucciones

2024-07-15 23_23_41-mBlock v5.4.3.png

Ojo, sólo si están dentro de la misma LAN es decir, fuera de la red local los Cyberpi no se ven con estas instrucciones.

También el router puede separar diferentes LANs para saber más

Por defecto esta en el canal 6 pero puedes hacer subgrupos en distintos canales el 1 y el 11 con la instrucción "pon el canal de la LAN a .... y los miembros de un canal no pueden ver a los de otro canal distinto.

PROGRAMA EJEMPLO enviar la bienvenida

Vamos a poner este programa (en los dos el mismo) en dos cyberpis conectados a la misma wifi (si no aparece en el código es por que se ha utilizado el método rápido)  :

2024-07-15 23_32_12-mBlock v5.4.3.png

El resultado es 

... Y EN EL CASO DE QUE SÓLO TENGO UN CYBERPI ????                                                             
En el cyberpi

Instalamos la extensión BROADCAST

2024-07-18 11_50_37-mBlock v5.4.3.png

El código es parecido

2024-07-18 11_52_29-mBlock v5.4.3.png

Y lo subimos y dejamos conectado el cyberpi con el PC

2024-07-18 11_53_54-.png

En el Sprite (o sea el panda)

Instalamos la extensión broadcast (que se llama difusión) para las imágenes anidadas

2024-07-18 11_55_24-mBlock v5.4.3.png

Y creamos el siguiente programa para el sprite

2024-07-18 11_56_19-mBlock v5.4.3.png

RESULTADO

Módulo 3. Programación con Cyberpi.

STEAM- Sonido

Cómo ya hemos dicho la el pensamiento computacional, la programación y la robótica nos permite trabajar de manera interdisciplinar conectando saberes  y conocimientos de las diferentes asignaturas. Es una oportunidad que no podemos desaprovechar ya que  sirve al alumnado para dar sentido a lo aprendido a los largo de las horas del instituto.

Os vamos a proponer tres maneras sencillas de conectar saberes :

Utilizando el leitmotiv del sonido, podemos trabajar contenidos de Música, Física y Tecnología. Lo que se plantea es una introducción y a partir de aquí el profesorado pueda desarrollar el tema. 

Grabadora sencilla

La librería de Audio tenemos opciones interesantes

2024-05-17 13_58_00-Window.jpg

Podemos poner un programa sencillo

2024-05-17 14_00_55-Window.jpg
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Este programa empieza con el evento tecla espacio. Por lo tanto necesita el Modo vivo
P: ¿Qué haríamos para no depender del ordenador, es decir, utilizar el modo cargar?
R: Podemos usar otro tipo de eventos que no dependa del PC

2024-05-17 14_02_51-Window.jpg

Grabadora más sofisticado

Si entramos en los programas de ejemplo, podemos elegir Magical Recorder

2024-05-17 14_50_17-Window.jpg

Y funciona como una grabadora de bolsillo:

Sirena

Si entramos en programas de ejemplo- Buzzer:

2024-05-17 14_43_55-Window.jpg

Toca una sirena:

2024-05-17 14_45_10-Window.jpg

Podemos jugar a reproducir notas

2024-05-17 14_41_11-Window.jpg

Teniendo en cuenta que sigue la notación inglesa. Equivalencia entre las notas anglosajonas, nota MIDI y frecuencias :

notes.gif

Fuente: Acústica musical. ETS Univ Vallalodid

Más sobre audio con Cyberpi en https://education.makeblock.com/help/mblock-block-based-device-cyberpi-audio/

Detección sonidos 

2024-07-16 12_00_00-mBlock v5.4.3.png

Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

¿Qué hace este programa?

Va desplazando un led de izquierda a derecha hasta que recibe un sonido fuerte, (en ese momento enciende todas las luces, y emite un sonido) luego después de 3 segundos vuelve a empezar 

Sirena

2024-07-16 12_06_03-cyberpi-guia - PDF-XChange Viewer.png

Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Módulo 3. Programación con Cyberpi.

STEAM-Movimiento

La segunda propuesta  STEAM es el Movimiento que se puede trabajar en Educación Física, Matemáticas y Tecnología.

Ahora vamos a ver los programas en 2024-07-12 14_01_28-mBlock v5.4.3.png

Sensibilidad

Este sencillo programa podemos controlar el sprite según los movimientos definidos en Cyberpi

2024-07-12 13_51_58-mBlock v5.4.3.png

Ejecuta el anterior programa EN VIVO pues hay que mover el sprite

En teoría estos son los movimientos :

2024-07-12 13_56_49-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

O montado con el mBot2 :

2024-07-18 09_34_32-mbot2-actividades.pdf.png

Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

Pero no es fácil :

El siguiente script muestra por la pantalla de Cybperpi si esta en movimiento (Adaptado de  Guia Cyberpi Robotix con permiso de la empresa. José Manuel Ruiz Gutiérrez)

2024-07-12 14_08_04-mBlock v5.4.3.png

Resultado

Adaptado de Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

2024-07-12 14_11_20-mBlock v5.4.3.png

O este otro

2024-07-12 14_17_02-mBlock v5.4.3.png

Detección de giros

2024-07-12 14_25_57-mBlock v5.4.3.png

El criterio de ángulos es ;

2024-07-12 14_27_25-cyberpi-guia - PDF-XChange Viewer.png
Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Un programa muy visual para ver la precisión que lo realiza es el siguiente:

2024-07-13 10_58_02-mBlock v5.4.3.png

Como podemos ver, los ángulos superiores a 360 están permitidos y al revés, en sentido negativo también:

Esto nos permite contar el número de vueltas que gira y su sentido.

Aceleraciones

También puede medir la aceleración en cualquiera de los tres ejes, por ejemplo este programa

2024-07-13 10_28_54-mBlock v5.4.3.png

Este es el resultado

Un ejercicio interesante: Contador de pasos

2024-07-16 11_52_26-cyberpi-guia - PDF-XChange Viewer.png

Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Visualización en forma de tabla de las inclinaciones

2024-07-16 11_54_22-cyberpi-guia - PDF-XChange Viewer.png

Manual de Cyberpi https://www.robotix.es/ebook/cyberpi-guia.pdf contenidos e imágenes publicados con permiso de la empresa Robotix. Autor José Manuel Ruiz Gutiérrez.

Resultado :

2024-07-16 11_54_59-cyberpi-guia - PDF-XChange Viewer.png

Módulo 3. Programación con Cyberpi.

STEAM-IOT

La tercera propuesta tiene que ver con el internet de las cosas  y la recogida de datos  que puede hacerse desde cualquier disciplina científica. En este caso conectamos ciencia y tecnología.

El Internet de las cosas (Internet of Thing IoT) describe objetos físicos —o grupos de estos— con sensores, capacidad de procesamiento, software y otras tecnologías que se conectan e intercambian datos con otros dispositivos y sistemas a través de internet u otras redes de comunicación.​ El Internet de las cosas se ha considerado un término erróneo porque los dispositivos no necesitan estar conectados a la Internet pública. Sólo necesitan estar conectadas a una red y ser direccionables individualmente

Fuente Wikipedia IoT Internet de las cosas CC-BY-SA

De Drawed by Wilgengebroed on FlickrTranslated by Prades97 CC BY-SA 3.0

Estamos hablando de dispositivos que se conectan a internet de forma desatendida, por vía hardware (o mejor dicho firmware) a diferencia de un ordenador, tablet o móvil, donde tienes que configurar por software el dispositivo y hay un diálogo entre usuario y dispositivo sobre el uso de Internet (el software solicita tal página web, tales datos etc por voluntad del usuario o por diálogo con el usuario) Aquí los dispositivos están ya configurados de los datos que se comunican. Es decir "conectar y olvidar". 

Piensa en la diferencia entre un enchufe inteligente y un ordenador, el primero es lo que se considera dentro de IoT

Desventajas: El acceso a Internet de dispositivos caseros puede generar problemas a nivel mundial:
- el caso Mirai
- aspiradores que nos espían

IoT en los cursos de Aularagón

En esta pestaña tenemos elementos que nos permiten usar Internet para enviar mensajes o recoger información :

2024-07-16 11_08_49-mBlock v5.4.3.png

Para utilizar muchos elementos de IoT es necesario utilizar los servidores de Makeblock por lo tanto hace falta estar logueados

2024-07-16 11_14_07-mBlock v5.4.3.png

PROGRAMA EJEMPLO enviar la bienvenida

Vamos a poner este programa, QUE ES SUPER PARECIDO AL QUE HEMOS VISTO EN LAN  los dos cyberpis conectados a la wifi (NO HACE FALTA QUE SEA LA MISMA)  :

2024-07-16 11_12_34-mBlock v5.4.3.png

En este vídeo ESTAN CONECTADOS A DISTINTAS WIFIS (uno en una wifi del router, SSID catedu y otro en un móvil con datos SSID catedu2) por lo tanto NO PERTENECEN A LA MISMA LAN, podrían estar en cualquier parte del mundo con tal que estén conectados a Internet, y al loguearte, comparten los datos que hay en tu carpeta del servidor, "tu nube de usuario".

RETO: si te fijas, se repite el mensaje, es decir, en el cyberpi LUCIA vuelve a salir Tú te llamas LUCIA (también aparece en el Cyberpi de ISABEL) ¿Cómo evitarías esto?

PROGRAMA RECOGIDA DE DATOS CLIMÁTICOS

También permite recoger datos climáticos, que nos proporciona los servidores de Makeblock, por ejemplo:

2024-07-16 11_29_24-mBlock v5.4.3.png

2024-07-16 11_30_03-WhatsApp.png

P: ¿Por qué se ha elegido ACTUR ZARAGOZA como localidad de Calidad de Aire? ¿No puedo poner Fuentes Claras?
R : En todos sitios no hay estaciones de calidad de aire con datos públicos, uno está en Actur y es el que se ha elegido.

Módulo 4. Programación con mBot.


Módulo 4. Programación con mBot.

Comenzamos a programar con mBot

Podemos instalar diréctamente mBot2, lo interpreta como un chasis de Cyberpi

  1. Vamos a extensión luego vamos a buscarlo en extensión
  2. Buscamos mBot2 descargar
  3. Añadir

2025-04-07 14_02_01-mBlock v5.4.3.png

Se instarán estos conjuntos de instrucciones :

2024-07-16 14_20_35-mBlock v5.4.3.png


Módulo 4. Programación con mBot.

Primeros pasos

Control remoto con el teclado

Vamos a realizar EN VIVO este programa

2025-04-07 13_53_09-mBlock v5.4.3.png

Como puedes ver es puedes controlar el robot pero esta "atado" al ordenador, esa es la desventaja de programar EN VIVO

Programa de bienvenida

El contenido a partir de aquí es de esta página es de

Vamos a realizar este programa, primero una pantalla de bienvenida:

2024-07-17 10_13_25-Capitulo 1 (mBot Demostración de movimiento).pdf.png

Luego interactuamos con el joystick y el movimiento:

2024-07-17 10_14_34-Capitulo 1 (mBot Demostración de movimiento).pdf.png

2024-07-17 10_15_18-Capitulo 1 (mBot Demostración de movimiento).pdf.png

2024-07-17 10_15_45-Capitulo 1 (mBot Demostración de movimiento).pdf.png

2024-07-17 10_16_04-Capitulo 1 (mBot Demostración de movimiento).pdf.png

Cargamos estos programas EN MODO CARGA

RESULTADO

El contenido de esta página es de

Módulo 4. Programación con mBot.

Jugando con la luz

mBot2 se quiere ir de marcha nocturna

Podemos hacer que el mBot2 se vaya de marcha nocturna

Un programa muy muy sencillo es este hay que jugar con los valores de 20 y 50 según las condiciones de tu aula

2025-04-07 12_01_56-mBlock v5.4.3.png

Es muy espectacular hacerlo con los alumnos, se deja el aula a oscuras, se encienden todas las luces y todo baila ! 

 

No te quedes con sólo girar, hazle piruetas, juegos de luces etc... 

Robot polilla

Podemos hacer este sencillo programa que avanza si hay luz, o va dando vueltas (lo busca) si no hay

2025-04-07 12_14_26-mBlock v5.4.3.png

Puedes alterar el programa de tal manera que si no hay luz, que haga giros más largos, retroceda...

Módulo 4. Programación con mBot.

Evitar obstáculos I

Mi primer "Evita obstáculos"

Sugerimos un programa sencillo 

https://planet.mblock.cc/project/7548708

2025-04-07 11_53_00-mBlock v5.4.3.png

Como puedes ver, cuando hay un obstáculo a menos de 15cm (puedes modificar este número) retrocede un poco, gira y así evita el obstáculo. Si no hay objeto, pues avanza

El Evita obstáculos de programas de ejemplo

Acuérdate que para manejar el sensor de distancia, hay que instalar la extensión correspondiente. Ver https://libros.catedu.es/books/cyberpi-y-mbot2/page/como-usar-mbot2-en-mblock

El script que proponemos es el que se encuentra en "Programas de ejemplo ":

2025-04-01 20_45_43-mBlock v5.4.3.png

El contenido a partir de aquí es de

2024-07-17 10_24_10-Capitulo 2 Evitar obstaculos con mBot2.pdf.png

La distancia de 8cm es arbitraria y también la elección de hacerlo al azar o no.

Podemos añadir

2024-07-17 10_26_31-Capitulo 2 Evitar obstaculos con mBot2.pdf.png

RESULTADO

El contenido de esta página es de

Módulo 4. Programación con mBot.

Evitar obstáculos II

El contenido de esta página es de

Acuérdate que para manejar el sensor de distancia, hay que instalar la extensión correspondiente. Ver https://libros.catedu.es/books/cyberpi-y-mbot2/page/como-usar-mbot2-en-mblock

Ahora, en vez de elegir al azar como Evitar obstáculos I qué dirección a girar, en este caso vamos a realizar un proyecto en el cual nuestro mBot2 tiene que detectar un objeto cuando esté a menos de 10 cm. En este momento se tiene que para y comprobar la distancia que hay a su derecha y la distancia que hay a su izquierda, siempre tendrá que ir por la dirección donde el obstáculo está más lejos. 
2024-07-17 10_47_52-Detectar obstáculos y girar donde la distancia a un objeto sea mayor.pdf.png

2024-07-17 10_48_48-Detectar obstáculos y girar donde la distancia a un objeto sea mayor.pdf.png

RESULTADO

 

 

Módulo 4. Programación con mBot.

Sigue líneas I

Mi primer siguelíneas

El sigue líneas más sencillo es este, recomendamos empezar por aquí

2025-04-07 11_36_55-mBlock v5.4.3.png

Como se puede ver, hace movimientos hacia atrás sobre todo en las curvas cerradas pero ¡¡no se escapa!!

El sígue líneas de "Programas de ejemplo"

Acuérdate que para manejar el sensor de distancia, hay que instalar la extensión correspondiente. Ver https://libros.catedu.es/books/cyberpi-y-mbot2/page/como-usar-mbot2-en-mblock

El programa lo puedes encontrar en los "Programas de ejemplo":

2025-04-01 20_48_42-mBlock v5.4.3.png

El contenido a partir de aquí es esta página es de

El primer script es para parar el robot con el botón A

2024-07-17 10_31_08-Seguir línea con mBot2.pdf.png

2024-07-17 10_33_00-Seguir línea con mBot2.pdf.png

(optativo) Esta función para que nos muestre el color de la línea

2024-07-17 10_34_55-Seguir línea con mBot2.pdf.png

RESULTADO

Módulo 4. Programación con mBot.

Sigue líneas II

El contenido de esta página es de

Acuérdate que para manejar el sensor de distancia, hay que instalar la extensión correspondiente. Ver https://libros.catedu.es/books/cyberpi-y-mbot2/page/como-usar-mbot2-en-mblock

En este programa sigue líneas avanzado vamos a incorporar que nos vaya diciendo los colores que va detectando

El script que proponemos es el siguiente :

2024-07-17 10_38_44-Seguir la línea de color con mBot2.pdf.png

2024-07-17 10_39_05-Seguir la línea de color con mBot2.pdf.png

Y el algoritmo principal

2024-07-17 10_39_48-Seguir la línea de color con mBot2.pdf.png

Y además (optativo) igual que el sigue líneas I :

2024-07-17 10_43_45-Seguir la línea de color con mBot2.pdf.png

RESULTADO

Módulo 4. Programación con mBot.

Control remoto

El contenido de esta página es de Ejemplos mBot2 Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor

PARA REALIZAR ESTE PROGRAMA SE NECESITAN DOS CYBERPIS QUE VAN A ESTAR CONECTADOS EN LA MISMA LAN

Ahora un Cyberpi con su joystick controlará los movimientos del otro Cyberpi montado en su mBot2
2024-07-17 10_52_26-Control remoto.pdf.png
Ejemplos mBot2 Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor

Para este proyecto hemos de cargar dos CyberPy.

2024-07-17 10_53_02-Control remoto.pdf.png

CODIGO EN EL CYBERPI RECEPTOR MONTADO CON MBOT2

https://planet.mblock.cc/project/projectshare/7552114

Hay que poner los dos Cyberpis en la misma Wifi (SSID y contraseña)

2024-07-17 10_53_25-Control remoto.pdf.png
Ejemplos mBot2 Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor

2024-07-17 10_55_55-Control remoto.pdf.png
Ejemplos mBot2 Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor

CODIGO EN EL CYBERPI QUE HARÁ DE CONTROL REMOTO

https://planet.mblock.cc/project/7552213

2024-07-17 10_56_57-Control remoto.pdf.png
Ejemplos mBot2 Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor

RESULTADO

El contenido de esta página es de

Módulo 4. Programación con mBot.

Más actividades

RETOS : HACER UN PROGRAMA QUE REALICE....                                         

RETO1 APARCAR

2024-07-17 10_47_29-mbot2-actividades.pdf.png
SOLUCIÓN pag 18 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

RETO 2 HACER UN CUADRADO

Los cuadrados naranjas son obstáculos.2024-07-17 13_04_10-mbot2-actividades.pdf.png
Solución en pag 53 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

RETO 3 BUSCANDO EL COLOR AZUL ...

Un grupo de mBot2 buscan el color azul pintado en el suelo. Si uno lo encuentra, informará a los demás y ganará el juego.
Solución en pag 90 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

RETO 4 BUSCANDO EL COLOR AZUL... PERO EN SOLITARIO

Hacer el juego anterior pero sólo teniendo un mbot2 
Solución en pag 9 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

Es parecido a la solución con Broadcast que vimos en LAN con cyberpi

RETO 5 EL NO VA MÁS ... UN CAMARERO

El robot camarero que vas a fabricar debe ser capaz de hacer una serie de cosas: • Desplazarse en línea recta • Detenerse en una zona roja (tu mesa), anotar un pedido y enviarlo a la cocina • Opción adicional: si se dispone de un segundo mBot2 o CyberPi, entonces mostrar los pedidos a la cocina (para que puedan empezar a preparar la comida) • Continuar desplazándose hasta que el mBot2 encuentre una superficie verde (la cocina) y se detenga para recoger la comida de la cocina • Opcional: si se dispone de un segundo mBot2 o CyberPi, entonces notificar se está entregando la comida



2024-07-18 10_06_34-mbot2-actividades (2).pdf.png

2024-07-18 10_03_24-mbot2-actividades (2).pdf.png

Pag 107 Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

¿QUE HACEN ESTOS PROGRAMAS? ....                                                                               


2024-07-17 10_50_36-mbot2-actividades.pdf.png
Pag 25 Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 10_51_31-mbot2-actividades.pdf.png
Pag 26 Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 10_52_12-mbot2-actividades.pdf.png
Pag 27 Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 12_57_59-mbot2-actividades.pdf.pngPag 28 Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 12_59_03-mbot2-actividades.pdf.png
Pag 29 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_00_09-mbot2-actividades.pdf.png
Pag 33 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_01_05-mbot2-actividades.pdf.png
Pag 41 deManual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_01_55-mbot2-actividades.pdf.pngPag 43 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_05_31-mbot2-actividades.pdf.pngPag 60 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_06_22-mbot2-actividades.pdf.png
Pag 60 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_07_02-mbot2-actividades.pdf.png
Pag 62 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_07_58-mbot2-actividades.pdf.png
Pag 63 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_09_29-mbot2-actividades.pdf.png

2024-07-17 13_09_17-.png
Pag 67-68 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-17 13_11_17-mbot2-actividades.pdf.pngY utilizar esta instrucción en la función principal

2024-07-17 13_11_27-mbot2-actividades.pdf.png

Pag 69 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-18 09_37_16-mbot2-actividades.pdf.png
Pag 82 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-18 09_39_11-mbot2-actividades.pdf.png
Pag 89 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

2024-07-18 09_51_21-mbot2-actividades (2).pdf.png
Pag 106 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

En el siguiente programa se usa la extensión TEACHABLE MACHINE, en ella se enseña al objeto que reconozca (INTELIGENCIA ARTIFICIAL) un mBot2, un block de notas, mira https://libros.catedu.es/books/cyberpi-y-mbot2/page/software-educable-maquina-educable-teachable-machine para saber cómo se utiliza esta extensión.
Una vez "aprendido" se pueden usar las instrucciones de "recognition result is... "

Tiene la pega que tienen que estar conectado por cable el mBot2 o usar un adaptador Bluetooth

2024-07-18 10_08_46-mbot2-actividades (1) - PDF-XChange Viewer.png
Pag 124 de Manual mBot2 https://www.robotix.es/documentos/mbot2-actividades.pdf contenidos e imágenes publicados con permiso de la empresa Robotix.

Módulo5 Cyberpi, mBot y Python

El software mBlock permite realizar la transición de la programación por bloques a lenguaje de texto Python. El proposito de este módulo de ampliación es ayudar al profesorado quiere iniciar a su alumnado en Python.

Módulo5 Cyberpi, mBot y Python

Python

Librería cyberpi

Los programas en python de cyberpi que vamos a realizar utilizan esta librería por lo tanto hay que cargarla previamente en nuestros programas.

import cyberpi

Tiene multitud de funciones, te aconsejamos ver un vistazo en esta documentación (en inglés) :

https://www.lbotics.at/images/mbot2/files/mBot2_API_cyberpi.pdf

Esta es una muy breve introducción al Python como recordatorio de algunas instrucciones si ya has utilizado este lenguaje.
Si es la primera vez, te recomendamos que visites nuestro curso PYTHON PARA TODOS Python for everybody por Charles R. Severance licencia CC-BY-NCSA que empieza desde cero.

Lenguajes, intérpretes y compiladores

Python es un lenguaje de alto nivel destinado a ser relativamente sencillo para que los humanos lean y escriban y para que los ordenadores lean y procesen. Otros lenguajes de alto nivel incluyen Java, C ++, PHP, Ruby, Basic, Perl, JavaScript y muchos más. El hardware real dentro de la Unidad Central de Procesamiento (CPU) no comprende ninguno de estos lenguajes de alto nivel.

La CPU entiende un idioma que llamamos lenguaje de máquina. El lenguaje de máquina es muy simple y francamente muy tedioso de escribir porque está representado en ceros y unos:

El lenguaje de máquina parece bastante simple en la superficie, dado que solo hay ceros y unos, pero su sintaxis es aún más compleja y mucho más compleja que Python. Muy pocos programadores escriben lenguaje de máquina. En su lugar, creamos varios traductores para permitir que los programadores escriban en lenguajes de alto nivel como Python o JavaScript y estos traductores convierten los programas al lenguaje de máquina para su ejecución real por parte de la CPU.

Estos traductores de lenguaje de programación se dividen en dos categorías generales: (1) intérpretes y (2) compiladores.

Un intérprete lee el código fuente del programa como está escrito por el programador, analiza el código fuente e interpreta las instrucciones sobre la marcha. Python es un intérprete y cuando ejecutamos Python de forma interactiva, podemos escribir una línea de Python (una oración) y Python la procesa de inmediato y está lista para que escribamos otra línea de Python.

    >>> x = 6
    >>> print(x)
    6
    >>> y = x * 7
    >>> print(y)
    42
    >>>

Está en la naturaleza de un intérprete poder tener una conversación interactiva como se muestra arriba. A un compilador debemos entregarle todo el programa en un archivo, y luego ejecuta un proceso para traducir el código fuente de alto nivel al lenguaje de máquina y luego el compilador coloca el lenguaje de máquina resultante en un archivo para su posterior ejecución.

Variables

Las variables son como cajas que puedes meter valores. Y los valores pueden ser de varios tipos :

Para crear una variable puedes usar cualquier palabra, x, y, z o Nombre_alumno ... pero algunas palabras no puedes usar, ver

Para visualizar variables puedes usar la instrucción print poniendo entre paréntesis el valor o variable que quieres visualizar.

Modifica los valores como quieras, es un intérprete, juega y dale al play para ver el resultado 

Como puedes ver se ha introducido un operador el + que realiza la suma del valor de x original (43) y se le incrementa una unidad resultando en la impresión un 44.

Cadenas

Cadenas son secuencias de caracteres, por ejemplo la palabra "banana"

2025-04-05 09_29_39-Editing Page 6 Cadenas _ Librería CATEDU.png
fuente  
'Python for Everybody' por Charles R. Severance

Se puede obtener su longitud con la función len, o obtener un carácter ...

Operadores

Este apartado de operadores es adaptado de Federico Coca Guia de Trabajo de Microbit CC-BY-SA

Los operadores aritméticos se utilizan para realizar operaciones matemáticas como sumas, restas, multiplicaciones, etc.

Operador Descripción Ejemplo
+ Suma o concatenación en textos 5+3=8, "Hola" + "Mundo" = "Hola Mundo
- Diferencia 6-3=3
* Multiplicación 3*3=9
/ División 6/2=3
// Parte entera de un cociente 10//3=3
% Resto de un cociente 10%3=1
** Potenciación 5**2=25

Los operadores de asignación se utilizan para asignar valores a variables.

Operador Descripción Ejemplo
= Asignación x=4, a = a + 1
+= Suma y asignación x+=1 equivale a x = x + 1
-= Diferencia y asignación x-=1 equivale a x = x - 1
*= Multiplicación y asignación x*=3 equivale a x = x * 3
/= División y asignación x/=3 equivale a x = x / 3
%= Asignación de restos x%=3 equivale a x = x % 3
**= Asignación de exponentes x**=3 equivale a x = x ** 3

Los operadores de comparación comparan dos valores/variables y devuelven un resultado booleano: Verdadero o Falso True o False.

Operador Descripción Ejemplo
== Igual a 2==3 retorna False
!= Distinto de 2!=3 retorna True
< Menor que 2<3 retorna True
> Mayor que 2>3 retorna False
<= Menor o igual que 2<=3 retorna True
>= Mayor o igual que 2>=3 retorna False

Los operadores lógicos se utilizan para comprobar si una expresión es Verdadera o Falsa. Se utilizan en la toma de decisiones.

Operador Descripción Ejemplo
and AND lógica a and b #True si a y b son ciertos
or OR lógica a or b #True si a o b son ciertos
not NOT lógica not a #True si el operador a es falso
in pertenencia Devuelve True si pertenece
no int no pertenencia Devuelve True si no pertenece
is identidad Devuelve True si son iguales
is not no identidad Devuelve True si no son inguales

Los operadores bit a bit o bitwise actúan sobre los operandos como si fueran cadenas de dígitos binarios. Operan bit a bit:

Operador Descripción Ejemplo
& AND bit a bit 5&6 # 101 & 110 = 110 = 4
| OR bit a bit 5 \| 6 # 101 \| 110 = 111 = 7
~ NOT bit a bit ~3 # ~011 = 100 = -4
^ XOR bit a bit 5^3 # 101^011 = 110 = 6
<< Desplazamiento izquierda 4<<1 # 100 << 1 = 1000 = 8
>> Desplazamiento derecha 4 >> 1 # 100 >> 1 = 010 = 2

Comentarios en Python
Una sola línea : Escribiendo el símbolo almohadilla (#) delante del comentario.
Multilínea: Escribiendo triple comillas dobles (“””) al principio y al final del comentario.

Entradas de teclado

Ya hemos visto salidas por pantalla con print, pero ahora con input puede leer variables del teclado. 
Fíjate que hay que poner las líneas x = float (x) e y = float(y) para convertirlos a números decimales, en caso contrario las interpreta string y no puede multiplicar en Resultado, pero en el siguiente ejemplo no es necesario en la variable cel (celsius) pues se multiplica por números decimales 32.0 5.0 y 9.0 

try y except son dos funciones que son un seguro para el programador por si el usuario en vez de teclear un número, mete un string o carácter

La sangría es importante en Python
La sangría se refiere a los espacios al comienzo de una línea de código. Mientras que en otros lenguajes de programación la sangría en el código es solo para facilitar la lectura, la sangría en Python es muy importante ya que se usa para indicar un bloque de código.

Condicionales

Las instrucciones if: else: son las que nos permiten realizar operaciones según las condiciones puestas. Ojo con la sangría

\n es un carácter especial que significa "Salto de página"

Bucles

Para verlo mejor vamos a ver estos ejemplos

Funciones

No vamos a entrar en detalle, pero observa el siguiente código

Para saber más de Python

CURSO PYTHON FOR EVERYBODY en español ver
Curso completo de Python 222pag pdf (*) Descargar
Curso completo de Python 422pag (*) Descargar
Curso completo de Python desde 0 (*) Ver
Curso de Python desde 0 (*) Ver
Manual de referencia Python (*) Ver
Programación en Python (*) Ver
Trabajando con ficheros en Python (*) Ver
Programación orientada a objeto en Python (*) Ver
un manual para aquellos usuarios con previos conocimientos de Python, como la programación modular y orientada a objetos.
También algunos conocimientos de las librerías tkinter  (Para crear interfaces gráficos y SQlite3 (para gestionar bases de datos). (*)
Descargar

(*) Agradecimientos a Pere Manel http://peremanelv.com

Módulo5 Cyberpi, mBot y Python

Hola Mundo

Nuestro primer programa es muy sencillo: Que por el display del Cyberpi salga la típica frase del primer programa principiante

A la hora de utilizar las funciones de la librería cyberpi, tienes dos opciones:

Mi primer programa Hola Mundo (método sin omitir)

Entramos en mBlock, y en la pestaña de Python tecleamos este programa:

import cyberpi
cyberpi.console.print("Hola Mundo")

Previamente tienes que tener el programa mBlock instalado y cargado el dispositivo mBot2 (aunque para estos ejemplos con Cyberpi también vale) , recuerda lo visto en https://libros.catedu.es/books/cyberpi-y-mbot2/page/mblock5 y en https://libros.catedu.es/books/cyberpi-y-mbot2/page/como-usar-mbot2-en-mblock

  1. Entramos en mblock con el dispositivo cargado mBot2 y vamos a la pesaña Python
  2. Pegamos el programa
  3. Vamos a conectar mBot2 (debemos de tenerlo conectado con un cable USB tal y como vimos en https://libros.catedu.es/books/cyberpi-y-mbot2/page/mi-primer-programa-hola-mundo
  4. Damos a la opción Cargar
  5. Subir código

2025-04-29 12_46_26-mBlock v5.4.3.png

Y el resultado es 

2025-04-29 12_50_34-WhatsApp.png

Mi primer programa Hola Mundo (método omitiendo)

Repite los pasos anteriores pero con este código

from cyberpi import *
console.print("Hola Mundo")

¿Ves la diferencia de código?

Módulo5 Cyberpi, mBot y Python

Audio

Un tono

Un programa sencillo de dar un tono puede ser el siguiente

import cyberpi

cyberpi.audio.set_vol(100)
cyberpi.audio.play_tone(700,1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Instrumentos

También podemos reproducir instrumentos

import cyberpi

cyberpi.audio.set_vol(100)
# str type eg. snare,bass-drum,side-stick,crash-cymbal,open-hi-hat,close-hi-hat,tambourine,hand-clap,claves 
# float beat > 0 (second)

cyberpi.audio.play_drum("snare",1)
cyberpi.audio.play_drum("snare",1)
cyberpi.audio.play_drum("side-stick",1)
cyberpi.audio.play_drum("tambourine",1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Efectos sonoros

También este código nos selecciona varios efectos sonoros y los reproduce

import cyberpi

sound_effect = ["hello","hi","bye","yeah","wow","laugh","hum","sad","sigh","annoyed","angry","surprised","yummy","curious","embarrassed","ready","sprint","sleepy","meow","start","switch","beeps","buzzing","explosion","jump","laser","level-up","low-energy","prompt-tone","right","wrong","ring","score","wake","warning","metal-clash","shot","glass-clink","inflator","running water","clockwork","click","current","switch","wood-hit","iron","drop","bubble","wave","magic","spitfire","heartbeat","load"]

cyberpi.display.show_label('UP  :GO   UP\nDOWN:GO   DOWN\nMID :PLAY EFFECT', 16, 0, 0, 0)
cyberpi.display.show_label('SELECT:\nName:', 16, 0, 60, 1)

selected = 0
min_effect = 0
max_effect = len(sound_effect) - 1

while True:
    if cyberpi.controller.is_press('up'):
        if selected < max_effect:
            selected += 1
        else:
            selected = min_effect
    elif cyberpi.controller.is_press('down'):
        if selected > min_effect:
            selected -= 1
        else:
            selected = max_effect
    elif cyberpi.controller.is_press('middle'):
        cyberpi.led.on(255,0,0,id="all")
        cyberpi.audio.play_until(sound_effect[selected])
        cyberpi.led.on(0,0,0,id="all")

    cyberpi.display.show_label('{}'.format(selected), 16, 60, 60, 2)
    cyberpi.display.show_label('{}'.format(sound_effect[selected]), 12, 52, 80, 3)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Grabadora

O hacernos una grabadora de bolsillo

import cyberpi
from time import sleep

cyberpi.audio.set_vol(100)

cyberpi.display.show_label("A:Start Recording\nB:Play Recording",12,0,0,0)

while True:
    cyberpi.display.show_label("Waiting.",16,0,40,1)
    if cyberpi.controller.is_press('a'):
        cyberpi.led.on(0,255,0,id="all")
        cyberpi.display.show_label("Listening..",16,0,40,1)
        cyberpi.audio.record()
        sleep(5)
        cyberpi.display.show_label("Finished..",16,0,40,1)
        cyberpi.audio.stop_record()

    elif cyberpi.controller.is_press('b'):
        cyberpi.led.on(0,0,255,id="all")
        cyberpi.display.show_label("Playing..",16,0,40,1)
        cyberpi.audio.play_record_until()
        cyberpi.display.show_label("Finished..",16,0,40,1)

    cyberpi.display.show_label("Waiting...",16,0,40,1)
    cyberpi.led.on(0,0,0,id="all")
    

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Módulo5 Cyberpi, mBot y Python

LED

Colores

Podemos fijar los colores de los leds de Cyberpi con este código

import cyberpi

#               R  G B Position
cyberpi.led.on(255,0,0,id=1)
cyberpi.led.on(255,255,0,id=2)
cyberpi.led.on(255,255,255,id=3)
cyberpi.led.on(0,255,0,id=4)
cyberpi.led.on(0,255,255,id=5)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

2025-04-29 15_08_28-WhatsApp.png

Intermitencia

Podemos encender y apagar a voluntad

import cyberpi
from time import sleep

while True:
    #               R  G B Position
    cyberpi.led.on(255,0,0,id=1)
    cyberpi.led.on(255,255,0,id=2)
    cyberpi.led.on(255,255,255,id=3)
    cyberpi.led.on(0,255,0,id=4)
    cyberpi.led.on(0,255,255,id=5)
    sleep(1)
    #               Position 
    cyberpi.led.off(id='all')
    sleep(1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Arco Iris
import cyberpi

"""
Name List (str)

rainbow , spoondrift , meteor_blue , meteor_green ,
flash_red , flash_orange , firefly

"""

cyberpi.led.play(name = "rainbow")

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT


Movimiento leds
import cyberpi
from time import sleep

cyberpi.led.on(255,0,0,id=1)
while True:
    # shift all the colors 1 step to the right.
    # (If it is negative, it will be left shifting.)
    cyberpi.led.move(1)
    sleep(1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT



Módulo5 Cyberpi, mBot y Python

Entradas

Botones A y B

Si aprieto el botón A pues enciendo leds, si aprieto B los apago

import cyberpi

"""
Button Name List (str)

a , b 
up, down, left , right , middle
any_direction , any_button , any

"""
while True:
                             # button name
    if cyberpi.controller.is_press('a'):
        cyberpi.led.on(255,0,0,id='all')
        cyberpi.console.println("LED ON!")
    if cyberpi.controller.is_press('b'):
        cyberpi.led.on(0,0,0,id='all')
        cyberpi.console.println("LED OFF!")

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Intensidad de la luz

La función show_label la veremos después, tiene el formato cyberpi.display.show_label(texto, tamaño, color, x, y)

import cyberpi

cyberpi.display.show_label("LUZ=",16,0,0,0)

while True:
    CantidadLuz = cyberpi.get_brightness()
    cyberpi.display.show_label(CantidadLuz,16,0,60,1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Cantidad de sonido
import cyberpi

cyberpi.display.show_label("Loudness:",16,10,10,index=1)

while True:
    loudness_value = cyberpi.get_loudness()
    cyberpi.display.show_label(loudness_value,16,80,10,index=2)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Nivel de batería
import cyberpi

cyberpi.display.show_label("Battery Level",16,10,0,index=0)
cyberpi.display.show_label("Builtin:",16,10,20,index=1)
cyberpi.display.show_label("Extra:",16,10,40,index=2)

while True:
    builtin_batt = cyberpi.get_battery()
    extra_batt = cyberpi.get_extra_battery()
    
    cyberpi.display.show_label(builtin_batt,16,80,20,index=3)
    cyberpi.display.show_label(extra_batt,16,80,40,index=4)

Módulo5 Cyberpi, mBot y Python

Display

Contador
import cyberpi

cyberpi.display.show_label("Counter Program",16,0,0,0)
counter = 0

while True:
    
    if counter < 100:
        counter = counter + 1
    else:
        counter = 0
    cyberpi.display.set_brush(counter+100, 0, 0)
    cyberpi.display.show_label(counter,32,48,64,1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Limpiar y apagar la pantalla
import cyberpi

cyberpi.display.on()

cyberpi.display.show_label("A:Clear the Sceen",12,0,0,0)
cyberpi.display.show_label("B:Close the screen",12,0,24,1)

while True:
    if cyberpi.controller.is_press('a'):
        cyberpi.display.clear()
    elif cyberpi.controller.is_press('b'):
        cyberpi.display.off()

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Linechart

El display permite visualizar gráficas como por ejemplo este código

import cyberpi

value = 0

while True:
    if value < 100:
        value = value + 1
    else:
        value = 0
    cyberpi.linechart.add(value)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Barchart
import cyberpi

value = 0

while True:
    if value < 100:
        value = value + 0.1
    else:
        value = 0
    cyberpi.barchart.add(value)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Table
import cyberpi

cyberpi.display.set_brush(255,0,0)
cyberpi.table.add(1,1,"1,1")
cyberpi.table.add(2,1,"2,1")
cyberpi.table.add(3,1,"3,1")
cyberpi.table.add(4,1,"4,1")

cyberpi.display.set_brush(0,255,0)
cyberpi.table.add(1,2,"1,2")
cyberpi.table.add(2,2,"2,2")
cyberpi.table.add(3,2,"3,2")
cyberpi.table.add(4,2,"4,2")

cyberpi.display.set_brush(0,0,255)
cyberpi.table.add(1,3,"1,3")
cyberpi.table.add(2,3,"2,3")
cyberpi.table.add(3,3,"3,3")
cyberpi.table.add(4,3,"4,4")

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

2025-04-29 20_15_40-WhatsApp.png

Drawpixel
import cyberpi
import time


pixel_list = ["music","picture","video","clock","play","pause","next","prev","sound","temperature","light","motion","home","gear","list","right","wrong","shut_down","refresh","trash_can","download","sunny","cloudy","rain","snow","train","rocket","car","truck","droplet","distance","fire","magnetic","gas","vision","color","overcast","foggy","sandstorm"]

my_sprite = cyberpi.sprite()
for p in pixel_list:
   
    my_sprite.draw_pixel(p)
    my_sprite.set_size(200)
    time.sleep(1)
    cyberpi.screen.render()

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

 

QR
import cyberpi

my_sprite = cyberpi.sprite()
my_sprite.draw_QR("https://catedu.es/")
my_sprite.set_size(400)
cyberpi.screen.render()

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

2025-04-29 20_26_54-WhatsApp.png

¡¡ y funciona !!!

 

Módulo5 Cyberpi, mBot y Python

Sensores de movimiento

Sensor agitación
import cyberpi

cyberpi.display.show_label("Shake Value\nA:Start",16,0,0,0)

while not cyberpi.controller.is_press('a'):
    pass

while True:
    shake_value = cyberpi.get_shakeval()
    cyberpi.display.show_label("Shake Value",16,20,0,0)
    cyberpi.display.show_label("{}%".format(shake_value),24,40,50,1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

 

Inclinación y rotación

El siguiente programa enseña los dos ángulos de inclinación en eje X e Y y rotación en eje Z

import cyberpi

cyberpi.display.show_label("YAW PITCH ROLL\nA:Start",16,0,0,0)

while not cyberpi.controller.is_press('a'):
    pass
while True:
    pitch = cyberpi.get_pitch()
    roll = cyberpi.get_roll()
    yaw = cyberpi.get_yaw()

    cyberpi.display.show_label("Yaw\n\nPitch\n\nRoll\n\n",16,0,0,0)
    cyberpi.display.show_label("{}\n\n{}\n\n{}".format(pitch,roll,yaw),16,50,0,1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

El resultado es muy parecido con la función de gyro

import cyberpi

cyberpi.reset_rotation(axis='all')
cyberpi.display.show_label("Gyroscope\nA:Start",16,0,0,0)

while not cyberpi.controller.is_press('a'):
    pass
    
while True:
    x_gyro = cyberpi.get_gyro('x')
    y_gyro = cyberpi.get_gyro('y')
    z_gyro = cyberpi.get_gyro('z')

    cyberpi.display.show_label("X\n\nY\n\nZ\n\n",16,0,0,0)
    cyberpi.display.show_label("{}\n\n{}\n\n{}".format(x_gyro,y_gyro,z_gyro),16,50,0,1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Y rotation

import cyberpi

cyberpi.reset_rotation(axis='all')
cyberpi.display.show_label("Rotation\nA:Start",16,0,0,0)

while not cyberpi.controller.is_press('a'):
    pass
    
while True:
    x_rotate = cyberpi.get_rotation('x')
    y_rotate = cyberpi.get_rotation('y')
    z_rotate = cyberpi.get_rotation('z')

    cyberpi.display.show_label("X\n\nY\n\nZ\n\n",16,0,0,0)
    cyberpi.display.show_label("{}\n\n{}\n\n{}".format(x_rotate,y_rotate,z_rotate),16,50,0,1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

 

Módulo5 Cyberpi, mBot y Python

Sensor de sonidos

Medición de distancia 
import cyberpi,mbuild

cyberpi.display.show_label("Range:", 16, 0, 0, index = 0)

while True:
    range = mbuild.ultrasonic2.get(index = 1)
    cyberpi.display.show_label(range, 16, 50, 0, index = 1)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

Podemos experimentar que es bastante preciso, más que en mBot1

2025-04-30 08_18_12-WhatsApp.png

Este código haría lo mismo pero alarmando que hay obstáculo o no

import cyberpi,mbuild

cyberpi.display.show_label("Range:", 16, 20, 0, index = 0)

while True:
    range = mbuild.ultrasonic2.get(index = 1)
    cyberpi.display.show_label(range, 16, 70, 0, index = 1)
    
    if range < 10:
        cyberpi.led.on(255,0,0,id="all")
        cyberpi.display.show_label("Obstacle!", 16, 0, 20, index = 2)
    else:
        cyberpi.led.on(0,255,0,id="all")
        cyberpi.display.show_label("No Obstacle", 16, 0, 20, index = 2)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT

 

Módulo5 Cyberpi, mBot y Python

Evita obstáculos

Basándonos en el código que hemos visto de https://github.com/PerfecXX/Python-mBot2/blob/main/example/mbuild/01-Ultrasonic%20Sensor2/02-Obstacle%20Detection.py le añadimos las instrucciones de

Previamente una rutina de no empezar si no se aprieta el botón A

import cyberpi,mbuild, mbot2

cyberpi.display.show_label("PULSA A PARA COMENZAR",16,0,20,1)
while not cyberpi.controller.is_press('a'):
        pass

while True:
    range = mbuild.ultrasonic2.get(index = 1)
    cyberpi.display.show_label(range, 16, 70, 0, index = 1)
    
    if range < 40:
        cyberpi.led.on(255,0,0,id="all")
        cyberpi.display.show_label("Obstacle!", 16, 0, 20, index = 2)
        cyberpi.display.show_label("Girando un segundo",12,0,60,2)
        mbot2.turn_left(60,1)
    else:
        cyberpi.led.on(0,255,0,id="all")
        cyberpi.display.show_label("No Obstacle", 16, 0, 20, index = 2)
        mbot2.drive_power(70, -70)
    

Hace un poco el "caballito"", a lo mejor habría que quitarle un poco la potencia en mbot2.drive_power(70, -70) pero mola 😁 :

Módulo5 Cyberpi, mBot y Python

Sensor de líneas

Probando la detección de líneas.
import cyberpi,mbuild

cyberpi.display.show_label("RGB PROBE STATE\nL2:\nL1:\nR1:\nR2:\n", 16, 0, 0, index = 0)

while True:
    l2_line_state = mbuild.quad_rgb_sensor.is_line("L2",1)
    l1_line_state = mbuild.quad_rgb_sensor.is_line("L1",1)
    r1_line_state = mbuild.quad_rgb_sensor.is_line("R1",1)
    r2_line_state = mbuild.quad_rgb_sensor.is_line("R2",1)

    cyberpi.display.show_label(l2_line_state, 16, 30, 18, index = 1)
    cyberpi.display.show_label(l1_line_state, 16, 30, 36, index = 2)
    cyberpi.display.show_label(r1_line_state, 16, 30, 54, index = 3)
    cyberpi.display.show_label(r2_line_state, 16, 30, 72, index = 4)

Extraído de https://github.com/PerfecXX/Python-mBot2/blob/main/README.md licencia MIT
Como puedes ver va detectando las líneas en los 4 sensores que tiene :

Más probatinas...

En https://github.com/PerfecXX/Python-mBot2/tree/main/example/mbuild/02-Quad%20RGB%20Sensor puedes descargarte más scripts que visualizan como el sensor puede detectar el color y el brillo. Nosotros aquí sólo te hemos enseñado el último el de detectar la línea.

2025-04-30 08_32_43-Python-mBot2_example_mbuild_02-Quad RGB Sensor at main · PerfecXX_Python-mBot2 ·.png

 

Módulo5 Cyberpi, mBot y Python

Sigue líneas

En este caso sólo vamos a utilizar de los 4 sensores quad que tiene los 2 de en medio con la instrucción

mbuild.quad_rgb_sensor.get_line_sta("middle", 1)

El valor que devuelve esta instrucción puede ser  :

El código es

import event, time, cyberpi, mbuild, mbot2

cyberpi.display.show_label("PULSA A PARA COMENZAR",16,0,20,1)
while not cyberpi.controller.is_press('a'):
        pass

while True:
    if mbuild.quad_rgb_sensor.get_line_sta("middle", 1) == 0b00:
        mbot2.backward(50)

    if mbuild.quad_rgb_sensor.get_line_sta("middle", 1) == 0b11:
        mbot2.forward(50)

    if mbuild.quad_rgb_sensor.get_line_sta("middle", 1) == 0b01:
        mbot2.turn_right(50)

    if mbuild.quad_rgb_sensor.get_line_sta("middle", 1) == 0b10:
        mbot2.turn_left(50)

Fuente Javier Quintana

El resultado es 

Módulo 6 Cyberpi, mBot e IA

Gracias a su micrófono, altavoz y conectividad Wi-Fi, el docente puede diseñar actividades innovadoras que van más allá de la robótica clásica, introduciendo de forma sencilla conceptos de Inteligencia Artificial (IA), reconocimiento de voz y aprendizaje automático (Machine Learning)

Módulo 6 Cyberpi, mBot e IA

Cómo aprenden la máquinas

Te proponemos  una lectura sobre cómo aprenden la máquinas que no no es evaluable, pero que si creemos que deberías conocer en caso de que no hayas hecho la formación sobre IA. Este texto está extraído del curso " IA en el Diseño Curricular" del Itinerario de IA que se oferta en Aularagon

 

Aprender: una palabra común para procesos muy distintos

Hablar de aprendizaje parece, a primera vista, algo sencillo. Aprendemos desde que nacemos: a hablar, a caminar, a resolver problemas, a convivir con otros. En el aula, aprender significa comprender un contenido, practicarlo, equivocarse, corregir y, poco a poco, hacerlo propio. Cuando trasladamos esta palabra al ámbito de la Inteligencia Artificial, el término es el mismo, pero el proceso es muy distinto.

Cuando decimos que una máquina “aprende”, no lo hace porque entienda lo que está haciendo ni porque tenga una intención de mejorar. Aprende porque ajusta su comportamiento a partir de ejemplos, del mismo modo que un alumno mejora cuando recibe práctica y retroalimentación, aunque en el caso de la máquina todo ocurre a nivel numérico y estadístico. La IA no trabaja con ideas, trabaja con datos; no interpreta significados, detecta patrones.

Un ejemplo sencillo ayuda a aclararlo. Si un alumno aprende a reconocer tipos de texto leyendo muchos ejemplos y recibiendo correcciones del profesor, la máquina aprende de forma parecida: analiza miles de textos, compara sus predicciones con el resultado esperado y va ajustando sus respuestas. La diferencia es que el alumno comprende por qué algo es un texto narrativo o argumentativo, mientras que la máquina solo aprende qué combinaciones de palabras suelen aparecer en cada caso.

A partir de esta idea general, no todas las máquinas aprenden del mismo modo. Algunas lo hacen con ejemplos corregidos, otras explorando datos sin respuestas previas y otras aprendiendo a base de ensayo y error, según las consecuencias de sus acciones. Curiosamente, estas formas de aprendizaje tienen muchos paralelismos con la educación humana: aprendizaje guiado, aprendizaje por descubrimiento y aprendizaje por experiencia.

Comprender cómo aprenden las máquinas no solo nos permite usar mejor la Inteligencia Artificial, sino que también nos invita a reflexionar sobre cómo enseñamos y cómo aprenden nuestros alumnos y alumnas. Con esta base, podemos ahora describir los principales tipos de aprendizaje que utilizan los sistemas de IA y entender en qué contextos se aplica cada uno.

Tipos de aprendizaje

Cuando hablamos de aprendizaje en Inteligencia Artificial conviene detenerse un momento y ajustar expectativas, especialmente en el ámbito educativo. Las máquinas no aprenden como aprendemos las personas. No sienten curiosidad, no tienen intención de mejorar ni conciencia de lo que hacen. Y, sin embargo, aprenden.

En IA, aprender significa algo muy concreto: ajustar un modelo matemático a partir de datos para que, con el tiempo, cometa menos errores en una tarea concreta. No hay comprensión del contenido, sino detección de regularidades numéricas. Donde una persona entiende un concepto, una máquina identifica patrones estadísticos. Esta diferencia es esencial para comprender tanto el potencial como los límites de la IA en educación.

El aprendizaje automático como núcleo de la IA moderna

El corazón de la Inteligencia Artificial actual es el aprendizaje automático o Machine Learning (ML). A diferencia de la programación clásica —en la que el ser humano escribe reglas explícitas—, en el aprendizaje automático no se le indica a la máquina cómo resolver el problema, sino que se le muestran ejemplos para que descubra por sí misma qué funciona mejor.

Un paralelismo muy útil para el profesorado es el siguiente: programar un sistema tradicional se parece a dar una receta paso a paso; entrenar un sistema de IA se parece más a poner muchos ejemplos corregidos y dejar que el sistema extraiga conclusiones. El resultado suele ser más flexible y potente, aunque también más difícil de explicar.

A partir de esta idea general, podemos distinguir varios tipos de aprendizaje, según cómo se presentan los datos y qué tipo de información recibe el sistema durante su entrenamiento.

Aprendizaje supervisado: aprender con corrección

El aprendizaje supervisado es probablemente el tipo de aprendizaje automático que resulta más fácil de entender para un profesor, porque su lógica se parece bastante a la forma tradicional en que enseñamos en el aula. En este enfoque, el sistema aprende a partir de ejemplos en los que ya conocemos la respuesta correcta. Dicho de otra manera, el modelo recibe datos de entrada junto con la solución esperada, y a partir de muchos ejemplos aprende la relación entre ambos para poder hacer predicciones sobre casos nuevos.

Podemos imaginarlo como un proceso muy parecido al de aprender con ejercicios resueltos o corregidos. El sistema analiza muchos ejemplos y, cuando comete un error, ajusta sus parámetros internos para mejorar la próxima vez. Con el tiempo, ese proceso le permite detectar patrones en los datos y aplicar lo aprendido a situaciones que no había visto antes. En términos técnicos, el objetivo es que el modelo aprenda la relación entre unas variables de entrada y una salida conocida, de manera que pueda predecir esa salida en datos nuevos.

Dentro del aprendizaje supervisado suelen distinguirse dos grandes tipos de tareas. La primera es la clasificación, que consiste en asignar una categoría a un elemento. Por ejemplo, decidir si un correo es spam o no, o clasificar una imagen como perro o gato. La segunda es la regresión, que se utiliza cuando el objetivo es predecir un valor numérico continuo, como estimar la temperatura, el precio de una vivienda o las ventas futuras de un producto.

Desde el punto de vista educativo, este tipo de aprendizaje tiene aplicaciones cada vez más interesantes. En investigación educativa se utilizan algoritmos de aprendizaje supervisado para analizar datos académicos y predecir el rendimiento de los estudiantes, lo que permite detectar con antelación posibles dificultades o riesgo de abandono escolar. También se emplea en sistemas de evaluación automática, en plataformas de aprendizaje adaptativo o en herramientas que analizan grandes conjuntos de datos educativos para comprender mejor cómo progresa el alumnado.

La principal ventaja del aprendizaje supervisado es su precisión y capacidad predictiva, especialmente cuando se dispone de buenos datos. Sin embargo, su mayor debilidad es precisamente esa dependencia de los datos. El modelo solo puede aprender a partir de los ejemplos que recibe. Si los datos están mal etiquetados, contienen errores o reflejan sesgos, el sistema aprenderá esos mismos problemas y los reproducirá en sus predicciones.

Para el profesorado de educación secundaria, comprender esta idea es especialmente útil porque permite explicar al alumnado uno de los principios fundamentales de la inteligencia artificial actual: las máquinas no aprenden por comprensión, sino por comparación de ejemplos. En cierto sentido, el aprendizaje supervisado se parece mucho a un estudiante que practica con muchos ejercicios resueltos hasta que empieza a reconocer patrones y a resolver problemas nuevos por sí mismo.

https://www.ceupe.com/images/easyblog_articles/3266/aprendizaje-supervisado-ejemplo.png
Esquema de aprendizaje supervisado en el que se presentan ejemplos categorizados o etiquetados
Aprendizaje no supervisado: descubrir sin que nadie explique

El aprendizaje no supervisado es un tipo de aprendizaje automático que funciona de una forma muy distinta al aprendizaje supervisado. En este caso, el sistema no recibe ejemplos con la respuesta correcta ni etiquetas que indiquen qué debe aprender. En lugar de eso, el algoritmo analiza grandes cantidades de datos sin clasificar e intenta descubrir por sí mismo patrones, estructuras o relaciones internas dentro de esa información.

Dicho de una manera sencilla, la máquina observa los datos y busca similitudes entre ellos. Si encuentra elementos que se parecen entre sí, los agrupa automáticamente en conjuntos o clusters. Este proceso se conoce como agrupamiento o clustering y es una de las técnicas más comunes del aprendizaje no supervisado. La idea es que los datos que pertenecen a un mismo grupo compartan características similares, mientras que los que pertenecen a grupos distintos sean más diferentes entre sí.

Para un profesor de educación secundaria, puede resultar útil imaginar este proceso como cuando un docente observa una clase durante varias semanas y empieza a identificar patrones en el comportamiento o en la forma de trabajar de los estudiantes. Sin necesidad de que nadie lo indique explícitamente, puede detectar grupos de alumnado que tienen hábitos de estudio similares, ritmos de aprendizaje parecidos o formas de participación semejantes. El aprendizaje no supervisado funciona de manera parecida: el sistema observa los datos y descubre regularidades que no estaban previamente definidas.

En el ámbito educativo, este tipo de aprendizaje no suele utilizarse tanto para calificar o evaluar directamente al alumnado, sino para comprender mejor fenómenos complejos dentro de los datos educativos. Por ejemplo, puede servir para identificar perfiles de estudiantes con comportamientos similares en una plataforma digital de aprendizaje, detectar patrones de uso de recursos educativos o descubrir relaciones entre variables académicas que no se habían considerado previamente.

Sin embargo, hay una idea fundamental que conviene subrayar desde una perspectiva pedagógica. Aunque el algoritmo pueda encontrar agrupaciones o patrones en los datos, no entiende el significado educativo de esos resultados. El sistema puede detectar que ciertos estudiantes presentan comportamientos parecidos, pero no puede interpretar por qué ocurre eso ni qué implicaciones pedagógicas tiene. Esa interpretación siempre corresponde al profesorado.

Por esta razón, el aprendizaje no supervisado no sustituye el papel del docente. Más bien funciona como una herramienta que puede ofrecer nuevas perspectivas sobre grandes volúmenes de datos. En lugar de reemplazar la mirada pedagógica del profesor, amplía su capacidad para analizar información compleja y detectar patrones que de otro modo podrían pasar desapercibidos. En última instancia, la máquina puede identificar estructuras en los datos, pero el sentido educativo de esas estructuras lo aporta siempre la interpretación humana.

 


https://uk.mathworks.com/discovery/unsupervised-learning/_jcr_content/thumbnail.adapt.1200.medium.png/1730872445777.png
Esquema aprendizaje no supervisado en el que se forman agrupaciones de datos sin etiquetar

https://codideep.com/img/blogpost/imagenportada/202506050000001.png
 
Aprendizaje por refuerzo

El aprendizaje por refuerzo es un tipo de aprendizaje automático que se basa en una idea muy sencilla y bastante intuitiva: aprender actuando y observando las consecuencias. En lugar de recibir ejemplos con la respuesta correcta —como ocurre en el aprendizaje supervisado— el sistema interactúa con un entorno, toma decisiones y recibe una señal que le indica si esa acción ha sido buena o mala. Esa señal suele llamarse recompensa o penalización, y el objetivo del sistema es aprender a actuar de manera que, con el tiempo, consiga la mayor recompensa posible.

Podemos imaginar este proceso de forma parecida a cómo aprenden muchas personas o animales: probando cosas, observando el resultado y ajustando su comportamiento. Si una acción produce un resultado positivo, el sistema tenderá a repetirla; si produce un resultado negativo, intentará evitarla en el futuro. Con el tiempo, mediante miles o millones de intentos, el modelo aprende qué decisiones son más adecuadas en cada situación.

En este tipo de aprendizaje suelen aparecer tres elementos básicos. Por un lado está el agente, que es el sistema que toma decisiones. Luego está el entorno, que es el mundo o situación donde actúa el agente. Y finalmente está la recompensa, que es la señal que indica si la acción tomada ha sido favorable o no. El agente va probando distintas acciones y aprende gradualmente qué estrategias le permiten maximizar la recompensa a largo plazo.

Uno de los ejemplos más famosos de aprendizaje por refuerzo es AlphaGo, el sistema desarrollado por DeepMind para jugar al juego de mesa Go. Este programa comenzó aprendiendo a partir de partidas humanas, pero después siguió mejorando jugando millones de partidas contra sí mismo. En ese proceso fue ajustando su comportamiento en función de si ganaba o perdía, lo que le permitió descubrir estrategias nuevas que incluso sorprendieron a jugadores profesionales.

Este ejemplo es interesante porque muestra que el aprendizaje por refuerzo no se limita a imitar comportamientos existentes. Cuando el sistema tiene libertad para explorar muchas posibilidades, puede encontrar soluciones eficaces que los humanos no habían considerado.

En el ámbito educativo, este enfoque resulta especialmente interesante cuando se trabaja con entornos interactivos o simulaciones. Por ejemplo, en simuladores de aprendizaje, videojuegos educativos o laboratorios virtuales, un agente puede aprender progresivamente cómo actuar dentro del entorno. También se investiga su uso en sistemas educativos inteligentes que aprenden cuándo intervenir para ayudar al estudiante y cuándo dejar que explore por sí mismo.

En definitiva, el aprendizaje por refuerzo introduce una idea muy poderosa dentro del Machine Learning: en lugar de aprender solo a partir de ejemplos, los sistemas pueden aprender actuando, experimentando y ajustando su comportamiento en función de las consecuencias. Esto abre la puerta a aplicaciones muy interesantes en ámbitos como la robótica, los videojuegos, la optimización de procesos y también en entornos educativos basados en simulación y experimentación.

El resultado: los modelos

Cuando entrenamos un sistema de Machine Learning, el objetivo final es construir un modelo. Ese modelo es, en esencia, una función matemática o estadística que ha aprendido a relacionar ciertos datos de entrada con un resultado. Una vez entrenado, ese modelo puede utilizar lo aprendido para analizar datos nuevos y producir una respuesta. Esa respuesta suele tomar dos formas principales: clasificar algo en una categoría o predecir un valor.

En el primer caso hablamos de modelos de clasificación. Su objetivo es asignar un elemento a una categoría concreta. El modelo analiza las características de un dato y decide a qué grupo pertenece. Este tipo de modelos se utiliza, por ejemplo, para determinar si un correo es spam o no, para identificar si una imagen contiene un gato o un perro, o para clasificar opiniones en positivas o negativas. En este tipo de problemas el resultado no es un número continuo, sino una etiqueta o clase previamente definida.

En el segundo caso hablamos de modelos de predicción o regresión. Aquí el objetivo no es asignar una categoría, sino estimar un valor numérico. El modelo intenta aprender la relación entre distintas variables y producir una predicción. Por ejemplo, puede estimar el precio de una vivienda a partir de su tamaño y ubicación, predecir la temperatura del día siguiente o calcular cuántos productos se venderán la próxima semana. En estos casos el resultado es una cantidad continua, no una categoría.

Ambos tipos de modelos se entrenan normalmente con datos históricos. El sistema analiza muchos ejemplos del pasado, detecta patrones y aprende relaciones entre variables. Una vez finalizado el entrenamiento, ese conocimiento se utiliza para analizar situaciones nuevas. Por ejemplo, si un modelo ha aprendido cómo se comportan ciertos datos financieros, podrá estimar tendencias futuras; si ha aprendido a distinguir imágenes de distintos objetos, podrá identificar nuevas imágenes que nunca había visto.

En la práctica existen muchos algoritmos diferentes que permiten construir modelos de Machine Learning, como los árboles de decisión, las regresiones estadísticas o los métodos de vecinos más cercanos. Sin embargo, en las últimas décadas ha ganado un protagonismo especial un tipo concreto de modelos: las redes neuronales profundas, que constituyen el núcleo del Deep Learning.

https://codificandobits.com/media/red-neuronal-profunda-1.png

Esquema de funcionamiento de una red neuronal profunda, formada por muchas capas que procesan cada aspecto de la imagen o de la información con la que se entrena

El Deep Learning es un subcampo del Machine Learning que utiliza redes neuronales con muchas capas capaces de aprender representaciones cada vez más complejas de los datos. Estas redes permiten detectar patrones muy sofisticados en información difícil de describir mediante reglas simples, como imágenes, sonido, vídeo o lenguaje natural. Gracias a este enfoque, los sistemas pueden aprender directamente a partir de grandes volúmenes de datos sin necesidad de programar manualmente las características que deben analizar.

Este desarrollo de redes profundas ha sido uno de los factores clave que ha impulsado los avances recientes de la inteligencia artificial. Dentro de este contexto apareció una arquitectura especialmente influyente: los transformers, introducidos en 2017 en el artículo científico Attention Is All You Need. Esta arquitectura se basa en mecanismos de atención que permiten al modelo analizar relaciones entre distintas partes de un texto o de una secuencia de datos de manera muy eficiente.

Los transformers han supuesto un cambio importante porque permiten entrenar modelos mucho más grandes y manejar contextos más amplios que las arquitecturas anteriores. Gracias a ello se han convertido en la base tecnológica de muchos sistemas actuales de inteligencia artificial, especialmente de los modelos de lenguaje de gran tamaño (LLM) y de gran parte de las aplicaciones de IA generativa que hoy conocemos, como los asistentes conversacionales, los generadores de texto o los sistemas que crean imágenes y otros contenidos.

En definitiva, aunque el Machine Learning incluye muchos algoritmos diferentes, el desarrollo del Deep Learning y de las arquitecturas basadas en transformers ha sido el elemento que ha permitido dar el salto hacia los sistemas actuales capaces de generar texto, analizar lenguaje natural o crear contenido digital de forma cada vez más sofisticada.

Desde una perspectiva educativa, lo interesante es entender que estos modelos no “piensan” ni comprenden los fenómenos que analizan. Lo que hacen es aprender relaciones estadísticas entre datos. Si esas relaciones son suficientemente claras y los datos son de calidad, el modelo puede llegar a producir resultados muy útiles. Pero su funcionamiento sigue siendo, en última instancia, el de un sistema que aprende patrones para clasificar o predecir, no el de una inteligencia que entiende realmente el mundo.

https://upload.wikimedia.org/wikipedia/commons/7/78/Esquema_aprendizaje.jpg
Esquema de funcionamiento de los modelos automáticos que predicen un valor (supervisado) o un grupo (no supervisado)



Cómo aprenden las máquinas y los humanos: el paralelismo educativo

Llegados a este punto, resulta casi inevitable comparar el aprendizaje de las máquinas con el aprendizaje humano. Aunque los mecanismos sean muy diferentes, el paralelismo resulta muy útil desde el punto de vista educativo, porque permite explicar la inteligencia artificial con conceptos que el profesorado conoce bien.

Gran parte del aprendizaje humano se parece al aprendizaje supervisado. En el aula, el alumnado aprende a partir de explicaciones, ejemplos y correcciones del profesorado. Cuando un estudiante resuelve un ejercicio y se equivoca, ese error no es simplemente un fallo, sino una señal que permite ajustar el razonamiento y mejorar en el siguiente intento. Algo muy parecido ocurre en muchos sistemas de aprendizaje automático: el modelo recibe ejemplos con la respuesta correcta, compara su predicción con el resultado esperado y ajusta sus parámetros internos para mejorar.

Pero las personas también aprendemos de otras formas. A menudo descubrimos patrones sin que nadie nos los explique directamente. Observamos cómo funcionan las cosas, detectamos regularidades y construimos significado a partir de la experiencia. Este tipo de aprendizaje recuerda al aprendizaje no supervisado, en el que los algoritmos analizan datos sin respuestas previas y buscan agrupaciones, estructuras o relaciones internas.

Existe además un tipo de aprendizaje muy habitual en educación que podríamos llamar semisupervisado. Ocurre cuando el alumnado recibe algunas orientaciones iniciales, pero tiene que investigar, experimentar o resolver problemas abiertos. Es lo que sucede en muchos proyectos, investigaciones o situaciones de aprendizaje donde no hay una única solución correcta. Curiosamente, este enfoque también está ganando importancia en inteligencia artificial, donde los sistemas combinan pequeñas cantidades de datos etiquetados con grandes volúmenes de datos sin etiquetar.

Por último, también aprendemos mediante refuerzo. Las consecuencias de nuestras acciones influyen en cómo actuamos en el futuro. El éxito, el reconocimiento, la frustración o la satisfacción son señales que guían nuestro comportamiento. En el aprendizaje por refuerzo de las máquinas ocurre algo parecido: los algoritmos ajustan sus decisiones en función de recompensas o penalizaciones. Sin embargo, existe una diferencia fundamental. En las personas, esas recompensas están cargadas de significado emocional, social y cultural.

En el fondo, las máquinas y las personas aprenden de maneras que, en apariencia, pueden parecer similares, pero que tienen una diferencia esencial. Las máquinas optimizan funciones matemáticas y buscan patrones estadísticos en los datos. Las personas, en cambio, aprendemos construyendo sentido: interpretamos, relacionamos ideas, damos significado a lo que aprendemos y lo conectamos con nuestra experiencia.

Comprender cómo aprenden las máquinas es importante para poder utilizarlas correctamente, pero también es necesario entender sus límites. Uno de los más conocidos es el problema del sesgo. Los modelos de inteligencia artificial aprenden a partir de datos humanos y, por tanto, pueden reproducir errores, prejuicios o desigualdades presentes en esos datos. Si los datos de entrenamiento están sesgados, el sistema aprenderá esos mismos sesgos y los reproducirá en sus decisiones.

Otro límite importante es la opacidad. Muchos modelos avanzados, especialmente los basados en deep learning, funcionan como una especie de “caja negra”. Esto significa que pueden producir resultados muy precisos, pero no siempre es fácil comprender exactamente cómo han llegado a esa conclusión.

Existe además un riesgo más sutil: la apariencia de inteligencia. Los sistemas de IA pueden expresarse con gran seguridad incluso cuando se equivocan, lo que puede generar una falsa sensación de fiabilidad. Entender que estos sistemas no comprenden el mundo, sino que predicen patrones, es una de las claves para desarrollar pensamiento crítico en el alumnado.

Por eso, en el contexto educativo, la inteligencia artificial debe entenderse siempre como una herramienta, no como un sustituto del pensamiento humano ni del criterio pedagógico. Puede ayudar a analizar información, generar materiales o personalizar el aprendizaje, pero la interpretación de los resultados, la transmisión de valores y la construcción de significado siguen siendo tareas profundamente humanas.

En última instancia, podría resumirse con una idea sencilla para el aula:

Las máquinas pueden aprender patrones.
Las personas, además de aprender, comprenden por qué y para qué aprenden.

Y precisamente ahí es donde el papel del profesorado sigue siendo insustituible.


image.png




Comprender cómo aprenden las máquinas es imprescindible para usarlas bien, pero no es suficiente. Igual de importante es entender sus límites.

El primero es el sesgo. La IA aprende de datos humanos y, por tanto, hereda errores, prejuicios y desigualdades presentes en esos datos. Un sistema entrenado con información parcial o injusta reproducirá esas mismas distorsiones, a menudo de forma invisible.

El segundo límite es la opacidad. Muchos modelos, especialmente los basados en Deep Learning, funcionan como una “caja negra”: ofrecen resultados muy precisos, pero difíciles de explicar. En educación, esto obliga a extremar la prudencia cuando se utilizan para evaluar, clasificar o tomar decisiones relevantes.

El tercero es la apariencia de inteligencia. Los sistemas de IA pueden expresarse con seguridad incluso cuando se equivocan, lo que puede generar una falsa sensación de fiabilidad. Comprender que la IA no entiende, sino que predice, es clave para desarrollar pensamiento crítico en el alumnado.

image.png

Imagen autoexplicativa que demuestra el estado actual de las cosas. Humanos consumiendo información y máquinas aprendiendo


Las máquinas aprenden con datos; las personas aprenden con sentido, valores y acompañamiento.

Módulo 6 Cyberpi, mBot e IA

Traductor

Primero sin el Cyberpi

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

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

traductor.png

Ahora con el 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

Lo primero es conectarse a la Wifi :

cyberpi-conexion.png

Y para traducir

cyberpi-traduccion.png

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

novaai.png

Módulo 6 Cyberpi, mBot e IA

Reconocimiento de voz

Aquí no trabajaremos en vivo SINO EN CARGA pues CibyerPi tiene conexión a Internet

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.

Como puedes observar, la orden de reconocimiento de voz, añade un . al final que hay que tener en cuenta

El programa lo tienes aquí https://planet.mblock.cc/project/3733278

ordenesvozmbot2.png

Módulo 7 Actividad obligatoria


Módulo 7 Actividad obligatoria

Actividad final obligatoria

El contenido de este curso va a ser la base sobre la que se diseña la actividad final obligatoria que vas a tener que entregar para superar satisfactoriamente esta formación, por lo que es muy importante que le prestes especial atención.

La robótica educativa no debe entenderse como una actividad aislada. Lo ideal es que incluyas el uso de Cyberpi y mBot dentro de tu programación de aula habitual, integrada en unidades didácticas o proyectos que ya tengas diseñados (o estés diseñando). Esto lo haremos a través de la creación de una Situación de Aprendizaje (SdA) que ponga en relación directa los contenidos de tu área con el uso pedagógico del robot .

En el diseño de tu Situación de Aprendizaje hay una serie de elementos obligatorios que no pueden faltar, garantizando que la propuesta sea una integración real de la robótica en el aula, evitando su uso como un recurso aislado o anecdótico. Los elementos que debes desarrollar son los siguientes:

1.- Contexto. 
Aquí tienes que especificar la realidad organizativa de tu propuesta:

2.- Objetivos y Anclaje Curricular (LOMLOE Aragón).
En esta parte deberás especificar qué metas persigues, conectándolas debidamente con el currículo oficial de la Comunidad Autónoma de Aragón:

3.- Secuencia Didáctica de las Sesiones.
Debes estructurar el desarrollo paso a paso de las sesiones planificadas, asegurando que se incluyan de forma explícita los siguientes elementos técnicos y pedagógicos:

4.- Plan Logístico y Gestión del Aula.
Para asegurar el éxito de la sesión de robótica sin generar caos, debes definir:

5.- Evaluación y Evidencias.