Programando en bloques mBlock


Preparar el ALVIK para mBlock: Actualizar el firmware de Alvik

Actualizar el firmware significa que nuestro Alvik le instalamos el interpretador de micropython y por lo tanto podremos:
- Programar en código con Python
- Programar en bloques con mBlock

Si ya tiene el firmware instalado en el Alvik puedes saltarte esta página

Con este firmware no podemos programar con Arduino IDE

Antes de nada enciende el Alvik con esta precaución :

Primero nos aseguramos que el Alvik este APAGADO antes de conectarlo con el PC 
en caso contrario se puede perjudicar la batería
robot-off.png
Licencia CC-BY-NC-SA origen https://courses.arduino.cc/explore-robotics-micropython/lessons/getting-started/

Luego lo conectamos por cableconnecting-final.gif
Licencia CC-BY-NC-SA origen https://courses.arduino.cc/explore-robotics-micropython/lessons/getting-started/

Y ahora ya podemos encender nuestro Alvik
alvik-on.png
Licencia CC-BY-NC-SA origen https://courses.arduino.cc/explore-robotics-micropython/lessons/getting-started/

Actualizamos el FIRMWARE

Esto lo hacemos una vez, entramos en https://alvikupdate.arduino.cc/ damos a conectar y luego updated (si no sabes qué puerto es, desconecta y conecta y te fijas cual aparece)

Puede tardar varios ciclos, paciencia

2025-03-28 10_18_52-Arduino® Alvik Updater 🤖.png

Asegúrate de tener el ALVIK encendido

Hasta que sale esta pantalla de éxito

2025-03-26 11_59_36-Arduino® Alvik Updater 🤖.png

ATENCIÓN ¿Y SI DA PROBLEMAS?

Por ejemplo se ha quedado enganchado, lo has desconectado antes de hora... entonces la solución pasa por utilizar un flasheador más potente

MicroPython Installer

Descargamos el programa y ejecutamos teniendo conectado el ESP32 del Alvik, (no hace falta encender el robot, pues sólo trabajamos con el ESP32) lo detecta y simplemente le damos a Instalar Micropython dentro del chip

Descargable en https://labs.arduino.cc/en/labs/micropython-installer

2024-07-04 19_17_33-MicroPython Installer.png

Si sigue puñetero y no detecta el Arduino Nano ESP32 tendrás que ponerlo en modo Bootoloader, haz los pasos 1, 2  y 3 de https://libros.catedu.es/books/arduino-alvik/page/preparar-alvik-para-arduino-ide-modo-bootloader  y vuelve a intentarlo con el MicroPython Installer

Al acabar de instalar, sale este mensaje :

2025-03-28 10_15_55-MicroPython Installer.png

Aconsejamos apagar y desconectar totalmente y volver a conectar (acuérdate que no hay que conectar el ALVIK en el PC con el ALVIK encendido, lo conectas con el PC apagado y luego lo enciendes, tal y como dice arriba del todo)

Entramos en https://alvikupdate.arduino.cc/ damos a conectar y luego updated (si no sabes qué puerto es, desconecta y conecta y te fijas cual aparece)

AQUÍ VA A TARDAR VARIOS, VARIOS CICLOS, paciencia, paciencia

2025-03-28 10_18_52-Arduino® Alvik Updater 🤖.png

Asegúrate de tener el ALVIK encendido

Hasta que sale esta pantalla de éxito

2025-03-26 11_59_36-Arduino® Alvik Updater 🤖.png

Instalando mBlock

mBlock es un programa especializado en el manejo de los robots de Makeblock (ver cursos de mBot en Aularagon), pero permiten muchas arquitecturas de placas pues los mismos robots de Makeblock estan basados en placas de hardware libre Arduino, ESP32...

Hay dos versiones, online y offline, las dos son buenas, no obstante
- Si tienes Windows o Mac preferimos la versión offline para no saturar la red en los centros, rapidez y comodidad. 
- Si utilizas Linux o Chromebook tienes que usar la versión online obligatoriamente pues no hay versión instalable.
Tanto una opción como la otra, permite tener los proyectos en la nube de Makeblock, compartir, embeberlos, etc...

Versión online                                                                                                

Para la versión web primero hay que instalar mLink driver nos vamos a https://mblock.cc/pages/downloads y abajo nos encontramos mLink para descargar, descarga el mLink correspondiente a tu sistema operativo : 

mlink-1.png
Licencia CC-BY -SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/

Lo instalamos, y entonces pedirá instalar los drivers que son pequeños programas que comunican el PC con el harware del robot

mlink-drivers.png
Licencia CC-BY -SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/

Si utilizas Chromebook lee la siguiente guía para conectar el robot

Una vez instalado ya podemos entrar en la web https://ide.mblock.cc/ para programar en bloques nuestro robot

Nota: La página https://ide.mblock.cc/  no suele estar bien situada en los buscadores si ponemos mBlock, la página que suele salir es esta https://www.mblock.cc/en/ y nos da dos opciones, trabajar con bloque, o con Python, elegimos bloques2024-05-16 23_50_10-mBlock - One-Stop Coding Platform for Teaching and Learning.png
Si has entrado sin querer en la URL  https://ide.makeblock.com/ no permite el logueo en Europa
En resumen, la URL correcta es  https://ide.mblock.cc/  

En este editor tenemos que loguearnos podemos crear un nuevo usuario, utilizando una cuenta de Google/Apple o registrarnos con un correo electrónico

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

Versión offline Windows o Mac                                                                        

Vamos a https://mblock.cc/pages/downloads y descargamos la versión correcta a nuestro sistema operativo.

download-version.png
Licencia CC-BY -SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/

En windows hacemos doble click en el archivo ejecutable descargado

installing-download.png
Licencia CC-BY -SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/

Lo instalamos, y entonces pedirá instalar los drivers que son pequeños programas que comunican el PC con el hardware del robot

install-drivers.png
Licencia CC-BY -SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/

Algunas veces la ventana de driver de la figura anterior esta escondida en el fondo, hay que minimizar ventanas para acceder a ella.

En MAC el archivo será un fichero mount con la extensión .dmg, por lo tanto hay que arrastar el icono a la carpeta de aplicaciones

install-mac.png
Licencia CC-BY -SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/

Instalando la extensión ALVIK en mBlock

En mBlock instalar la extensión Alvik
  1. Pinchamos en el + de añadir dispositivo
  2. buscamos Alvik 
  3. apretamos al + de descargarlo (al finalizar desaparece el + )
  4. dos clicks y se instala

2025-03-25 23_34_33-mBlock v5.4.3.png
Licencia CC-BY-SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/

COM-port.png

Se nos instalan una colección de instrucciones para controlar el ALVIK completamente 

2025-03-26 10_39_58-mBlock v5.4.3.png

Dos formas de programar en mBlock

DOS FORMAS DE PROGRAMAR EN MBLOCK :

OPCIÓN
 Programación en vivo

El programa reside en el ordenador, y en la placa hay instalado un Firmware para ir escuchando y ejecutando lo que manda el ordenador. 

OPCIÓN Programación cargar a la placa

Todos los programas editores de Arduino (tanto los que programan con código como el Arduino IDE) como los editores de programas gráficos en bloque (mBlock, Snap4Arduino, Arduinoblocks, ...) permiten cargar el programa en la placa.  Las ventajas y desventajas son las opuestas de trabajar en vivo.

EN VIVO ¿Qué es eso?                                                                                                                                                       
Existe una posibilidad de utilizar la placa "en vivo" frente a "cargar" el programa en la placa.
Es decir, interactuando con el ordenador. El programa está en el PC. En la placa hay un firmware que le dice que este a las órdenes del PC.  De esta manera podemos por ejemplo:
     - Enviar órdenes desde el ordenador a la placa.
                      Por ejemplo que al pulsar la tecla espacio que se encienda el led D13 
    - Enviar información desde la placa al ordenador
                  Por ejemplo que muestre por pantalla nos muestre la cantidad de luz, que registra el sensor LDR, etc...
Que nosotros sepamos, estos programas permiten la programación en vivo :
               - mBlock placas: Arduino, Microbit, Raspberry Pi, ... robots de Makeblock: mBot, Cyberpi...
                -EchidnaScratch CURSO DE ECHIDNA
VENTAJAS LA PROGRAMACIÓN EN VIVO PERMITE MUCHO JUEGO Y POSIBILIDADES A LA HORA DE ELABORAR PROYECTOS
INCONVENIENTES: Necesitas el ordenador encendido y conectado al robot.

Un ejemplo de programa en vivo

PROBANDO EN VIVO                                                                                                  
  1. Entramos en mBlok, en dispositivos
  2. Seleccionamos Alvik
  3. En vivo
  4. Conectar
  5. Nos saldrá una ventana pop-up en Windows saldrá COMx donde x es un número. En otros sistemas operativos /dev/tty.[yourSerialPortName] o algo así. En teoría tiene que funcionar con el puerto elegido, sino, elegiremos otro, suele ser el más alto.

2025-03-26 11_03_38-Configuración.png

A funcionar así de sencillo !!!!!

la primera vez, tarda algo en responder, paciencia

RETO Ves probando así de rápido la multitud de instrucciones gráficas para saber cómo funcionan

Un ejemplo de programa en carga

Como ejemplo de programa en carga 

  1. Creamos un sencillo programa con eventos de cuando botón ... es presionado ...
  2. Elegimos el botón Cargar
  3. Subir código

2025-03-26 12_38_48-mBlock v5.4.3.png

Ahora el robot es libre en movimientos no depende del ordenador, por lo tanto podemos desconectar el cable

Otro ejemplo de programa en carga : Evita obstáculos

Podemos hacer un evita obstáculos, en la página https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/ proponen este programa


Licencia CC-BY-SA fuente https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/

Pero no gira, luego proponemos este https://planet.mblock.cc/project/5547662

2025-03-26 13_13_53-mBlock v5.4.3.png

Métodos para interactuar los objetos y el robot (dispositivo)

Si queremos que nuestro robot se pueda comunicar con el objeto o objetos que tenga mBlock, antes con mBlock 3.0 la comunicación era inmediata, fíjate en este script de una alarma:

embedded-image-xGEexnUg.jpeg

Mezcla en el mismo script:

Con mBlock 5.0 YA NO SE PUEDE, pero tenemos unos trucos

MÉTODO UTILIZAR VARIABLES GLOBALES

Se pueden crear variables, en cualquier objeto, y las lee cualquier objeto,

Este método se utiliza con la opción EN VIVO

variablesglobales.jpg

De esta manera si creamos una variable frase para todos los objetos:

frase3.jpg

Podemos usarla en el robot

frase1.jpg

y el programa del objeto que queramos, en este caso el oso panda lo puede visualizar

frase2.jpg

MÉTODO UTILIZAR MENSAJES

Cualquier objeto tiene a su disposición enviar mensajes a los otros

Este método se utiliza con la opción EN VIVO

mensajes.jpg

MÉTODO EXTENSIÓN BROADCAST = TRANSMITIR MENSAJES

Este método se utiliza con la opción EN CARGA

Es parecido al anterior, hay que ir al + que hay abajo para instalar extensiones

arduino-pelotahinchadistancia3.png

Buscar la extensión "Broadcast" e instalarla 

broadcast.jpg

Se instala primero descargándola con el + aquí

broadcast1.png

Y luego añadir una vez descargada

broadcast2.png

Entonces aparecen unas nuevas instrucciones

broadcast3.png

y se instalan unas instrucciones extras parecidas a las anteriores pero más potentes

El resto de objetos trabajan en modo vivo, es decir, si cambias un bloque, automáticamente se ven los efectos

A lo otros objetos TAMBIÉN hay que instalar la extensión BROADCAST

DESVENTAJA no se pueden transmitir mensajes de objetos a la placa. Sólo de la placa a los objetos

Un ejemplo interactuando con un objeto

Vamos a probar dos métodos anteriores, el de variable global y el envío de mensaje, por lo tanto vamos a trabajar EN VIVO

El Alvik va a enviar cuando pulse OK un mensaje COMENZAMOS a un objeto (un ovni) para que empiece a moverse y va grabando continuamente en dos variables globales ANGULOX y ANGULOY los ángulos del sensor de inclinación

2025-03-26 14_10_40-mBlock v5.4.3.png

En un objeto OVNI vamos a realizar un programa que se mueva según el ángulo. Como el ángulo va de 0 a 100 y el eje va de 0-250 luego lo multiplicaremos por dos para que se mueva con más margen.

2025-03-26 14_12_05-mBlock v5.4.3.png

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

Y este es el resultado