Diferencia entre revisiones de «Robótica con Vitalinux»

De Vitalinux
Saltar a: navegación, buscar
(mBot)
(mBot)
Línea 92: Línea 92:
 
## Y a programar nuestro mbot y verlo funcionar:[[Archivo:Mbot 7.png|centre|thumb]]
 
## Y a programar nuestro mbot y verlo funcionar:[[Archivo:Mbot 7.png|centre|thumb]]
 
# Si queremos conectarlo con la versión web para Mblock desde la página (https://ide.mblock.cc/), primero debemos instalar en nuestros equipos Vitalinux el programa que hay en Vitalinux Play llamado Mlink for Mblock, (se instala de manera rápida). Antes de abrir el programa on line debemos arrancar la aplicación en nuestro equipo y así podremos conectar el robot para cargar las programaciones.  
 
# Si queremos conectarlo con la versión web para Mblock desde la página (https://ide.mblock.cc/), primero debemos instalar en nuestros equipos Vitalinux el programa que hay en Vitalinux Play llamado Mlink for Mblock, (se instala de manera rápida). Antes de abrir el programa on line debemos arrancar la aplicación en nuestro equipo y así podremos conectar el robot para cargar las programaciones.  
 +
[[Archivo:MLink for mblock.png|centre|thumb]]
 
   
 
   
 
  Nota: Tal como indicamos en el siguiente apartado sobre Bitbloq, es posible que dentro de poco se pueda también programar el robot usando dicha aplicación!
 
  Nota: Tal como indicamos en el siguiente apartado sobre Bitbloq, es posible que dentro de poco se pueda también programar el robot usando dicha aplicación!

Revisión del 11:07 28 mar 2023

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

Desde Marzo de 2017 MakeBlock ha desarrollado una solución nativa "para Linux ":https://github.com/Makeblock-official/mBlock/releases. Disponible solo para 64 bits, la hemos probado y funciona, por lo que se ha dado solución para poder instalarlo de forma sencilla en nuestros Vitalinux

En cualquier caso (para Lego WeDo de momento no queda otra) 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...

Además, 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. Tras varias pruebas y excelentes comunicaciones con el equipo de BQ España funcionaban muy bien usando "BitBloq":http://bitbloq.bq.com hasta éste curso que se actualizó web2board y no era posible dicha actualización. Tras estudiar las opciones se le ha dado solución mediante app de Chrome. Más información en el apartado correspondiente de ésta página.

Impresoras 3D Witbox Go! de BQ. Hemos paquetizado el software (Zetup) para trabajar con la impresora, de tal forma que se puede instalar el mismo en los equipos que lo requieran sin tener que hacerlo a mano....

Nuevo: Makeblock para Linux nativo incorporado como solución en nuestros Vitalinux. Más información en el apartado correspondiente de ésta página.

Nuevas placas Arduino. Se puede actualizar al IDE Arduino 1.8.8 y se añade soporte por defecto para la placa Intel Curie Boards (hay que añadirla a mano posteriormente ya que requiere de una instalación manual)

Nuevo: ArduinoBlocks para Linux. 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 diferentes 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

mLink Además de la opción para trabajar con Scratch 2.0 y mblock clásico (siguiente apartado), podemos usar la nueva forma: con "mLink y scratch 3.0":https://www.mblock.cc/en-us/download. Ojo, ésta forma es para trabajar con scratch online y solo válida para equipos con arquitectura de 64 bits!

Actualización Febrero 2018: Se ha actualizado el software a la "versión 4.0.4 de mblock":http://www.mblock.cc/previous-versions (disponible en vitalinux como vx-dga-l-mblock-last), de forma que ahora si podemos instalar el software en dispositivos de 32 bits. Parece que ésta versión (la 4.0.4) parece que presenta algún problema para cargar el programa en una placa arduino por cable (para resolver éste problema, se puede instalar la versión anterior 4.0.0 que la podemos encontrar en el paquete vx-dga-l-mblock-1.0-2) La conexión a mBot funciona sin problemas.

Desde Marzo de 2017, además de la solución disponible hasta ahora de usar ScratchX, podemos usar la aplicación nativa desarrollada para Linux. Así pues tendremos dos opciones, recomendando por funcionalidad la primera:

  1. Si optamos por usar MakeBlock (aplicación nativa), no tendremos mas que instalar el paquete vx-dga-l-mblock ideservice o mejor aún el vx-dga-l-mblock-last que nos configurará un acceso directo y alguna cosita más...o como siempre indicar por soporte su instalación desatendida. Algunas particularidades sobre ésta solución:
    • Solo disponible para equipos de 64 bits
    • Podemos hacer uso de la interfaz Wireless de 2.4Ghz (el pincho) para poder integrar y comunicarnos con el robot sin cables (ojo, si queremos actualizar el firmware del mbot deberemos usar el cable...como pasa para otros sistemas
      MakeBlockVitalinux
    • Si no sabes como conectar el mbot con la nueva versión 4.0.4:
  2. Usar una aplicación para Google Chrome como hemos hecho 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
  3. Si queremos conectarlo con la versión web para Mblock desde la página (https://ide.mblock.cc/), primero debemos instalar en nuestros equipos Vitalinux el programa que hay en Vitalinux Play llamado Mlink for Mblock, (se instala de manera rápida). Antes de abrir el programa on line debemos arrancar la aplicación en nuestro equipo y así podremos conectar el robot para cargar las programaciones.
MLink for mblock.png
Nota: Tal como indicamos en el siguiente apartado sobre Bitbloq, es posible que dentro de poco se pueda también programar el robot usando dicha aplicación!

Microbit

Las Placas Microbit se programan "desde la página correspondiente":https://makecode.microbit.org/.

En Vitalinux las placas por defecto funcionan sin problemas para poder cargar el programa que hemos realizado siguiendo los mismos pasos clásicos:

  1. Descargar el programa -> Fichero .hex
  2. Conecta la placa por usb. Aparecerá como si fuera un pincho extraíble
  3. Copiarlo a la placa. Para ello simplemente pega (arrastra) el archivo anterior en la placa, usando el enlace al dispositivo que se ha creado antes
  4. Una vez que se copie, parecerá que se desconecta el dispositivo y se vuelve a cargar. Lo que hace es reiniciarse con el programa ya cargado y espera que le cargues otro si quieres

Por otro lado, si lo que quieres es poder cargar directamente a la placa (sin pasar por descargar el .hex y copiarlo a la placa), lo puedes hacer, pero ojo que necesitas algo más según incian en la página oficial

Porgrama Directo a Placa
  1. Debes usar Chrome o Chromium (no se puede desde Firefox ya que no se ha hecho extensión para el mismo)
  2. Es necesario actualizar el firmware a una versión igual o superior a la 0249. Por ejemplo, la placa que teníamos venía con la 0241. Para verlo "consulta el fichero DETAILS":lhttps://makecode.microbit.org/device/usb/webusb/troubleshoot. En ésa misma página se indica cómo actualizar el firmware...muy sencillo.
    Comprobando versión de Firmware
  3. Se debe añadir una regla en udev para que chrome tenga permiso para acceder a dicha placa, pero eso ya te lo hemos hecho nosotros, no te preocupes :-).

BitBloq - Web2Board (Zumbox y mas...)

Vitalinux 2.0 (18.04): Ya no es necesario instalar nada en el equipo para trabajar con bitbloq, que es online. Lo que es importante es que se haga desde el navegador Chromium o Google Chrome (requisito versión superior a 90, y en nuestro caso vamos a la última), pudiendo usar la placa sin instalar ningún agente o aplicación.

Vitalinux 2.0 (18.04): Web2board se puede instalar ahora en 18.04 (distro base de Vitalinux 18.04), mediante el paquete qssweb2board, con lo que podríamos hacerlo funcionar sin problemas. Recuerda que para que funcione la carga (una vez instalado y reiniciado el equipo la primera vez), debes lanzar el Launcher de Web2board que se encargará de comunicar con la placa. El lanzador lo encontrarás en Menú->Accesorios, o mejor aún, con ctrl+espacio y escribiendo qssweb2board

Pero hay que tener cuidado con la arquitectura del sistema operativo:

  • La solución de qssweb2board SOLO FUNCIONA PARA 64 bits
  • Y para 32 BITS?. Los desarrolladores no han proporcionado la versión de 32 bits, así que nos quedará la opción de añadir la app correspondiente al navegador y activar la compilación online en la cuenta de bitbloq, como nos pasará si lo queremos usar desde los VX-1.0:
  • También informaros de que no es necesario instalar ningún programa para utilizar la placa del Kit Zum Junior, solo hay que conectarla y carga la programación.

Vitalinux 1.0 (14.04): Como ya hemos comentado la placa Zumbox y otras funcionaban sin problemas en Vitalinux hasta la últlima actualización de web2board. Sin embargo se puede seguir usando, con las siguientes configuraciones:

  1. Instalar la "app de Chrome correspondiente":https://chrome.google.com/webstore/detail/bitbloq/ddpdpmibfdhifigignfdiggfbcmfblfj?hl=es
  2. Activar la compilación online en la cuenta de bitbloq

El primer punto lo podemos automatizar nosotros....la activación de la compilación se tiene que hacer en la cuenta de bitbloq

Se usará el programa web "BitBloq":http://bitbloq.bq.com (Recordar que es necesario lo anterior)

BitBloq Offline

También es posible instalar la versión Offline de Bitbloq. Desde BQ nos recomiendan siempre usar la versión online (la offline ya está sin continuidad) 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 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...

  • En el caso de Vitalinux 2.0 (18.04), usaremos el web2board nuevo (qssweb2board), que nos debería valer para offline y online
  • En el caso de Vitalinux 1.0(14.04), usaremos el web2board antiguo. Ojo, web2board antiguo solo para hacer uso de bitbloq offline, el online requiere el nuevo (ver más arriba).Podemos hacerlo todo simplemente instalando el paquete vx-dga-l-web2board-bq, que nos instalará web2board antiguo y el lanzador correspondiente (RECUERDA, SOLO PARA OFFLINE!)
  1. 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

Nota Final: Indicar que parece que se podrá programar los robots mBot con Bitbloq...no sabemos aún de experiencias.

Impresoras 3D Witbox Go! de BQ

BQ proporciona el software Zetup para trabajar con dichas impresoras. Como dicho software se debe descargar e instalar a mano desde la web del fabricante, hemos paquetizado el mismo para poder instalarlo directamente desde Synaptic (o el gestor de paquetes que uses), pero sobre todo para poder instalarlo de forma desatendida en aquellos equipos que nos indiqueis. El paquete se llama: vx-dga-l-zetup-bq


ArduinoBlocks

Como alternativa sencilla y a la vez potente para programar placas de Arduino con bloques, hemos descubierto esta aplicación. ArduinoBlocks. Es una aplicación online, por lo que siempre requiere conexión a internet. A cambio la vamos a tener permanentemente actualizada.

Podemos instalarlo desde Vitalinux Play o desde Synaptic (vx-dga-l-arduinoblocks). Al descargarlo se instala en nuestro equipo un programa llamado ArduinoBlocks Connector que sirve para comunicar la aplicación online con la placa arduino que conectemos en nuestro equipo.

ArduinoblocksVitalinuxPlay.png

Al arrancar este programa, también se nos abrirá automáticamente el navegador con la página abierta de la [aplicación online http://www.arduinoblocks.com/].

Albertarduinoblocks.png

Podemos registrarnos o usar su versión demo.

Una vez dentro de la aplicación, solo habremos de seleccionar el puerto USB en el que tengamos conectada nuestra placa y a funcionar.

Elegir puerto para la placa


La aplicación permite en todo momento ver el código asociado al programa que estamos haciendo, así como descargarlo en un fichero *.ino, ejecutable desde Arduino IDE.

Codigo visible y descargable

Como siempre, si queréis una instalación masiva de forma remota en varios equipos de vuestro centro, podéis canalizarla a través de soporte.

Arduino Cloud e Internet de las Cosas (IoT)

Arduino además de hardware, y el software Arduino IDE para PC, también pone a disposición de las personas que quieran registrarse una Aplicación web con los siguientes servicios:

  • Arduino Cloud
  • IoT Cloud: para trabajar IoT con placas de arduino.
  • Web Editor: igual que el Arduino IDE pero en versión web
  • Manager for Linux
Servicios disponibles desde arduino.cc

Desde vitalinux siempre recomendamos usar la versión de Escritorio del Arduino IDE para evitar problemas de conectividad y para evitar registrar al alumnado. No obstante, por si alguien quiere trabajar en Arduino Cloud (por ejemplo en los proyectos de IoT es necesario utilizar la aplicación IoT Cloud, que solo está disponible desde la aplicación web) es necesario previamente descargar un software en el equipo llamado Arduino Create Agent.

Hemos habilitado en Vitalinux Play una forma sencilla de instalarlo en un equipo individual. Se instala de igual forma que cualquier otro programa desde el Vitalinux Play, en la flecha de arriba a la derecha.

Instalararduinocloud.png

Una vez instalado, hay que lanzar la aplicación. Se instala en el menú Sonido y Video, si bien es mucho más fácil usar Albert y empezar a escribir el nombre.

Albertardujinocreateagent.png

En ese momento nos aparecerá un icono abajo a la derecha, junto al reloj. Desde allí podremos activarlo y pausarlo para cuando lo necesitemos en los proyectos.

Agenteactivado.png

Como siempre, si queréis una instalación masiva de forma remota en varios equipos de vuestro centro, podéis canalizarla a través de soporte.

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/

http://www.arduinoblocks.com/