Robótica con Vitalinux

De Vitalinux DGA
Saltar a: navegación, buscar

Introducción

Se puede hacer robótica con Vitalinux (Linux)?

Inicialmente tuvimos ocasión de probar con dos de los robots que pudimos ver en las I Jornadas de Robotica Educativa y Progmación:

  • Lego WeDo
  • mBot

Además dichos robots se pueden probar antes de su adquisición a través de los CIFE's, y como son los que más aceptación están teniendo en el entorno educativo, son varios los centros que nos han pedido una solución para poder trabajar con ellos desde Vitalinux

En principio ninguno de los dos tenían soporte/aplicación nativa para Linux. update: parece que MakeBlock si que tiene algo "para Linux desde hace poco":https://github.com/Makeblock-official/mBlock/releases...está solo para 64 bits pero lo probaremos y os diremos algo!!

De momento tenemos la solución para poder trabajar con ellos usando la tecnología de App's para Google Chrome. Eso si, siempre a través de Scratch. Ésto quiere decir por ejemplo, que la aplicación de Lego WeDo específica (más sencilla) no funcionará en Linux hasta que Lego libere dicho software, pero por contra, podremos hacer cosas más complejas con el robot de Lego (al estar integrado en scratch)
Iremos actualizando la información en ésta página a medida que tengamos nuevas noticias...

Nuevo: Durante el curso 2016-2017 y gracias a la incorporación de nuevos centros, nos llegaron a nuestras manos unas placas Zumbox y la inquietud de si podrían funcionar en Vitalinux. Pues tras varias pruebas y excelentes comunicaciones con el equipo de BQ España os queremos indicar que funcionan muy bien usando "BitBloq":http://bitbloq.bq.com. Más información en el apartado correspondiente de ésta página.

Preliminares - Vitalinux te ayuda...

 Importante: Puedes saltarte éste paso preliminar si usas Vitalinux, migasfree lo hará por ti... 

En Lego y mbot, la comunicación con el mismo se hace a través de un dispositivo de interfaz humana (también llamado HID). Por ejemplo en el caso de Lego WeDo con un cable usb y en el caso de mBot con un emisor inhalámbrico (también usb).

Podemos ver los usb conectados con:

lsusb # lsusb -t para mas detalle
Usb robot 022.png

En la siguiente captura podemos observar la salida de los comandos indicados antes y después de insertar el cable del robot lego.

Para poder leer y escribir en dicho dispositivo (mandar órdenes al robot o leer datos del mismo), Linux crea un archivo de tipo carácter en /dev, pero podemos observar que sólo tiene permisos root:

Vemos dos dispositivos, uno el teclado/ratón y otro que corresponde a la conexión con el robot

Para ello, simplemente tenemos que indicarle a udev que nos cree dicho dispositivo con los permisos necesarios:

Editar un archivo nuevo:

sudo nano /lib/udev/rules.d/99-hidraw.rules

Con las siguientes lineas

# Solucion generica: para todos los dispositivos de interfaz humana
# KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev"
# Lego Wedo
ATTRS{idVendor}=="0694", ATTRS{idProduct}=="0003", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
# mBot
ATTRS{idVendor}=="0416", ATTRS{idProduct}=="ffff", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"

Por último quedaría reiniciar el servicio udev

sudo service udev restart

Si antes de realizar el proceso estaba conectado el robot, tendremos que desconectarlo y volverlo a conectar para que los cambios surtan efecto, quedando algo parecido a ésto:

Usb robot 027.png

Lego WeDo

Lego WeDo no tiene el software desarrollado para funcionar en Linux, por lo que no podremos usar el software específico desarrollado por Lego para funcionar con sus actividades. Sin embargo puede funcionar sin problemas con Scratch bajo Linux, pudiendo realizar todas las actividades propuestas por Lego, y muchas otras, ya que contamos con la funcionalidad que ofrece este entorno de programación (en el caso del software de Lego, las funcionalidades pueden llegar a quedarse limitadas).

Si se quiere usar el material para montar los diferentes escenarios propuestos por Lego, podemos descargarnos los ejercicios del propio CD de Lego o de la siguiente URL

Lego WeDo puede funcionar tanto en Scratch 1 como Scratch 2 (en su versión online y offline). Ya sabéis que con Vitalinux podemos tener disponibles todas las opciones, para gustos los colores. Sin embargo, para que Scratch pueda hablar y escuchar del controlador del robot, necesita un plug-in y de nuevo nos encontramos con un problema: no hay plugins de Scratch para la versión Linux.

Solución: La gente de Pixcase ha desarrollado una extensión para Chrome que nos va a hacer de puente entre Scratch y Lego. Para ello, deberemos tener Google Chrome (ya disponible en Vitalinux) e instalar la app (extensión) S2Bot 4 Scratch....vamos a ello:

  1. Abrimos Chrome y vamos a Herrmientas -> Extensiones (o bien ponemos en la URL: chrome://extensions). Una vez allí, nos vamos a la parte de abajo, y le damos donde dice "Obtener más extensiones", y buscamos la extensión en cuestión por wedo:
    Legowedo 037.png
  2. Le diremos a añadir a Google Chrome y ya tendremos disponible la App para su uso
    Sobre las Apps de Google. Si hemos inciado sesión en Google Chrome, o iniciamos sesión con la App instalada, automáticamente la tendremos disponible en todos los navegadores/equipos donde tenga iniciada la sesión con Google
    Para hacer uso de la misma, o bien podemos abrir una nueva pestaña y desde el marcador que pone Aplicaciones lanzarla, o usar la entrada creada en el menú de Vitalinux:
    Legowedo 024.png
    Legowedo 025.png
  3. Como podemos observar, la app nos indica que ni el robot ni scratch están conectados. Si conectamos el robot, veremos como nos lo indica la aplicación, y nos da indicaciones de los sensores conectados en ése momento...vamos por buen camino:
    Legowedo 028.png
  4. Ahora debemos "conectar" nuestro scratch. Éste proceso se realiza usando un template que nos genera la propia app (New Scratch Template):
    Legowedo 029.png
  5. Que guardaremos donde queramos. Dicha template la podremos usar en diferentes proyectos que usemos, sin problemas. Puede funcionar en la versión de Scratch 2 offline y online. Para ello, solo tenemos que abrir el scratch que más nos guste y abrir la template guardada en el paso anterior:
    Legowedo 032.png
  6. Si nos fijamos ahora en Scratch, tendremos en el apartado "Más Bloques" los bloques de nuestro WeDo y podremos ver en la App que tenemos Scratch también conectado:
    Legowedo 033.png
  7. Ya podemos crear nuestro programa y hacerlo funcionar:
    Legowedo 034.png

Nota: Podremos usar la misma plantilla generada e ir guardando los dferentes proyectos con diferentes nombres, 
pero para que funcione la comunicación (y el robot haga cosas) deberá estar la app (s2Bot 4 Scratch) corriendo
 (sino, nos saldrá en rojo el Wedo en la opción de Mas Bloques de Scratch)

mBot

De nuevo, éste robot viene con un software que no dispone de versión para Linux en el CD de instalación. Sin embargo, si que se puede usar con Scratch (al fin y al cabo, el software que tiene mBot es un Scratch tuneado).

El procedimiento para poder usar mBot con Vitalinux (Linux en general) será muy similar al descrito para LegoWedo. Sin embargo, tiene algunas diferencias:

  • Lógicamente, usaremos otra App diferente: Makeblock mBot for Scratch X
  • No podremos usar el Scratch instalado en la máquina, ni el Scratch 2 offline oficial. Deberemos usar Scratch X (Proyecto no oifical de Scratch, que permite incorporar extensiones experimentales para conectar con múltiples dispositivos)

Vamos pues a ello:

  1. Lo primero, instalaremos la app Makeblock mBot for Scratch X. Buscaremos igual que hicimos para Lego, la extensión correspondiente y la añadiremos a nuestro google Chrome:
    Legowedo 037.png
  2. Arrancaremos la aplicación y nos permitirá selecionar el tipo de conexión con nuestro mbot:
    Mbot 2.png
    Si hemos conectado el pincho inhalámbrico...
  3. Sólo queda lanzar Scratch X, lo cual abrirá una página usando Chrome, directamente en Scratch X.
    Aceptar el Warning que nos indica que no se resposabilizan del uso del software al estar en fase experimental
  4. Y a programar nuestro mbot y verlo funcionar:
    Mbot 7.png

Nota Sobre las Apps

Se ha tomado la decisión de que la instalación de las dos app's (extensiones) comentadas no se lleve a cabo de forma desatendida por migasfree, ya que depende mucho del entorno donde se quieran usar (puede ser que incluso el usuario ya las tenga instaladas) y además ya habéis visto que la instalación de una extensión en Chrome resulta trivial

BitBloq (Zumbox y mas...)

Como ya hemos comentado la placa Zumbox y otras funciona sin problemas en Vitalinux. Para ello se usa el programa web "BitBloq":http://bitbloq.bq.com.

Para que podamos cargar el programa desarrollado en nuestra placa, simplemente necesitamos instalar el paquete web2board (necesario para comunicar el software Bitbloq con la placa) y configurarlo adecuadamente...

Como para otras aplicaciones, desde Vitalinux hemos elaborado el software para que todo ésto se haga de forma automática y así podemos instalar lo necesario de dos formas:

  1. Instalar en el equipo que queramos usar el Bitbloq y la carga de la placa el paquete vx-dga-l-web2board-bq
  2. Avisarnos a través de soporte para instalarlo en todos los equipos que queráis de forma desatendida, como hacemos con cualquier otro software.
Bitbloq zumbox vitalinux

BitBloq Offline

Ahora también es posible instalar la versión Offline de Bitbloq. Desde BQ nos recomiendan siempre usar la versión online (más actualizada y con más funcionalidades), pero puede ser interesante en el caso de equipos que no vayan a disponer de red mientras se programa. Para tenerlo disponible, simplemente debemos instalarlo (de forma manual o desatendida) usando el paquete que hemos preparado con el nombre de vx-dga-l-bitbloq-offline

Nota Final: Indicar que parece que en breve se podrá programar los robots mBot con Bitbloq...lo cual es una excelente notica!!!

Referencias

http://www.appnearme.com/blog/2014/7/21/chrome-usb-hid-controlling-your-usb-device-javascr/

http://www.picaxe.com/Teaching/Other-Software/Scratch-Helper-Apps/

http://www.instructables.com/id/Programming-With-Scratch-X-for-Makeblock-MBot/