Buenas, quería saber si ya es posible programar el mBot con Linux. Lo compré en diciembre y entonces no existía la posibilidad de hacerlo. He buscado mucho pero no encuentro nada concluyente.
Hoy he visto algo de ScratchX ... pero no me termina de funcionar. Me gustaría que me confirmaran si es posible utilizarlo con scratchX bajo linux y si saldrá mBlock para linux.

Yo trabajo siempre con linux y me vendría estupendamente alguna solución.
Muchas gracias

Buenas, quería saber si ya es posible programar el mBot con Linux. Lo compré en diciembre y entonces no existía la posibilidad de hacerlo. He buscado mucho pero no encuentro nada concluyente. Hoy he visto algo de ScratchX ... pero no me termina de funcionar. Me gustaría que me confirmaran si es posible utilizarlo con scratchX bajo linux y si saldrá mBlock para linux. Yo trabajo siempre con linux y me vendría estupendamente alguna solución. Muchas gracias
editado 27 Nov '16 a las 5:30 pm

Buenas @davidsanlo

Efectivamente de momento no hay nada desarrollado para linux. Una alternativa que nos comentan algunos usuarios sería instalarlo a través de una máquina virtual o usar ScratchX como comentas que has intentado y que si nos han confirmado que funciona bajo linux

Pero te pongo paso a paso como usar el mBot en Linux con ScratchX a ver si puedes hacer que te funcione.

Nota: ScratchX funciona en Windows, OSX, Linux y ChromeOS

1- Instalar la extensión de mBot desde Chrome Web Store

Abrir el navegador Chrome y acceder a la siguiente URL

https://chrome.google.com/webstore

En la caja de búsqueda escribir mbot y una vez localizada hacer click en "Añadirla a Chrome"

56e13caf89168.png

2- Ejecutar la extensión instalada

Para ello hay que acceder al cajón de aplicaciones de Chrome. Puedes hacerlo tecleando lo siguiente en la barra de direcciones del navegador:

chrome://apps/

56e13d26ec636.png

  1. Ejecutar la aplicación Makeblock mBot
  2. Selecciona el modo con el que has conectado a tu mBot (Bluetooth, 2.4g o cable USB) y haz click en connect
  3. Ya puedes acceder a ScratchX desde el botón verde Open ScratchX

3- Jugar con ScratchX

Una vez abierta la interfaz de ScratchX podrás probar el mBot con el programa de ejemplo por defecto usando las teclas de tu teclado.

56e13effb958e.png

Ten en cuenta que la extensión de Makeblock mBot para ScratchX es una extensión todavía en modo experimental y puede que algunos bloques no funcionen o no lo hagan adecuadamente

Buenas @davidsanlo Efectivamente de momento no hay nada desarrollado para linux. Una alternativa que nos comentan algunos usuarios sería instalarlo a través de una máquina virtual o usar ScratchX como comentas que has intentado y que si nos han confirmado que funciona bajo **linux** Pero te pongo paso a paso como **usar el mBot en Linux con ScratchX** a ver si puedes hacer que te funcione. > _Nota:_ ScratchX funciona en Windows, OSX, Linux y ChromeOS 1- Instalar la extensión de mBot desde Chrome Web Store ------------------ Abrir el navegador Chrome y acceder a la siguiente URL [https://chrome.google.com/webstore](https://chrome.google.com/webstore) En la caja de búsqueda escribir **mbot** y una vez localizada hacer click en **"Añadirla a Chrome"** ![56e13caf89168.png](serve/attachment&path=56e13caf89168.png) 2- Ejecutar la extensión instalada ------------------ Para ello hay que acceder al cajón de aplicaciones de Chrome. Puedes hacerlo tecleando lo siguiente en la barra de direcciones del navegador: [chrome://apps/](chrome://apps/) ![56e13d26ec636.png](serve/attachment&path=56e13d26ec636.png) 1. Ejecutar la aplicación **Makeblock mBot** 2. Selecciona el modo con el que has conectado a tu mBot (Bluetooth, 2.4g o cable USB) y haz click en _**connect**_ 3. Ya puedes acceder a ScratchX desde el botón verde _**Open ScratchX**_ 3- Jugar con ScratchX ------------------ Una vez abierta la interfaz de ScratchX podrás probar el mBot con el programa de ejemplo por defecto usando las teclas de tu teclado. ![56e13effb958e.png](serve/attachment&path=56e13effb958e.png) > Ten en cuenta que la extensión de **Makeblock mBot para ScratchX** es una extensión todavía en modo experimental y puede que algunos bloques no funcionen o no lo hagan adecuadamente

Muchas gracias por tu aclaración.

He seguido tus pasos y en windows me funciona perfectamente, pero en linux el botón conenct no me hace caso.

Me reconoce el puerto (/dev/ttyUSB= USB2.0-Serial).

Alguna idea?

Gracias de nuevo

Muchas gracias por tu aclaración. He seguido tus pasos y en windows me funciona perfectamente, pero en linux el botón conenct no me hace caso. Me reconoce el puerto (/dev/ttyUSB= USB2.0-Serial). Alguna idea? Gracias de nuevo

Muchas gracias por tu aclaración.

He seguido tus pasos y en windows me funciona perfectamente, pero en linux el botón conenct no me hace caso.

Me reconoce el puerto (/dev/ttyUSB= USB2.0-Serial).

Alguna idea?

Gracias de nuevo

Un par de dudas.:

¿ sabes con seguridad si ese es el puerto asignado al mBot ? probando a desconectar el cable

¿ Has probado con bluetooth o 2.4G ?

Por otra parte hay un usuario que ha conseguido que funcione el mBlock en linux utilizando Wine

Paso 1. Instalar mBlock en linux mediante wine

Lo primero que tienes que conseguir es hacer que arranque el mBlock en linux usando wine, pero en ese punto verás que no te funciona la conexión con el mBot, sólo el propio programa.

Paso 2. Hacer que funcione la conexión entre mBlock <-> mBot ...

Para solucionar la conexión con el mBot te copio y pego los pasos que propone este usuario:

In the end I needed three different steps:

added a udev rule to create a symlink as mbotUSB for the mBot's serial usb connection

added a symlink entry for mbotUSB (instead of ttyUSB?) to com1 in wine's dosdevices folder

added a key in wine's registry under Hardware\Devicemap\Serialcomm called "Serial0" with a string value of "COM1"

step one solves the problem of being connected variously as ttyUSB0, ttyUSB1, etc. at different times

step two makes the device available in wine

step three just makes the the com port detectable to mBlock b/c of how it's probably looking for com ports via AIRSerial::getAvailable() function

you can look in SerialManager.as (which further filters the list from AIRSerial on just ports with a "COM" prefix) and other mBlock source files for more info as well, but the adobe air code is not available of course

hope that helps

brent

desde: http://forum.makeblock.cc/t/mblock-working-with-mbot-on-linux-but-not-wireless/3198/6

>Muchas gracias por tu aclaración. >He seguido tus pasos y en windows me funciona perfectamente, pero en linux el botón conenct no me hace caso. >Me reconoce el puerto (/dev/ttyUSB= USB2.0-Serial). >Alguna idea? >Gracias de nuevo Un par de dudas.: ¿ sabes con seguridad si ese es el puerto asignado al mBot ? probando a desconectar el cable ¿ Has probado con bluetooth o 2.4G ? Por otra parte hay un usuario que ha conseguido que funcione el **mBlock en linux utilizando Wine** ### Paso 1. Instalar mBlock en linux mediante wine Lo primero que tienes que conseguir es hacer que arranque el mBlock en linux usando wine, pero en ese punto verás que no te funciona la conexión con el mBot, sólo el propio programa. ### Paso 2. Hacer que funcione la conexión entre mBlock <-> mBot ... Para solucionar la conexión con el mBot te copio y pego los pasos que propone este usuario: > In the end I needed three different steps: > added a udev rule to create a symlink as mbotUSB for the mBot's serial usb connection > added a symlink entry for mbotUSB (instead of ttyUSB?) to com1 in wine's dosdevices folder > added a key in wine's registry under Hardware\Devicemap\Serialcomm called "Serial0" with a string value of "COM1" > step one solves the problem of being connected variously as ttyUSB0, ttyUSB1, etc. at different times > step two makes the device available in wine > step three just makes the the com port detectable to mBlock b/c of how it's probably looking for com ports via AIRSerial::getAvailable() function > you can look in SerialManager.as (which further filters the list from AIRSerial on just ports with a "COM" prefix) and other mBlock source files for more info as well, but the adobe air code is not available of course > hope that helps > brent > desde: [http://forum.makeblock.cc/t/mblock-working-with-mbot-on-linux-but-not-wireless/3198/6](http://forum.makeblock.cc/t/mblock-working-with-mbot-on-linux-but-not-wireless/3198/6) >

Vive!!
Al fin anda en linux.
Las instrucciones para instalarlo mediante wine no fui capaz de seguirlas, pero tus preguntas me hicieron pensar...

El puerto era correcto, al desenchufar el mbot desaparecía y al volverlo a conectar volvía a apatecer, pero no me hacía caso el botón de Connect.

Pensé que podría ser cuestión de permisos en el archivo ttyUSB0. Lo cambié y funcionó.

Ya sólo me quedaba añadir mi usuario al grupo dialup para que tuviera permiso siempre en ese archivo, y listo.

La información de esto último la saqué de Aquí .

Así que muchas gracias por tu ayuda.

Vive!! Al fin anda en linux. Las instrucciones para instalarlo mediante wine no fui capaz de seguirlas, pero tus preguntas me hicieron pensar... El puerto era correcto, al desenchufar el mbot desaparecía y al volverlo a conectar volvía a apatecer, pero no me hacía caso el botón de Connect. Pensé que podría ser cuestión de permisos en el archivo ttyUSB0. Lo cambié y funcionó. Ya sólo me quedaba añadir mi usuario al grupo dialup para que tuviera permiso siempre en ese archivo, y listo. La información de esto último la saqué de [Aquí](http://www.ubuntu-es.org/node/169052#.VunfY_D2GrU) . Así que muchas gracias por tu ayuda.

Buenas, de nuevo.

Ahora me surge una nueva duda, ¿se puede grabar el programa realizado con ScratchX en el mbot para que funcione de manera autónoma? No encuentro la manera.

Gracias

Buenas, de nuevo. Ahora me surge una nueva duda, ¿se puede grabar el programa realizado con ScratchX en el mbot para que funcione de manera autónoma? No encuentro la manera. Gracias

Te confirmo que de momento no se puede.

Lo que hace la extensión es interactuar con el firmware del mBot enviando los comandos que tiene que ejecutar pero todavía no han implementado la opción de poder grabarlo en la placa.

Una opción aunque laboriosa sería la siguiente.:

  • Guardar el proyecto realizado en ScratchX (se guarda con extensión .sbx)
  • Abrir el proyecto guardado con mBlock con la intención de traducir el código de Scratch a código de Arduino
  • Traducirlo haciendo click en Editar -> Modo Arduino
  • Copias/Pegas el código generado en el entorno de Arduino de linux y lo subes a tu mBot

Nota: Ten en cuenta que deberás tener descargadas las Librerías de Makeblock para Arduino

Te confirmo que de momento no se puede. Lo que hace la extensión es interactuar con el firmware del mBot enviando los comandos que tiene que ejecutar pero todavía no han implementado la opción de poder grabarlo en la placa. Una opción aunque laboriosa sería la siguiente.: - Guardar el proyecto realizado en ScratchX (se guarda con extensión .sbx) - Abrir el proyecto guardado con mBlock con la intención de traducir el código de Scratch a código de Arduino - Traducirlo haciendo click en Editar -> Modo Arduino - Copias/Pegas el código generado en el entorno de Arduino de linux y lo subes a tu mBot Nota: Ten en cuenta que deberás tener descargadas las [Librerías de Makeblock para Arduino](http://www.makeblock.es/foro/topic/22/nuevas-librerias-de-makeblock-para-arduino/post-25#post-25)

Confirmado, mbot funciona con Linux!!!!

Seguí tus instrucciones y al final funcionó.

Aunque intenté seguir los pasos había muchas cosas que no entendía y recurrí a Internet de nuevo.

Cuento lo que hice por si le sirve a alguien.

1.Creé una regla en en /etc/udev/rules.d/archivo.rules
Dentro escribí:
KERNEL=="ttyUSB0", SUBSYSTEM=="tty", SUBSYSTEMS=="usb-serial", \ ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="mbotUSB"

Los datos los saqué escribiendo
david@despacho:~$ dmesg | tail
david@despacho:~$ udevadm info -a -n /dev/ttyUSB0
https://wiki.archlinux.org/index.php/Udev_%28Espa%C3%B1ol%29

2.- Añadí mi usuario al grupo dialout
david@despacho:~$ sudo adduser <your_username> dialout

3.- Creé el enlace simbólico hacia COM1
david@despacho:~$ ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

4.- Edité el registro de .wine
david@despacho:~$ gedit ~/.wine/system.reg

Escribí al final del archivo:
[Hardware\\Devicemap\\Serialcomm] 1231984861
"Serial0"="COM1"

http://onetransistor.blogspot.com.es/2015/12/wine-serial-port-linux.html

A mi me funciona!! Puede que algo esté mal o pueda mejorarse, pero es lo que he conseguido con la ayuda del foro, del traductor de google y mis paseos por internet. smile

Ahora puedo utilizar el mbot con cable, crear un programa en mblock y subirlo al robot para que lo ejecute de forma autónoma sin cable.

Un saludo

<iframe width="800" height="400" src="//www.youtube.com/embed/EBja1eFGkJ8" frameborder="0" allowfullscreen=""></iframe>

### Confirmado, mbot funciona con Linux!!!! Seguí tus instrucciones y al final funcionó. Aunque intenté seguir los pasos había muchas cosas que no entendía y recurrí a Internet de nuevo. Cuento lo que hice por si le sirve a alguien. **1.Creé una regla en en /etc/udev/rules.d/archivo.rules** Dentro escribí: KERNEL=="ttyUSB0", SUBSYSTEM=="tty", SUBSYSTEMS=="usb-serial", \ ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="mbotUSB" Los datos los saqué escribiendo david@despacho:~$ dmesg | tail david@despacho:~$ udevadm info -a -n /dev/ttyUSB0 https://wiki.archlinux.org/index.php/Udev_%28Espa%C3%B1ol%29 **2.- Añadí mi usuario al grupo dialout** david@despacho:~$ sudo adduser <your_username> dialout **3.- Creé el enlace simbólico hacia COM1** david@despacho:~$ ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1 **4.- Edité el registro de .wine** david@despacho:~$ gedit ~/.wine/system.reg Escribí al final del archivo: [Hardware\\\Devicemap\\\Serialcomm] 1231984861 "Serial0"="COM1" http://onetransistor.blogspot.com.es/2015/12/wine-serial-port-linux.html A mi me funciona!! Puede que algo esté mal o pueda mejorarse, pero es lo que he conseguido con la ayuda del foro, del traductor de google y mis paseos por internet. :) Ahora puedo utilizar el mbot con cable, crear un programa en mblock y subirlo al robot para que lo ejecute de forma autónoma sin cable. Un saludo https://www.youtube.com/watch?v=EBja1eFGkJ8
editado 21 Apr '16 a las 9:54 pm

Añadiendo a la respuesta de davidsanio

Todo lo que dices es correcto, pero antes hay que añadir al usuario al grupo tty. Si no lo añades, no puedes encontrar la información necesaria para añadir la regla en /etc/udev/rules.d/archivo.rules

El comando para añadir al grupo tty es:

$ sudo usermod -a -G tty tu_usuario

Gracias.

Añadiendo a la respuesta de davidsanio Todo lo que dices es correcto, pero antes hay que añadir al usuario al grupo tty. Si no lo añades, no puedes encontrar la información necesaria para añadir la regla en /etc/udev/rules.d/archivo.rules El comando para añadir al grupo tty es: $ sudo usermod -a -G tty tu_usuario Gracias.
editado 6 Nov '16 a las 9:50 am

Quiero comprarme uno, pero si con un arduino uno no me reconoce el puerto (con arduino IDE no tengo problema)...
Con el scratchx me pone error en descarga y con el wine no se como configurarlo, si es que hay que configurarlo.

Gracias por vuestra ayuda

Quiero comprarme uno, pero si con un arduino uno no me reconoce el puerto (con arduino IDE no tengo problema)... Con el scratchx me pone error en descarga y con el wine no se como configurarlo, si es que hay que configurarlo. Gracias por vuestra ayuda

Gracias a vuestros aportes he creado un script de Linux para hacer que mBlock funcione en Linux. Los pasos a seguir son:

  1. Asegurarse que tienes instalado el Wine y el mBlock para Windows en Wine
  2. Descargar el script mblock_wine.sh
  3. Darle permisos de ejecución al script:
    chmod u+x mblock_wine.sh
    
  4. Conectar el mBot al USB
  5. Ejecutar el script con el sudo:
    sudo ./mblock_wine.sh
    
  6. Reiniciar el PC

Esto debería funcionar.
Saludos

Gracias a vuestros aportes he creado un script de Linux para hacer que mBlock funcione en Linux. Los pasos a seguir son: 1. Asegurarse que tienes instalado el Wine y el mBlock para Windows en Wine 2. Descargar el script [mblock_wine.sh](https://drive.google.com/file/d/0B58DOx8Q4jGhYll3WjNmSmtrSGs/view?usp=sharing) 3. Darle permisos de ejecución al script: ```` chmod u+x mblock_wine.sh ```` 4. Conectar el mBot al USB 5. Ejecutar el script con el sudo: ```` sudo ./mblock_wine.sh ```` 6. Reiniciar el PC Esto debería funcionar. Saludos
editado 6 Dec '16 a las 10:50 am

Gracias por todos los aportes, he conseguido hacerlo funcionar en ubuntu.
Lo que no soy capaz es de subir en modo arduino un programa. A alguien le ha funcionado?
Gracias
Esto es lo que me muestra:
C:\Program Files (x86)\mBlock\Arduino\arduino_debug.exe --upload --board arduino:avr:mega:cpu=atmega2560 --port COM1 --verbose --preserve-temp-files C:\users\juan\Application Data\com.makeblock.Scratch3.3.8\Local Store\scratchTemp\project_U__d11_3\project_U__d11_3.ino
Loading configuration...
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:377)
at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:160)
at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:147)
at processing.app.windows.Platform.getFolderPathFromRegistry(Platform.java:70)
at processing.app.windows.Platform.recoverSettingsFolderPath(Platform.java:55)
at processing.app.windows.Platform.init(Platform.java:50)
at processing.app.Base.guardedMain(Base.java:153)
at processing.app.Base.main(Base.java:137)

Gracias por todos los aportes, he conseguido hacerlo funcionar en ubuntu. Lo que no soy capaz es de subir en modo arduino un programa. A alguien le ha funcionado? Gracias Esto es lo que me muestra: C:\Program Files (x86)\mBlock\Arduino\arduino_debug.exe --upload --board arduino:avr:mega:cpu=atmega2560 --port COM1 --verbose --preserve-temp-files C:\users\juan\Application Data\com.makeblock.Scratch3.3.8\Local Store\scratchTemp\project_U______d11_3\project_U______d11_3.ino Loading configuration... org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:377) at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:160) at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:147) at processing.app.windows.Platform.getFolderPathFromRegistry(Platform.java:70) at processing.app.windows.Platform.recoverSettingsFolderPath(Platform.java:55) at processing.app.windows.Platform.init(Platform.java:50) at processing.app.Base.guardedMain(Base.java:153) at processing.app.Base.main(Base.java:137)

Buenos días:

Perdonad las molestias, pero antes de escribir al foro con una pregunta quería verificar si lo que me sucede tiene que ver con que estoy con Linux, o pasaría también en windows.

Gracias a este hilo (muchas gracias a todos por los aportes) he conseguido funcionar, tanto en modo conectado USB, como subir el código al mbot y que funcione de manera autónoma sin cable.

Mi problema es que, cuando estoy conectado con USB, para hacer pruebas con el programa, no consigo que el sensor de de distancia por ultrasonidos, ni el de seguir líneas me den datos.

Itento pintarlos con bloques "say", mostrar la variable, pero siempre me dan "0" smile

Si compilo el proyecto, el robot funciona y sí que me lee los datos correctamente de los sensores.

Pero para ir haciendo pruebas rápidas (y enseñárselo a mi hijo) me gustaría poder ver los valores de los sensores sin tener que compilar.

En el foro en inglés de Makeblock sí que hay gente que dice que a veces los sensores no son muy fiables cuando se está conectado con USB. Pero es que a mí no me funcionan nunca jamás smile ¿Os pasa también a vosotros? ¿Tendrá que ver con utilizar linux?

¡¡Muchas gracias por vuestra ayuda!!

Buenos días: Perdonad las molestias, pero antes de escribir al foro con una pregunta quería verificar si lo que me sucede tiene que ver con que estoy con Linux, o pasaría también en windows. Gracias a este hilo (muchas gracias a todos por los aportes) he conseguido funcionar, tanto en modo conectado USB, como subir el código al mbot y que funcione de manera autónoma sin cable. Mi problema es que, cuando estoy conectado con USB, para hacer pruebas con el programa, no consigo que el sensor de de distancia por ultrasonidos, ni el de seguir líneas me den datos. Itento pintarlos con bloques "say", mostrar la variable, pero siempre me dan "0" :( Si compilo el proyecto, el robot funciona y sí que me lee los datos correctamente de los sensores. Pero para ir haciendo pruebas rápidas (y enseñárselo a mi hijo) me gustaría poder ver los valores de los sensores sin tener que compilar. En el foro en inglés de Makeblock sí que hay gente que dice que a veces los sensores no son muy fiables cuando se está conectado con USB. Pero es que a mí no me funcionan nunca jamás :( ¿Os pasa también a vosotros? ¿Tendrá que ver con utilizar linux? ¡¡Muchas gracias por vuestra ayuda!!
5.01k
vistas
14
respuestas
10
seguidores
vista previa (en vivo)
introduzca al menos un 10 caracteres
Advertencia: Mencionaste a %MENTIONS%, pero ellos no pueden ver el mensaje y no serán notificados
Guardando...
Guardado
Todos los posteos de este tema serán borrados ?
Borrador pendiente ... Click para continuar editando
Descartar borrador