domingo, 23 de junio de 2024

El biestable definitivo con mBlock y Arduino UNO

mBlock 5 es una poderosa plataforma de programación basada en Scratch 3.0 especialmente diseñada para robótica, STEM y aprendizaje de programación. Al admitir el lenguaje Python basado en bloques, mBlock 5 nos permite crear juegos y animaciones libremente y programar robots Makeblock y más hardware de recursos abiertos como Arduino UNO. Este software cuenta con tecnologías de vanguardia como IA e IoT, lo que lo convierte en el software de programación perfecto para educadores, estudiantes, creadores y niños.

El IDE, o Entorno de Desarrollo Integrado, es donde podemos programar mediante bloques una gran variedad de dispositivos y robots de forma sencilla.

Como es habitual en este blog, vamos rápidamente al grano, ya que para mí últimamente el tiempo apremia y sólo dispongo del necesario para contaros de forma empírica lo que da cada entrada.

Abrimos el entorno con el navegador Google Chrome, ya que en Linux (en mi caso, Debian 12 "bookworm") es con el navegador que mejor va: https://ide.mblock.cc/


Lo primero es añadir el dispositivo que vamos a programar; en mi caso, la placa Arduino UNO (Dispositivos -> Añadir):


En vez de usar el driver mLink para conectar la placa Arduino UNO, y como tengo instalado y conectado el entorno IDE de Arduino a través de un puerto USB ttyACM0 (el dispositivo ACM0 es un dispositivo USB integrado estandarizado), hago clic en Cambiar a conexión directa:

y luego, hago clic en Serie:

 


  Elijo el dispositivo ttyACM0:

El hardware de Arduino UNO debe de estar conectado.

Después de crear el programa de bloques que deseamos subir al dispositivo Arduino UNO, lo cargamos con Subir código:

Luego indicara el progreso de carga, y en el dispositivo Arduino UNO parpadearán los LED Tx y Rx de la placa:


Al concluir nos comunica que el código se ha subido correctamente:

Para guardar el programa en nuestro ordenador sólo tenemos que nombrar el archivo, y en el menú Archivo elegir Guardar en tu ordenador:


Simulador del software con Tinkercad

Código de bloques en mBlock

Es tan sencillo y breve que precisa de escasa explicación. Creamos una variable, llamada A, que asociamos en serie, es decir, con un operador AND, a la lectura del único pulsador conectado al PIN 3 de  la placa (en reposo está en estado alto), usado para activar o desactivar el biestable (indicado por el LED del PIN 13 de la placa). 

Si no dejamos de pulsar el pulsador asociado al PIN de la entrada 3, entra en un bucle infinito que cambia el valor de la variable A, tanto en Set como en Reset, pero no cambiará de estado el biestable hasta que soltemos el pulsador en el momento oportuno.

Se introduce un tiempo de 100 ms en cada bucle para mejorar notablemente la respuesta a los rebotes del pulsador.

En la siguiente imagen se detalla el montaje de prueba con el miniPC que dispongo y la placa de Arduino UNO para probar este biestable:

Aquí os dejo el algoritmo del biestable. No tiene la aplicación de edición del diagrama de flujo el bucle Para siempre, pero lo simulamos con una operación condicional preguntando si la variable b tiene un valor 1; como el valor será siempre 0, se comporta como un bucle infinito.


No hay comentarios:

Publicar un comentario