Programando en bloques mBlock
- Preparar el ALVIK para mBlock: Actualizar el firmware de Alvik
- Instalando mBlock
- Instalando la extensión ALVIK en mBlock
- Dos formas de programar en mBlock
- Un ejemplo de programa en vivo
- Un ejemplo de programa en carga
- Otro ejemplo de programa en carga : Evita obstáculos
- Métodos para interactuar los objetos y el robot (dispositivo)
- Un ejemplo interactuando con un objeto
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
Licencia CC-BY-NC-SA origen https://courses.arduino.cc/explore-robotics-micropython/lessons/getting-started/
Luego lo conectamos por cable
Licencia CC-BY-NC-SA origen https://courses.arduino.cc/explore-robotics-micropython/lessons/getting-started/
Y ahora ya podemos encender nuestro Alvik
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
Asegúrate de tener el ALVIK encendido
Hasta que sale esta pantalla de éxito
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
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 :
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
Asegúrate de tener el ALVIK encendido
Hasta que sale esta pantalla de éxito
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 :
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
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 bloques
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
Versión offline Windows o Mac
Vamos a https://mblock.cc/pages/downloads y descargamos la versión correcta a nuestro sistema operativo.
Licencia CC-BY -SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/
En windows hacemos doble click en el archivo ejecutable descargado
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
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
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
- Pinchamos en el + de añadir dispositivo
- buscamos Alvik
- apretamos al + de descargarlo (al finalizar desaparece el + )
- dos clicks y se instala
Licencia CC-BY-SA https://docs.arduino.cc/tutorials/alvik/getting-started-mblock/
Se nos instalan una colección de instrucciones para controlar el ALVIK completamente
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.
- VENTAJAS
- Te permite interactuar el robot y el ordenador, por ejemplo podemos hacer que cuando el detector de humedad detecte agua, que salga por pantalla un fondo acuático, o que pulsando una tecla del teclado se encienda un LED en la placa...
- DESVENTAJAS
- hay que cargar dentro del robot el Firmware exclusivo de mBlock para que Arduino haga caso a mBlock
- Hay que tener nuestro ordenador como intermediario, se come los recursos y puede que nuestro programa vaya lento
- Por supuesto necesita tener ordenador conectado al robot, o sea, trabaja como un esclavo del 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
- Entramos en mBlok, en dispositivos
- Seleccionamos Alvik
- En vivo
- Conectar
- 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.
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
- Creamos un sencillo programa con eventos de cuando botón ... es presionado ...
- Elegimos el botón Cargar
- Subir código
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
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:
Mezcla en el mismo script:
- órdenes específicas de la placa arduino (set digital...)
- órdenes específicas del objeto que exista en mBlock (por defecto el oso panda) say .... switch costume to ....
- órdenes del fondo switch backdrop to ...
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
De esta manera si creamos una variable frase para todos los objetos:
Podemos usarla en el robot
y el programa del objeto que queramos, en este caso el oso panda lo puede visualizar
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
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
Buscar la extensión "Broadcast" e instalarla
Se instala primero descargándola con el + aquí
Y luego añadir una vez descargada
Entonces aparecen unas nuevas instrucciones
y se instalan unas instrucciones extras parecidas a las anteriores pero más potentes
- En el mismo mensaje podemos transmitir valores asociados
- Funciona EN MODO CARGA
- Esto es muy útil pues hay instrucciones que sólo se pueden utilizar en modo CARGA, de esta manera podemos pasar valores de la placa electrónica a los objetos del ordenador (oso panda o lo que sea) simplemente teniendo conectado la placa con el ordenador.
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
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.
El programa lo tienes aquí https://planet.mblock.cc/project/5548364
Y este es el resultado