Hola a todos.
Me presento, soy Juan Ignacio Odriozola, vivo en Uruguay y soy docente en el área de electrónica/informática. En estos días me he interiorizado un poco en el mBot y he comenzado a escribir un simulador para dicho robot. En esta primera entrega, les dejo un par de videos del simulador ejecutando algoritmos simples de seguimiento de línea y evasión de obstáculos.

59b3d2a92b4b8.png

https://www.youtube.com/watch?v=JgEZkf1Qqsg

59b3d2f402da8.png

https://www.youtube.com/watch?v=Qn1Z0HRpTrg

Siempre es mejor el robot que el simulador... pero en clases numerosas o para probar determinadas ideas.. un simulador a mano es de gran ayuda.

Saludos

Hola a todos. Me presento, soy Juan Ignacio Odriozola, vivo en Uruguay y soy docente en el área de electrónica/informática. En estos días me he interiorizado un poco en el mBot y he comenzado a escribir un simulador para dicho robot. En esta primera entrega, les dejo un par de videos del simulador ejecutando algoritmos simples de seguimiento de línea y evasión de obstáculos. ![59b3d2a92b4b8.png](serve/attachment&path=59b3d2a92b4b8.png) https://www.youtube.com/watch?v=JgEZkf1Qqsg ![59b3d2f402da8.png](serve/attachment&path=59b3d2f402da8.png) https://www.youtube.com/watch?v=Qn1Z0HRpTrg Siempre es mejor el robot que el simulador... pero en clases numerosas o para probar determinadas ideas.. un simulador a mano es de gran ayuda. Saludos

Juan

editado 9 Sep '17 a las 12:42 pm

Bravo! Los simuladores siempre son de gran ayuda, y por los vídeos parece que funciona perfectamente.

Permanezco atento a las evoluciones del proyecto.

Enhorabuena!

Dani S.

Bravo! Los simuladores siempre son de gran ayuda, y por los vídeos parece que funciona perfectamente. Permanezco atento a las evoluciones del proyecto. Enhorabuena! Dani S.

Gracias por los comentarios.

En estos días he estado midiendo las velocidades del mBot cuando se alimenta con 6V y con 3.7V e intentando que la velocidad desarrollada en el simulador sea lo mas parecida a la del mBot real, y ajustando algunos otros detalles. Las primeras pruebas me han dejado bastante contento smile

El simulador abre un puerto serie y espera por comandos desde scratch como si fuera el sketch de arduino que corre en el mBot.
Mi programa decodifica los paquetes que scratch envia, los procesa y actua o reporta estado según el comando recibido.

Por ahora solo estoy actuando ante unos pocos comandos, a saber, movimiento de motores, lectura de seguidores de línea y sensor de ultrasonido.

Para comunicar ambos programas hay un par de opciones:

a) Una es utilizando un emulador de puertos serie (Virtual Serial Port Emulator: VSPE), mediante el cual se crean un par de puertos serie y se enlazan como si estuvieran unidos por un cable.
b) Otra es conectar dos conversores usb a serie físicos y cablearlos entre si.

Una vez conectados entre si los puertos serie, mi simulador se conecta a uno de ellos y Scratch al otro. Teniendo esa conexión relizada lo que se ordene en scratch se ejecuta en el simlador instantaneamente, como si tubieramos un mBot sobre la mesa.

Por ahora tengo tres pistas y unas paredes.. que distan de ser un laberinto, pero mi enfoque en esta etapa es mas la comunicación y la escala... luego veremos smile

Gracias por los comentarios. En estos días he estado midiendo las velocidades del mBot cuando se alimenta con 6V y con 3.7V e intentando que la velocidad desarrollada en el simulador sea lo mas parecida a la del mBot real, y ajustando algunos otros detalles. Las primeras pruebas me han dejado bastante contento :) El simulador abre un puerto serie y espera por comandos desde scratch como si fuera el sketch de arduino que corre en el mBot. Mi programa decodifica los paquetes que scratch envia, los procesa y actua o reporta estado según el comando recibido. Por ahora solo estoy actuando ante unos pocos comandos, a saber, movimiento de motores, lectura de seguidores de línea y sensor de ultrasonido. Para comunicar ambos programas hay un par de opciones: a) Una es utilizando un emulador de puertos serie (Virtual Serial Port Emulator: VSPE), mediante el cual se crean un par de puertos serie y se enlazan como si estuvieran unidos por un cable. b) Otra es conectar dos conversores usb a serie físicos y cablearlos entre si. Una vez conectados entre si los puertos serie, mi simulador se conecta a uno de ellos y Scratch al otro. Teniendo esa conexión relizada lo que se ordene en scratch se ejecuta en el simlador instantaneamente, como si tubieramos un mBot sobre la mesa. Por ahora tengo tres pistas y unas paredes.. que distan de ser un laberinto, pero mi enfoque en esta etapa es mas la comunicación y la escala... luego veremos :)

Juan

editado 13 Sep '17 a las 6:03 pm

Gracias.

Es que el alcance que puede llegar a tener es interesantemente enorme smile

Hay algunas cosas simples de simular, por ejemplo el control remoto por infrarojos, es simplemente mapear algunas teclas del teclado y devolverlas en los comandos que leen si se recibió algo por el receptro infrarojo. Leds de colores, sonidos no lo veo tan complicado. Pero por ejemplo, variar un poco el mBot: indicar donde ubicar el sensor seguidor de lineas, por ejemplo de frente o costado para detectar obstáculos cercanos... pared derecha y algoritmo mediante salir de un laberinto.. me da que pensar. Terminar con un "editor" de como quiero y que quiero conectar al mBot suena ambicioso y bastante complejo, en esta etapa.

Luego, hay otros sensores que se pueden simular pero dependen mucho del entorno... por ejemplo un sensor de luz o temperatura smile

Supongo que el camino que voy a seguir es implementar todo lo que sea simple y medianamente útil.

Luego una interfase gráfica mínima y supongo la opción de poder ingresar pistas propias y luego algo parecido para laberintos. Lo mas facil es un conjunto prefijado, pero creo que resulta mas atractivo poder hacer las pistas y laberintos.

Sin querer tocar el cielo con las manos y proyectar algo que no voy a llegar a implementar, espero encotrar un justo medio entre lo que puede ser lindo de implementar pero difucultoso y de poco uso y lo que puede ser práctico y divertido de implementar y probar... y naturalmente, el tiempo que no me sobra y que hay que dedicarle a cada unas de estas cosas... que si no me apasionaran, no las haría.

Gracias. Es que el alcance que puede llegar a tener es interesantemente enorme :) Hay algunas cosas simples de simular, por ejemplo el control remoto por infrarojos, es simplemente mapear algunas teclas del teclado y devolverlas en los comandos que leen si se recibió algo por el receptro infrarojo. Leds de colores, sonidos no lo veo tan complicado. Pero por ejemplo, variar un poco el mBot: indicar donde ubicar el sensor seguidor de lineas, por ejemplo de frente o costado para detectar obstáculos cercanos... pared derecha y algoritmo mediante salir de un laberinto.. me da que pensar. Terminar con un "editor" de como quiero y que quiero conectar al mBot suena ambicioso y bastante complejo, en esta etapa. Luego, hay otros sensores que se pueden simular pero dependen mucho del entorno... por ejemplo un sensor de luz o temperatura :) Supongo que el camino que voy a seguir es implementar todo lo que sea simple y medianamente útil. Luego una interfase gráfica mínima y supongo la opción de poder ingresar pistas propias y luego algo parecido para laberintos. Lo mas facil es un conjunto prefijado, pero creo que resulta mas atractivo poder hacer las pistas y laberintos. Sin querer tocar el cielo con las manos y proyectar algo que no voy a llegar a implementar, espero encotrar un justo medio entre lo que puede ser lindo de implementar pero difucultoso y de poco uso y lo que puede ser práctico y divertido de implementar y probar... y naturalmente, el tiempo que no me sobra y que hay que dedicarle a cada unas de estas cosas... que si no me apasionaran, no las haría.

Juan

¿Habrá más gente desarrollando simuladores para mBot? Quizá trabajando juntos podéis abarcar más...

Yo sólo tenía anotado el simulador de Stephane Massart pero no lo he probado. Quizá te pueda servir de algo, lo puedes descargar aquí aunque supongo que está en desarrollo.

Desde luego el proyecto puede ser colosal... mucho ánimo!

Dani S.

¿Habrá más gente desarrollando simuladores para mBot? Quizá trabajando juntos podéis abarcar más... Yo sólo tenía anotado el simulador de Stephane Massart pero no lo he probado. Quizá te pueda servir de algo, [lo puedes descargar aquí](http://www.iraifrance.com/vupmbot) aunque supongo que está en desarrollo. Desde luego el proyecto puede ser colosal... mucho ánimo! Dani S.

Gracias por el dato. Hace poco que entré en contacto con este aparatito y desconozco la variedad de opciones, módulos y variantes de la familia...

En lo que he estado estos días basicamente se resume a poder cargar una imagen como "piso" que puede servir para un seguidor de líneas o para darle un entorno personalizado al área en la que se mueve el robot. Además, se puede cargar un archivo de texto que describe las paredes de un laberinto. Por ahora estoy limintando a 40x40 caracteres que terminan en un laberinto de hasta 4metros por 4 metros. Un menú permitirá elegir piso y laberinto, uno u otro o ambos.

59bbf81870b18.png

las primeras tres líneas del archivo indican las coordenadas X,Y dentro del laberinto dode ubicar al mBot, el tercer número indica la orientación. Digamos que tal cual lo vemos en el texto, 0 indica hacia arriba, 90 mBot dirigido a la derecha, 180 hacia abajo.. y asi sucesivamente.
En el texto cualquier caracter que no sea "espacio" será transformado en pared.

Capturas de pantalla del laberinto definido por el texto indicado anteriormente:

59bbf9039fe0f.png

59bbf93b51838.png

Gracias por el dato. Hace poco que entré en contacto con este aparatito y desconozco la variedad de opciones, módulos y variantes de la familia... En lo que he estado estos días basicamente se resume a poder cargar una imagen como "piso" que puede servir para un seguidor de líneas o para darle un entorno personalizado al área en la que se mueve el robot. Además, se puede cargar un archivo de texto que describe las paredes de un laberinto. Por ahora estoy limintando a 40x40 caracteres que terminan en un laberinto de hasta 4metros por 4 metros. Un menú permitirá elegir piso y laberinto, uno u otro o ambos. ![59bbf81870b18.png](serve/attachment&path=59bbf81870b18.png) las primeras tres líneas del archivo indican las coordenadas X,Y dentro del laberinto dode ubicar al mBot, el tercer número indica la orientación. Digamos que tal cual lo vemos en el texto, 0 indica hacia arriba, 90 mBot dirigido a la derecha, 180 hacia abajo.. y asi sucesivamente. En el texto cualquier caracter que no sea "espacio" será transformado en pared. Capturas de pantalla del laberinto definido por el texto indicado anteriormente: ![59bbf9039fe0f.png](serve/attachment&path=59bbf9039fe0f.png) ![59bbf93b51838.png](serve/attachment&path=59bbf93b51838.png)

Juan

Bueno, luego de algunas modificaciones, de las que llevan más tiempo pero .. que no hay más remedio he incluído una interfase gráfica y funcionalidad mínima como para que un usuario normal y no uno como yo que tengo acceso al código pueda utilizar el emulador.. o al menos, eso espero.

Asi que, he aquí la primer distribución del mBot.exe emulador/simulador, como uds. prefieran.

guia de usuario:
https://www.dropbox.com/s/9z5wtvrfa17tt3o/gu%C3%ADa%20de%20usuario.pdf?dl=0

carpeta comprimida:
https://www.dropbox.com/s/yoao21cieviitun/emulador%20mBot.zip?dl=0

Sin tener grandes pretenciones ni prestaciones, espero que les resulte útil y que se diviertan smile

Juan

Bueno, luego de algunas modificaciones, de las que llevan más tiempo pero .. que no hay más remedio he incluído una interfase gráfica y funcionalidad mínima como para que un usuario normal y no uno como yo que tengo acceso al código pueda utilizar el emulador.. o al menos, eso espero. Asi que, he aquí la **primer distribución del mBot.exe** emulador/simulador, como uds. prefieran. **guia de usuario**: https://www.dropbox.com/s/9z5wtvrfa17tt3o/gu%C3%ADa%20de%20usuario.pdf?dl=0 **carpeta comprimida**: https://www.dropbox.com/s/yoao21cieviitun/emulador%20mBot.zip?dl=0 Sin tener grandes pretenciones ni prestaciones, espero que les resulte útil y que se diviertan :) Juan

Juan

editado 18 Oct '17 a las 1:08 am

Alguien que vio uno de mis vídeos me envió un enlace a otro video, respecto a otro simulador, que parece estar excelente.

<iframe width="800" height="400" src="//www.youtube.com/embed/vfwxKjOr-7o" frameborder="0" allowfullscreen=""></iframe>

Creo que lo mas indicado es que se merezca un post adicional y que esta información no quede escondida en este hilo.

Supongo algún moderador puede hacerse cargo.

Saludos

Juan

Alguien que vio uno de mis vídeos me envió un enlace a otro video, respecto a otro simulador, que parece estar excelente. https://youtu.be/vfwxKjOr-7o Creo que lo mas indicado es que se merezca un post adicional y que esta información no quede escondida en este hilo. Supongo algún moderador puede hacerse cargo. Saludos Juan

Juan

Hola,

Hunter Chiou ha reunido en una entrada de su blog los proyectos de simulación de mBot que están en marcha, incluyendo el tuyo Juan Ignacio.

Recomiendo usar el traductor smile

https://touchclassroom.blogspot.com.es/2017/12/mbot-simulator-mblock-mbot-simulation.html?spref=fb

Hola, Hunter Chiou ha reunido en una entrada de su blog los proyectos de simulación de mBot que están en marcha, incluyendo el tuyo Juan Ignacio. Recomiendo usar el traductor :D https://touchclassroom.blogspot.com.es/2017/12/mbot-simulator-mblock-mbot-simulation.html?spref=fb

He hecho un instalador para mi simulador:

https://drive.google.com/file/d/1rZ0QgmIEXUU2dJNo6haKpOHX-HrjowHC/view?usp=sharing

este instalador se encarga de sugerir e instalar openAL y vcredist_x86 de 2015, que son necesarias para el correcto funcionamiento del simulador. También se necesita una tarjeta gráfica que soporte DX11.

He hecho un instalador para mi simulador: https://drive.google.com/file/d/1rZ0QgmIEXUU2dJNo6haKpOHX-HrjowHC/view?usp=sharing este instalador se encarga de sugerir e instalar openAL y vcredist_x86 de 2015, que son necesarias para el correcto funcionamiento del simulador. También se necesita una tarjeta gráfica que soporte DX11.

Juan

Retomando un poco mi simulador...

https://youtu.be/4FtAIySHfTA

Estoy dotando al simulador la capacidad de reubicar los sensores..
Las primeras pruebas vienen bien, pero como siempre faltan ajustar algunas cosas y mejorar otras...

Luego generaré un instalador nuevo, cuando tenga algo que me satisfaga más smile

Juan

Retomando un poco mi simulador... https://youtu.be/4FtAIySHfTA Estoy dotando al simulador la capacidad de reubicar los sensores.. Las primeras pruebas vienen bien, pero como siempre faltan ajustar algunas cosas y mejorar otras... Luego generaré un instalador nuevo, cuando tenga algo que me satisfaga más :) Juan

Juan

Bueno, ahora los objetos Seguidor de línea y de Ultrasonido no solo se ven, sino que colisionan con el entorno, lo cual me está dejando un poco mas conforme..., bueno, bastante mas conforme.

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

Juan

Bueno, ahora los objetos Seguidor de línea y de Ultrasonido no solo se ven, sino que colisionan con el entorno, lo cual me está dejando un poco mas conforme..., bueno, bastante mas conforme. https://youtu.be/WDkVessSdXY Juan

Juan

Actualizacion:
5af0bc6b641b7.png

Esta es la última versión del simulador:

https://drive.google.com/file/d/1lNR8apbZjHiurkDwJgv_LSC8WXTu09J4/view?usp=sharing

Ahora se puede configurar la posición de los sensores de ultrasonido y siguelíneas a una de tres posiciones predefinidas.
En la carpeta de instalación hay un archivo de texto plano llamado mBot.ini en el que se puede modificar el texto desplegado y las coordenadas x,y,z asi como las orientaciones en dichos ejes.
Las unidades son decímetros respecto al centro del mBot y los ángulos en grados.

El mBot con los sensores reubicados:

5af0bcdf07978.png

En dicho archivo, además, hay dos factores denominados multiplicador6v y multiplicador3con7v que son utilizados internamente por el programa para que exista cierta correspondencia con el mBot real y lo simulado.
Dichos valores fueron tomados de medidas hechas con un mBot que indicaron que a velocidad 100 y alimentado con 6V se desplaza unos 18 centímetros por segundo y si la alimentación es de 3.7V existe un factor de corrección del 80% respecto a dicho valor.
En caso de necesitar cambiarlos ahora están disponibles.

Se incluyen además del siguelineas y un evasor de obstáculos un algoritmo de salida por la pared derecha para pruebas
En la carpeta de instalación: normalmente c:\archivos de programa(x86)\mBotSim
hay subcarpetas, en la llamada Scripts están los archivos .sb2, ver carpeta: manual por una "guia de usuario" en pdf

saludos

Juan

Actualizacion: ![5af0bc6b641b7.png](serve/attachment&path=5af0bc6b641b7.png) Esta es la última versión del simulador: https://drive.google.com/file/d/1lNR8apbZjHiurkDwJgv_LSC8WXTu09J4/view?usp=sharing Ahora se puede configurar la posición de los sensores de ultrasonido y siguelíneas a una de tres posiciones predefinidas. En la carpeta de instalación hay un archivo de texto plano llamado mBot.ini en el que se puede modificar el texto desplegado y las coordenadas x,y,z asi como las orientaciones en dichos ejes. Las unidades son decímetros respecto al centro del mBot y los ángulos en grados. El mBot con los sensores reubicados: ![5af0bcdf07978.png](serve/attachment&path=5af0bcdf07978.png) En dicho archivo, además, hay dos factores denominados multiplicador6v y multiplicador3con7v que son utilizados internamente por el programa para que exista cierta correspondencia con el mBot real y lo simulado. Dichos valores fueron tomados de medidas hechas con un mBot que indicaron que a velocidad 100 y alimentado con 6V se desplaza unos 18 centímetros por segundo y si la alimentación es de 3.7V existe un factor de corrección del 80% respecto a dicho valor. En caso de necesitar cambiarlos ahora están disponibles. Se incluyen además del siguelineas y un evasor de obstáculos un algoritmo de salida por la pared derecha para pruebas En la carpeta de instalación: normalmente c:\archivos de programa(x86)\mBotSim hay subcarpetas, en la llamada Scripts están los archivos .sb2, ver carpeta: manual por una "guia de usuario" en pdf saludos Juan

Juan

Bueno, creo que ya es hora de dedicarle un poco de tiempo a la apariencia del mBot en mi simulador...

5af1e5085885f.png

Le falta, pero está un poco mejor smile

Juan

Bueno, creo que ya es hora de dedicarle un poco de tiempo a la apariencia del mBot en mi simulador... ![5af1e5085885f.png](serve/attachment&path=5af1e5085885f.png) Le falta, pero está un poco mejor :) Juan

Juan

editado 8 May '18 a las 7:00 pm

Bueno, esta es la última version disponible:

https://drive.google.com/open?id=1rD2J0IMv8yju-4eIAve84Sp2Rz0XF9Bl

va quedando asi...

5af39e94a8d3b.png

además de la nueva apariencia, ahora al estar enlazado el simulador a mBlock se muestra la cantidad total de paquetes recibidos y la cantidad de paquetes recibidos por segundo.

saludos

Juan

Bueno, esta es la última version disponible: https://drive.google.com/open?id=1rD2J0IMv8yju-4eIAve84Sp2Rz0XF9Bl va quedando asi... ![5af39e94a8d3b.png](serve/attachment&path=5af39e94a8d3b.png) además de la nueva apariencia, ahora al estar enlazado el simulador a mBlock se muestra la cantidad total de paquetes recibidos y la cantidad de paquetes recibidos por segundo. saludos Juan

Juan

editado 21 May '18 a las 6:47 pm

Interesante trabajo, lo voy a probar.
Salu2

Interesante trabajo, lo voy a probar. Salu2

Iniciación a la Robótica Educativa con mBot de Makeblock https://goo.gl/nuKX4W

12
9.86k
vistas
21
respuestas
5
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