mBlock es un entorno de programación muy básico pensado para robots/placas de MakeBlock, tiene la gran ventaja de que aúna todo lo necesario para dar los primeros pasos en el mundo de la programación. Tanto si disponemos de un robot mBot con todas sus extensiones, como si tan sólo queremos programar una placa con Arduino, mBlock nos proporcionará todas las herramientas necesarias para poder trabajar.
mBlock está basado en el lenguaje de programación Scratch por lo que resulta fácil e intuitivo de programar. Además una ventaja importante que presenta, respecto a otros entornos es que se pueden traducir los bloques de Scratch a C directamente. Esto es interesante si queremos introducir C a los alumnos que ya han visto Scratch.
Para instalar mBlock podemos descargarnos el paquete de instalación desde su página web. En nuestro caso descargaremos la versión para linux. Una vez descargado deberemos descomprimir el paquete para poder iniciar el programa.
Iniciaremos el programa haciendo doble click sobre el ejecutable mBlock.
Nada más iniciar el mBlock nos aparecerá la siguiente pantalla:
El programa puede cambiar el entorno según nuestras necesidades. Para ello vamos al menú editar y nos encontramos las siguientes opciones:
Opción | Detalles |
---|---|
Esconde el escenario | Si en nuestra programación no vamos a necesitar el escenario, podemos quitarlo. |
Escenario pequeño | Es el mismo entorno pero es escenario se reduce para tener más espacio para nuestros bloques. |
Modo turbo | Acelera el dibujado del escenario. |
Modo arduino | Con el modo Arduino podremos traducir nuestro programa en Scratch a C y cargarlo directamente a nuestro Arduino. |
Tenemos también el menú Lenguaje y Archivo donde podemos escoger el idioma y guardar y abrir proyectos.
Según lo que queramos hacer deberemos escoger un tipo de firmware diferente, para ello vamos al menú Placas y escogemos el modelo de placa o el robot que vamos a utilizar.
Una vez tengamos definida la placa, deberemos definir cómo conectarse al robot. Para ello vamos al menú Conectar > Puerto Serie y vemos cómo nos aparece el puerto /dev/ttyUSB0. Si no nos aparece es porque no ha detectado el usb, eso puede ser porque no hemos conectado correctamente el usb o porque no tenemos permisos para leer del usb.
Entonces nos aparecerán todos los dispositivos que tenemos conectados. Seleccionamos el puerto donde tenemos conectado el dispositivo que queremos programar (en este caso /dev/ttyUSB0):
Podemos ver cómo no podemos seleccionar Actualizar firmware, cuando hayamos seleccionado el usb esas opciones ya las podremos escoger. Podemos comprobar que se ha conectado a la placa si en el nombre de la ventana nos aparece la palabra "Conectado".
Ahora deberemos actualizar el firmware de la placa. El firmware nos servirá para poder ejecutar los bloques sin necesidad de tener que cargarlos a nuestra placa. Muy útil cuando tratamos de depurar el programa que estamos construyendo. Le damos a actualizar firmware, y cuando termine de cargarlo nos aparecerá una ventana que nos avisará de que el firmware ya está actualizado.
Ahora ya podremos empezar a programar nuestra placa.
En función del firmware que elijas te van a aparecer unas funciones, así, por ejemplo si escogemos el firmare para hacer un proyecto con mBot nos aparecerán todas la funciones correspondientes al Robot mBot. Para poder ver las funciones hemos de pulsar en el botón Robot. Este nos cargará todos los módulos del mBot:
Igualmente podremos hacer lo mismo con los robots derivados de mBot, como el mBot Ranger, también podemos usar el MakeBlock Me Orion (que es un placa ya preparada con el chip ATMega para usar los conectores RJ 25 de MakeBlock) así como el Mega Pi, que es otro dispositivo de MakeBlock para poder controlar diferentes motores.
Como podrás ver, en todos ellos es necesario realizar una pequeña inversión económica en las placas. Si disponemos ya de Arduino UNO en nuestros centros también podemos optar con adquirir un shield ME UNO Shield para poder usar los componentes de MakeBlock.
La gran ventaja de este tipo de placas es que montar un proyecto con diferentes componentes se vuelve prácticamente trivial, ya sólo hay que ir conectando conectores RJ25.
Para empezar a programar un mBot, deberemos haber cargado previamente el firmware del mBot.
Antes de empezar a programar cualquier dispositivo hemos de definir claramente que queremos que haga. Así definiremos las siguientes condiciones:
Una vez tengamos definido qué queremos que haga, deberemos ver cómo lo implementaremos. Para implementarlo usaremos los dos sensores que detectan claro/oscuro, uno a la izquierda y otro a la derecha y el sensor de ultrasonidos que tenemos delante del mBot:
Tendríamos un diagrama de bloques como este:
Que implementaríamos en Scratch así:
Una de las opciones a las cuales podemos sacar provecho a la hora de programar un mBot, es la de crear bloques en mBlock (como funciones cuando programamos). En nuestro caso hemos creado dos bloques para facilitar nuestra programación un poco. Hay que tener en cuenta en qué puertos están conectados los diferentes sensores.
En este caso, hemos cambiado un par de cosas y añadido una función sirena después de implentar el diagrama. Podemos descargar el programa ejemplo de aquí .
Una vez tengamos el programa hecho podemos ir probándolo si tenemos el firmare del mBot cargado en nuestra placa, para ello simplemente pulsamos sobre cualquier bloque y veremos como aparece un contorno amarillo en el programa. Eso significa que está funcionando:
Asimismo, también podemos conocer el estado de un sensor arrastrando un bloque suelto donde se lea específicamente del sensor y pulsar sobre él. Al pulsar sobre él nos dice el estado del sensor:
Una vez ya hayamos depurado el programa y nos hayamos asegurado de que todo funciona correctamente, podemos cargar el programa en nuestra placa. Para ello deberemos ir a Editar > Modo Arduino y podremos ver el código en C.
Le damos a Subir a Arduino y se cargará el programa en nuestro robot, de manera que ya podremos desconectarlo del ordenador para usarlo.
Usar el mBlock en Arduino es muy similar que utilizar el mBot. La principal diferencia es que no existen tantos bloques para Arduino como para mBlock. Para empezar a programar en Aduino, lo primero que tenemos que hacer es cargar el firmware para nuestra placa Arduino, en nuestro caso Arduino UNO.
Una vez tengamos cargado el firmware ya podemos programar en arduino. Esta es una de las dos formas de trabajar con Arduino en mBlock, aunque también podemos trabajar en modo Arduino.
En nuestro caso a modo de ejemplo vamos a crear un programa con 4 pulsadores y 4 leds, dos de los leds los encenderemos con dos pulsadores y los otros dos con dos botones del escenario de trabajo. Los otros dos pulsadores los usaremos para mover el muñeco hacia delante y girar.
Es posible que sólo necesitemos programar el arduino para controlar algún proceso, y no nos sea necesario usar el escenario. Para ello podemos ir a Editar > Modo Arduino y veremos que nos aparece un entorno sin escenario. Es más, todas las opciones para interactuar con el escenario están deshabilitadas. El programa que creemos entonces será traducido automáticamente a C y cargarlo directamente a Arduino. De esta manera tendremos un programa autónomo sin necesidad de tener el cable usb enganchado a nuestro Arduino.
Además, si necesitamos funcionalidades que no tenemos en mBlock, podemos editar el programa con el IDE de Arduino.
Podemos encontrarnos con la situación de que no podamos escribir en nuestro puerto porque nuestro usuario no tenga permisos de escritura en el puerto USB. Un ejemplo de ello es poder acceder al puerto como sudoer pero no como un usuario normal.
Para dar permisos a los usuarios podemos ejecutar los siguientes comandos en la terminal:
sudo usermod -G dialout -a NOMBRE_USUARIO sudo usermod -G tty -a NOMBRE_USUARIO