Autor: Agustin Gonzalez Redondo. M Rocío García de la Fuente.
MBlock es un software de programación integral basado en Scratch 3.0 y diseñado para la educación. MBlock integra lenguajes de programación como Arduino, C++ y Python, de tal forma que cualquier estudiante puede crear programas para el control de robot o establecer una comunicación entre robot y computadora de una forma relativamente sencilla.
Al estar basada en Scratch, los niños, por lo tanto, pueden empezar a programar con relativa facilidad, dada la simplicidad de este lenguaje de programación basado en bloques, como ya se ha visto en artículos precedentes.
La aplicación se puede descargar de forma gratuita y para la práctica totalidad de los sistemas operativos, incluidos teléfonos móviles y tabletas, desde su página oficial http://www.mblock.cc (figura 1). Haciendo clic en la pestaña Download el proceso de instalación es sencillo y una vez finalizado, si se echa un vistazo general a la plataforma mBlock (figura 2), se puede observar que salvo pequeñas diferencias en colores, o el personaje inicial que aparece en pantalla, la estructura de bloques es similar a la estructura del programa Scracth, salvo por la aparición de un nuevo bloque de programas “robot”, desde el que se podrán dar las instrucciones necesarias a los autómatas programables (figura 3).
Otra novedad con respecto a Scratch, o a S4A, es que la programación va más allá de la placa Arduino, y permite el uso de una gran variedad de dispositivos programables, Arduino, mBot, megaPi, etc. (figura 4), cada uno de ellos con sus respectivas extensiones y bloques de instrucciones para programar la placa seleccionada (figura 5).
Para dar comienzo al trabajo con esta aplicación se va a emplear el modo Arduino, ya que mBlock permite descargar el programa a la placa, para que el robot trabaje de forma independiente. Este modo es ideal para trabajar con robot móviles donde una conexión a través de cable limita su movimiento.
El proyecto que se va a realizar a modo de ejemplo es el ciclo de encendido y apagado de un semáforo, donde se descargará el programa en la placa de Arduino para su funcionamiento independiente.
Como material se necesario para llevar a cabo la práctica se deberá contar con:
- 1 Placa de Arduino UNO
- 1 Protoboard donde conectar los diodos LED
- 4 cables de conexión
- 3 Diodo Led (rojo, amarillo y verde del semáforo)
- 3 Resistencia de 220Ω para conectar en serie con los diodos.
Una vez se cuenta con el material, el sistema de conexiones realizado con Fritzing es el siguiente (figura 6), donde los colores rojo, amarillo y verde se conectan a los pines 13, 12 y 11 de Arduino respectivamente.
Una vez hecho el montaje sobre la placa de Arduino, se realiza un sencillo programa de Scratch para controlar el autómata. Para editar el programa debe estar seleccionado el modo Arduino dentro del menú de Herramientas Editar (figura 7), y el programa una vez realizado con los bloques de Scratch tendrá el siguiente aspecto (figura 8).
Analizando su funcionamiento, su inicio da comienzo con un evento nuevo (figura 9), e inicializa tres variables rojo, verde y amarillo creadas como variables para establecer el número de PIN donde se han de conectar sus respectivos LED de color, de acuerdo con el esquema de conexión visto en la figura 6.
Posteriormente y dentro de un bucle de repetición continua “por siempre”, se cambia el estado de los distintos diodos en un orden determinado, 3 segundos rojo, 1,5 segundos amarillo y 3 segundos el verde, para repetirse continuamente durante la ejecución del programa.
Por último, para hacer funcionar el robot, se hace necesario descargar el programa en la placa para lo que existen dos posibilidades:
- Descargar directamente usando el programa mBlock, simplemente es necesario, una vez finalizado el programa, pulsar el botón “Subir a Arduino” (figura 10) y el programa se descargará directamente en la tarjeta.
- Editar con IDE de Arduino: esta opción funciona como un traductor de código desde mBlock, programación de alto nivel con el uso de Scratch, hacía un código más avanzado, basado en C++, capaz de ser interpretado por el programa Arduino IDE (figura 11), y donde podrá ser descargado directamente a la placa o bien ser editado por un usuario más avanzado (figura 12), una vez realizadas las convenientes modificaciones, la descarga se hace a través de la IDE de Arduino.
La oportunidad que brinda mBlock, a diferencia de S4A, de descargar directamente el programa en la placa, y que se analiza en el presente artículo, permite trabajar con programas donde la independencia del autómata es fundamental para su funcionamiento, ya sea a través de su descarga, o copiando el programa que genera a la IDE de Arduino para su posterior descarga.
Además, este último caso que puede así ser modificado por un usuario más experto, o bien puede ser utilizado como fuente de análisis para acercarnos a lenguajes de programación más complejos y potentes, como C++ empleado por la IDE Arduino, partiendo, por supuesto, de casos prácticos sencillos elaborados por nosotros mismos en un lenguaje como Scratch más fácil de comprender
Por último y aunque aquí la programación gráfica, que es posible realizar con Scratch, no tiene sentido puesto que el autómata funciona de forma independiente, en futuros artículos analizaremos las posibilidades de trabajo que presenta el uso conjunto de las tarjetas Arduino con la interfaz gráfica basada en Scratch que proporciona mBlock.