La interfaz de programación mBlock nos permite programar mediante bloques tipo Scratch los robots de Makeblock como por ejemplo mBot o Ranger, y también placas de Arduino.
Una de las enormes ventajas de mBlock es que permite generar programas que permitan interactuar al robot o placa de Arduino con el PC de manera que podamos por ejemplo hacer un pequeño juego como haríamos en Scratch y utilizar el robot como mando de juego o visto desde otro punto de vista poder manejar el robot con el teclado del ordenador. Por supuesto este modo también es muy práctico si queremos mostrar en la pantalla del ordenador datos o variables de nuestro robot.
Esta tremenda cualidad que nos ofrece mBlock no debe despistarnos a la hora de realizar una función básica, que si que realizan otros entornos de programación, que es simplemente cargar un programa en nuestro robot mBot, Ranger o placa de Arduino para que trabaje de manera autónoma, independiente del ordenador, que es lo que normalmente buscamos en un robot.
Por lo tanto tenemos que entender perfectamente la diferencia entre trabajar de manera que PC y robot interactúen a trabajar con el robot de manera autónoma. Veamos estas dos opciones según la ubicación del programa.
Programa en ordenador con PC y robot o Arduino trabajando de manera colaborativa.
Trabajando en este modo el programa base, el que nosotros estamos diseñando y programando, estará ubicado en el ordenador. Es el programa de bloques que hemos realizado el que directamente se ejecuta.
Para que el robot funcione de forma colaborativa con el PC y pueda por ejemplo encender sus luces en color azul porque así lo dice el programa ubicado en el ordenador, deberá tener cargado un programa que controla esa comunicación entre PC y robot.
Veamos entonces los pasos a seguir para cargar en el robot mBot, Ranger o Arduino el programa que facilitará la comunicación entre PC y robot.
- Lo primero que debemos hacer es seleccionar el robot o placa que vamos a conectar en el desplegable » placas».
- Debemos tener conectado el robot o placa a nuestro PC mediante cable USB, encender y pulsar «conectar» > «puerto serie» > y pulsar el puerto COM correspondiente (puedes seguir también este tutorial). Si todo está correctamente aparecerá un indicador verde en la zona de robots.
- Seguidamente subiremos el programa al robot o placa que ayudará a establecer la comunicación pulsando en «conectar» > «actualizar firmware». El programa de comunicación se grabará en la memoria del robot o placa y un mensaje nos confirmará que la subida ha finalizado.
Ahora que nuestro robot mBot, Ranger o Arduino tiene cargado el programa que le permitirá trabajar en colaboración con el PC, podemos hacer funcionar el programa que hemos diseñado por bloques y que está ubicado en el PC, y ver cómo funciona.
En este modo mientras el programa ubicado en el PC esté funcionando veremos un halo amarillo a su alrededor en mBlock.
Fíjate que el bloque que inicia el programa en este modo de trabajo debe ser «al presionar bandera» igual que se haría con un programa de Scratch, aunque también hay otras formas de hacer funcionar el robot.
En este modo y siempre que el robot tenga cargado el programa de comunicación (actualizar firmware) podremos desconectar el cable USB y conectar el robot por medio de bluetooth o radiofrecuencia con módulo 2,4G. De esta manera podremos seguir ejecutando el programa ubicado en el PC pero permitiendo al robot mayor libertad de movimiento para, por ejemplo, desplazarse mediante los motores. Te remito de nuevo a este tutorial de conexión de mBot al PC para ver el modo de funcionamiento colaborativo PC-robot de manera inalámbrica.
Programa en el robot o placa de Arduino trabajando de manera autónoma e independiente del PC.
Si lo que queremos hacer es cargar el programa que hemos diseñado por bloques para que se ejecute en el robot o placa, de manera que posteriormente funcione desconectado por completo del PC de manera autónoma e independiente, deberemos seguir los siguientes pasos:
- Igual que en el modo anterior debemos seleccionar el robot o placa que vamos a conectar en el desplegable » placas» si no lo tenemos seleccionado previamente.
- De nuevo debemos tener conectado el robot o placa a nuestro PC mediante cable USB, encender y pulsar «conectar» > «puerto serie» > y pulsar el puerto COM correspondiente (puedes seguir también este tutorial). Si todo está correctamente aparecerá un indicador verde en la zona de robots.
- Para la realización del programa hemos debido utilizar un bloque del tipo «programa de mBot», «programa de Auriga» o «programa de Arduino», en vez de el bloque «al presionar bandera». Pulsamos en dicho bloque y se nos abrirá una ventana a la derecha con el código generado «traduciendo» nuestro programa a código Arduino.
- Ahora pulsaremos en «Subir a Arduino» de manera que cargaremos el programa que hemos diseñado por bloques en la memoria del robot o placa. Esta operación puede tardar casi 30 segundos dependiendo del robot o placa. Una vez completada la carga recibiremos un mensaje de confirmación.
Ahora el programa diseñado por nosotros se encuentra ubicado en el robot mBot, Ranger o placa de Arduino y se ejecutará inmediatamente. Podemos desconectar el robot del PC y alimentarlo con pilas o batería y utilizarlo de manera independiente y autónoma, como se espera normalmente que funcione un robot.
Aunque apaguemos y volvamos a encender el robot el programa cargado seguirá ahí y se ejecutará desde el principio cada vez que lo pongamos en marcha.
Por supuesto ya no sirve para nada la conexión al PC a no ser que hayamos definido una comunicación por el puerto serie, pero eso quizá lo veremos en otro tutorial.
Dos modos de trabajo dependiendo de la ubicación del programa.
Como resumen quiero remarcar la idea de que hay dos modos de trabajo que dependen de la ubicación del programa diseñado por nosotros.
Un modo es colaborativo entre PC y robot y el programa reside y se ejecuta en el ordenador, pero necesita de un programa adicional que debe cargarse en el robot para la correcta comunicación.
El otro modo es el estándar en cualquier robot, en el cual el programa reside y se ejecuta en el propio robot y es independiente del PC.
Te recuerdo que tienes a tu disposición la plataforma de cursos de Juegos Robótica donde aprenderás desde cero y sin conocimientos previos a utilizar mBlock con robots como mBot o Ranger y también con placas de Arduino, además de tener a tu disposición cursos con otros kits de robótica educativa como LEGO Mindstorms o entender el internet de las cosas aprendiendo a programar una placa de desarrollo como NodeMCU.
Como es habitual te recomiendo ver el vídeo al pie de esta entrada para entender mejor los modos de trabajo con los que podemos programar con mBlock, y si tienes cualquier duda no dudes en añadir un comentario y la intentaré resolver.
Dani S.
hola , he restaurado el progrma original del robot tank de makeblock y no me funciona bien el robot no se detiene las ruedfas mderechas no paran de girar y el control remoto no funciona. que puedo hacer?
Hola,
Prueba a reinstalar firmware y luego carga de nuevo el programa original.
Saludos
Hola que tal, espero me puedas ayudar con el siguiente problema: descargo un código para que mi mbot trabaje de manera autónoma sin la PC, tal como lo describes; pero no funciona el código, sin embargo, lo descargo de otra computadora, y es el mismo código y con ella si funciona, ¿Qué puedo hacer para que funcione con la primera PC?
Hola Miguel,
Es la primera vez que escucho algo así. ¿En el primer caso llega a confirmar que se ha subido el programa correctamente?
En teoría si el programa es exactamente el mismo el problema está en que la comunicación no es correcta y no termina de subir el programa a mBot, pero si te confirma la subida correcta no sabría qué responderte. Recuerda desconectar el cable USB y reiniciar el robot.
Saludos