Cyberpi
- Conocer Cyberpi
- Mi primer programa "Hola mundo"
- Sonidos
- LED
- Pantalla con textos
- Pantalla con gráficos
- Movimientos
- Detección
- LAN
- ¿Qué es IoT?
- IoT
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
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
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:
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.
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.
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, ....
Mi primer programa "Hola mundo"
Conectamos Cyberpi con el PC utilizando un cable USB tipo c
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
Una vez cargado el dispositivo CyberPi recomendamos entrar en la conexión directa (3) y pulsamos Conectar (4)
Al dar a Conexión directa nos da dos opciones, Bluetooth y Serie, elegimos serie
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.
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
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.
Al conectar, nos aparecen instrucciones específicas de Cyberpi como instrucciones generales
Podemos empezar con nuestro primer programa
Le damos a Cargar , (luego aclaramos el modo En vivo qué es) y se ejecuta el programa
MODO VIVO ¿ESO QUÉ ES?
El modo vivo, permite interactuar con el PC, por ejemplo:
- PC → Cyberpi : Al pulsar la tecla espacio que diga Hola
- PC← Cyberpi El oso panda diga también Hola Mundo!
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
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
- EVENTOS
- CONTROL
- OPERADORES
- VARIABLES
- MIS BLOQUES
Recomendamos visitar las páginas 30 al 42 Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor
Sonidos
Grabadora sencilla
La librería de Audio tenemos opciones interesantes
Podemos poner un programa sencillo
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
Grabadora más sofisticado
Si entramos en los programas de ejemplo, podemos elegir Magical Recorder
Y funciona como una grabadora de bolsillo:
- Apretamos el joystick en la posición central, empieza la grabación
- Botón A termina la grabación
- Botón B reproduce la grabación
Sirena
Si entramos en programas de ejemplo- Buzzer:
Toca una sirena:
Podemos jugar a reproducir notas
Teniendo en cuenta que sigue la notación inglesa. Equivalencia entre las notas anglosajonas, nota MIDI y frecuencias :
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
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
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.
LED
En el apartado de LED podemos realizar diferentes animaciones de la tira de Leds RGB que tiene Cyberpi, por ejemplo
Otro ejemplo más animado sería
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
Pantalla con textos
La pantalla OLED que incorpora Cyberpi nos permite muchas posibilidades. para ello entramos en
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 :
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:
Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor
Los números no se borran, pero si hacemos este programa, se sobrescriben
Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor
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:
Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor
Las coordenadas X e Y :
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.
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:
Pere Manel Verdugo Zamora http://peremanelv.com/mblok.html contenidos e imágenes publicados con permiso del autor
Cambia el espaciado de 5 pixeles a 20 píxeles y notarás la diferencia. Aquí en este figura tienes un ejemplo
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.
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)
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 :
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
Tenemos que hacer
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
Este ejemplo
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
Fuente: Guia Cyberpi Robotix con permiso de la empresa.
Y más...
Podemos fijar los colores con estas dos instrucciones:
Podemos rotar la pantalla
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 :
Funciones trigonométricas
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.
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.
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.
Movimientos
Ahora vamos a ver los programas en
Sensibilidad
Este sencillo programa podemos controlar el sprite según los movimientos definidos en Cyberpi
Ejecuta el anterior programa EN VIVO pues hay que mover el sprite
En teoría estos son los movimientos :
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 :
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)
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.
O este otro
Detección de giros
El criterio de ángulos es ;
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:
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
Este es el resultado
Un ejercicio interesante: Contador de pasos
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
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 :
Detección
Detección del Joystick y teclas A y B
Podemos hacer este mensaje en el Cybperpi
aunque parece largo, es corto si se hace duplicar el if principal
En el objeto panda hacemos el programa:
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"
¿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
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
Sensor luz
La detección de la luz, que ya lo vimos en gráficos
.
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
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
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
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
Pero tiene la desventaja de que no nos informa el estado. Este script es más elaborado
Conectarse a la Wifi método rápido
Otra manera es utilizar el programa mismo mBlock
Nombre del equipo
Para identificar nuestro equipo, necesitamos saber su nombre para diferenciarlos de otros, tenemos en en bloque de detección
El nombre del equipo se puede ajustar aquí :
INSTRUCCIONES DE LAN
Una vez que estamos conectados, los diferentes CYBERPI que están dentro de una LAN pueden enviarse mensajes con estas instrucciones
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) :
El resultado es
... Y EN EL CASO DE QUE SÓLO TENGO UN CYBERPI ????
En el cyberpi
Instalamos la extensión BROADCAST
El código es parecido
Y lo subimos y dejamos conectado el cyberpi con el PC
En el Sprite (o sea el panda)
Instalamos la extensión broadcast (que se llama difusión) para las imágenes anidadas
Y creamos el siguiente programa para el sprite
RESULTADO
¿Qué es IoT?
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
Las formas "desatendidas" son un avance en la sociedad pero también puede generar problemas muy serios a nivel mundial, ver el caso Mirai
Las cosas claras. ¿asíncrono o síncrono?
Hay muchas herramientas IoT
- Blynk: lo que nos gusta de esta herramienta es que es casi "instantánea" o "síncrona". Esto es imprescindible con ciertos robots como el Rover Marciano con Arduino. Necesitamos que "gire" para evitar un obstáculo, no podemos esperar !!!. Veremos con BLYNK un protocolo que entre el dispositivo electrónico (nuestro robot) y nosotros (en ordenador, en una APP en el móvil) la comunicación es instantánea, gracias a un servidor que hará de intermedio, que puede ser local (BLYNK LEGACY) o en Internet (BLYNK IoT).
- Blynk legacy es la que se va a trabajar en
- Blynk IoT es la que se va a trabajar con
- MQTT El emisor envía datos, se almacenan en un servidor, y cuando puede, lo vuelca al cliente. Cliente y emisor pueden ser el dispositivo electrónico y nosotros o viceversa. Veremos que esto es lo que hace el protocolo MQTT y está tremendamente extendido por lo barato y fácil que es. Hace que los servidores no estén tan ocupados, por lo tanto hay varios proveedores que ofrecen este servicio gratuitamente. Hay robots como los que tienen la placa TDR STEAM IMAGINA que envía datos de temperatura, humedad, .. y pueden recibir datos pero no precisan de esta exigencia instantánea como un rover.
- Arduino cloud IoT
- Cyberpi y mBot2
IoT
En esta pestaña tenemos elementos que nos permiten usar Internet para enviar mensajes o recoger información :
Para utilizar muchos elementos de IoT es necesario utilizar los servidores de Makeblock por lo tanto hace falta estar logueados
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) :
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:
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.