Cargando...
 

mBlock en LLiureX 16

Versiones
-LliureX 16

1. Introducción

 

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.

2. Instalación de mBlock

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.

1 Mblock


Iniciaremos el programa haciendo doble click sobre el ejecutable mBlock.

3. Entorno de mBlock

Nada más iniciar el mBlock nos aparecerá la siguiente pantalla:

 
2 Mblock

 

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.


4. Cargar el firmware

 


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.

4 Mblock


 

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):

6 Mblock


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".

7 Mblock


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.

 

4. MakeBlock

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:

5 Mblock


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.

 

5. Programando un mBot (seguidor de línea negra)

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:

  • El robot seguirá una línea negra y cuando salga de la misma, volverá otra vez, a la línea.
  • Cuando se encuentre un obstáculo el robot parará.

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:

9 Mblock

Tendríamos un diagrama de bloques como este:

8 Mblock

Que implementaríamos en Scratch así:

10 Mblock

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í .

Depuración y carga del programa

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:

 
11 Mblock

 

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:

12 Mblock
13 Mblock

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.

14 Mblock


Le damos a Subir a Arduino y se cargará el programa en nuestro robot, de manera que ya podremos desconectarlo del ordenador para usarlo.

 

6. Arduino en mBlock

 

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.

 
18 Mblock  

 

Para hacer funcionar el código simplemente hemos de hacer click en uno de los bloques del escenario y veremos cómo los bloques se iluminan. Asimismo, podemos depurar el programa o analizar el funcionamiento de las entradas y las salidas simplemente clickando sobre algún bloque. De esta manera nos dará el resultado de esa entrada.

 

19 Mblock  

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.


20 Mblock


7. Problemas Comunes

 

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