Proyecto Robot SUMO con CEXDUINO y LEGO NXT Edu?!

0
0

Ya son varias las ocasiones en que mis alumnos de DDuC (Diseño Digital con Microcontroladores) en la Facultad de Ingeniería de la Universidad Distrital me han sorprendido con los resultados de sus diseños de Robot para competencias de Sumo, elaborados integrando la CEXDUINO y los kits educativos de robótica LEGO disponibles en los laboratorios de la Facultad.

Con el fin de compartir los pormenores de estos desarrollos con la comunidad cex, les solicito amablemente respondan en detalle las preguntas relacionadas con los siguientes tópicos (no olviden que nos agradaría ver los videos, fotos y código si lo desean compartir, así que no olviden incluir los enlaces! Gracias!):

  1.  Cómo se puede comunicar la board CEXduino con el controlador NXT del kit LEGO y por qué se hace de la manera indicada?
  2. El robot se controla remotamente bien mediante otra cexduino y radios Xbee (ZigBee) o bien mediante aplicación en celular y tarjeta bluetooth H-05 ó 06.  En cuales situaciones se usa uno u otro tipo de control remoto y por qué?
  3. Cómo se desarrolla una app para comunicarse con una tarjeta CEXduino mediante bluetooth?
  4. Cómo se puede medir el nivel de batería del robot de sumo y publicar dicha información en la Web?
  5. Qué ventajas y desventajas dirían ustedes que presenta el hacer este tipo de robots integrando NXT y CEXduino?
  • You must to post comments
0
0
  1. En este proyecto se decidió realizar la comunicación entre la NXT y la CEXduino por medio de un PWM generado por la CEXduino, el cual controlaba el brillo o intensidad de un LED, después la NXT de lego usaba su sensor de luz para realizar las respectivas acciones. También se pudo usar un sonido generado por un buzzer y el sensor de sonido de la NXT. También con un LED RGB se podía mediante un pwm variar el color, y con un sensor de color de la NXT sensar el LED. Se eligió este método para la comunicación debido a que era bastante sencilla de realizar.
  2. La tarjeta Xbee son tarjetas inalambricas que permiten la comunicación entre ellas, permiten comunicar a los Pics sin necesidad de una comunicación serial. Las ventajas de estas tarjetas son que pueden trabajar con alta cantidad de datos, baja latencia. Mientras que la comunicación con aplicación bluetooth y un modulo HC 06, aunque efectivos, se configuran con la CEXduino como comunicación serial, ademas de esto el modulo HC 06 suele presentar problemas con el dispositivo bluetooth.
  3. La comunicación realizada mediante la aplicación bluetooth es bastante sencilla, con la ayuda de cualquier desarrollador de android, como ejemplo app inventor, permiten generalmente establecer conexión con otros dispositivos bluetooth. La aplicación envía datos al modulo bluetooth dependiendo de cual sea el movimiento requerido, y el modulo bluetooth mediante comunicación serial, sus puertos RX TX, se comunica con la CEXduino.

A continuación se da un link para un vídeo en Youtube que muestra algunas competencias desarrolladas por los estudiantes de la Universidad Distrital:

Att: Nicolas Andres Melo.

Estudiante Ingeniera Electronica.

  • You must to post comments
0
0

Teniendo en cuenta la pregunta de ¿cómo se desarrolla una app para comunicarse con una tarjeta CEXduino mediante bluetooth?

se destaca la iniciativa de CEX.com.co de facilitarles en préstamo las tarjetas CEXduino para el trabajo durante el semestre sin costo alguno. Este proceso fue posible debido a la inmensa colaboración del docente Francisco Zamora

Para la comunicación entre un dispositivo con modulo bluetooth (se le puede agregar sencillamente a la tarjeta de desarrollo CEXduino), se deberá crear una aplicación en alguno de los diversos entornos para desarrollar aplicaciones, en este caso para el desarrollo de la app se utilizo el programa online APP INVENTOR. Esta aplicación le enviara datos mediante el modulo bluetooth a la tarjeta de desarrollo CEXduino utilizando la comunicación serial.

 

Para desarrollar la aplicación se deberá tener en cuenta en primer lugar el diseño de la interfaz de interacción con el usuario, la cual se desarrolla deslizando pequeños iconos dependiendo la aplicación, por ejemplo, un botón, un campo de texto, una lista de selección, una barra desplegable, entre otros.

Posteriormente se deberá realizar la “programación” para cada uno de los elementos adicionados en la etapa de interfaz. Debido a la experiencia con el entorno de APP INVENTOR la programación fue muy sencilla, debido a que se deberá únicamente arrastrar unas piezas que contienen las instrucciones de los elementos de la aplicación, este proceso de “programación” es como armar un rompecabezas.

A continuacion se muestra en un documente (enlace) como se desarrolla la conexión con la tarjeta CEXduino.

ConexionAPPinventor

Jorge Ronseria-Facultad de Ingeniería de la Universidad Distrital

  • You must to post comments
0
0

El Kit lego minstorms adquirido en la facultad cuenta con un dispositivo llamado NXT que puede ser programado, este “cerebro” del robot sumo a armar controla todas las funciones de motores y sensores, cuenta con sensores de tacto, de sonido, de luz, y ultrasonido, en este caso fue usado el sensor de luz. Lo pensado fue mediante el uso de PWM, variando el ciclo útil se varia la intensidad de un led; El NXT conectado al sensor de luz lo que hará sera detectar cambios de intensidad de luz, ante cualquier cambio los motores de las llantas reaccionaran de diferente manera,  se usaron 4 tipos de intensidades cada una daba la orden de ir hacia adelante, atrás, derecha o izquierda.Imagen sensor de luz.

En este caso usamos un modulo HC-06 primero que todo por costos, este modulo resulta mas económico, pero debe configurarse mediante configuración serial usando usart mientras que los xbee poseen la capacidad de comunicarse entre ellas y no usan comunicación serial, y son mas usados en aplicaciones con alto trafico de datos.Modulo HC-06.

La aplicación usada fue creada en appinventor, un entorno de desarrollo para android, creando botones que mediante eventos “click” envía datos en este caso al Hc-06 mediante bluethoth, y asi con comunicacion serial desde el HC-06 hacer llegar la información a la tarjeta CEX.Aplicacion android.

La aplicacion Appinventor tambien da la posibilidad de crear una base de datos en la red y sensar los clicks en la aplicacion y tiempo de uso, de esta manera tener mayor control de la bateria.

La tarjeta CEX, el kit lego minstorms  y como software MPLABx con XC8 brindan una variedad de posibilidades, no hay limites en lo que se desee realizar, siendo esta la mayor ventaja.

Robot Bender frontal.

Robot bender lateral.

Raul Sebastian Carreño R.

20132005117.

Ing. Electronica.

Universidad Distrital Francisco Jose de Caldas.

 

 

 

  • You must to post comments
0
0

Buen día,

 

Respondiendo a las pregunta,

  1.  ¿Cómo se puede comunicar la board CEXduino con el controlador NXT del kit LEGO y por qué se hace de la manera indicada?

Rta/ Para la aplicación del proyecto, que consistía en controlar por medio del Bluetooth el micro que a su vez controlaba el ladrillo inteligente. La mejor manera para lograr este control, entre el ladrillo y la CEX  fue por medio del sensor de luz del LEGO KIT. Por medio del microcontrolador, generamos por PWM, 4 diferentes intensidades de luz (Variando ciclo útil), que de forma experimental medimos con el sensor, para así programar el ladrillo para que este reaccionara de la forma en que queríamos, es decir, si el led encendido de forma remota con una intensidad “X”, entonces el robot andaría hacia adelante, y así con cada una de las 3 restantes intensidades, a cada una le corresponde un sentido de giro del motor. De esta forma fue que nosotros controlamos el NXT por medio de la CEXduino.

2.El robot se controla remotamente bien mediante otra cexduino y radios Xbee (ZigBee) o bien mediante aplicación en celular y tarjeta bluetooth H-05 ó 06.  En cuales situaciones se usa uno u otro tipo de control remoto y por qué?

Rta/ La diferencia entre los distintos módulos Bluetooth, es que por ejemplo el HC-06 y 05 son módulos económicos y por eso tienen un rango de cobertura limitado de un poco más de 10 metros, mientras que otro Bluetooth tienen rangos de alcance mucho más alto pero por ello tambien son mucho más costosos. Para este proyecto, al ver las condiciones concluimos que no era necesario un Bluetooth sofisticado por lo que usamos un HC-06.

  1. Cómo se desarrolla una App para comunicarse con una tarjeta CEXduino mediante bluetooth?

Rta/Desarrollar una APP para realizar una conexión Bluetooth es relativamente sencillo, ya que por medio de desarrolladores como APPINVENTOR que facilitan mucho las cosas con diagramas de bloques y una interfaz gráfica amigable con el usuario. Es de resaltar que antes de realizar la programación es muy convenientes hacer la interfaz gráfica, así el usuario aclarara pequeñas dudas y tendrá hasta nuevas ideas con respecto a la lógica inicial.

  1. Cómo se puede medir el nivel de batería del robot de sumo y publicar dicha información en la Web?

Rta/ En nuestro caso el nivel de batería lo medimos por medio de un ADC configurado en el micro, el cual indicaba cuando el robot estaba con la batería por debajo del 80% y por debajo del 50%.Esto era visible por medio del LED RGB incorporado en la CEXduino Iluminaba verde cuando estaba en menos de 80% el nivel de batería e iluminaba rojo cuando estaba con menos de la mitad de batería. Estos datos fueron subidos a la red gracias a un servicio de APPINVENTOR llamado TinyWebDB, servicio que aunque limitado por 1000 entradas era de gran utilidad para la aplicación de este proyecto.

  1. Qué ventajas y desventajas dirían ustedes que presenta el hacer este tipo de robots integrando NXT y CEXduino?

Rta/ Personalmente diría que la gran desventaja, es que hacer una conexión directa entre el ladrillo inteligente NXT y la tarjeta CEXduino no es nada sencillo, ya que a modo de comentar mi experiencia con este tema, yo investigue y el NXT se comunica con sus motores y sensores por I2C, pero al intentar realizar esta conexión con el micro, este solo era capaz de controlar el puerto l cual se estaba haciendo la conexión, por lo que no me fue posible controlarlos todos y optamos por utilizar el sensor de luz e intensidades de luz generadas por el microcontrolador a partir de PWM.

Es de resaltar la labor y gran ayuda de parte del docente Francisco Javier Zamora, quien nos facilito las tarjeta CEXduino sin ningún costo para poder experimentar y realizar proyectos como el multimetro, el generador de señales (PWM), y el zumo controlador por Bluetooth.

Gracias por la atención prestada,

 

Cordial saludo,
Cristian Leonardo Gonzalez Maldonado
Estudiante de Ingeniería electrónica de la universidad distrital

  • You must to post comments
0
0
  1. Cómo se puede comunicar la board CEXduino con el controlador NXT del kit LEGO y por qué se hace de la manera indicada?

    Rta/ Para poder realizar esta comunicación entre la CEXduino y el LEGO NXT se decide utilizar un  PWM generado CEXduino, Porque? Porque por medio de este PWM es posible realizar variaciones de intensidad en el brillo de un Led. Por que el brillo de un Led? Por que el Kit de Lego cuenta con un sensor de luz el cual es capaz de captar las variaciones en la intensidad de dicho Led. A que conlleva estas variaciones? Pues el kit lego cuenta con la posibilidad de utilizar  un Software de programación para la NXT (Disponible Aqui) con el cual se puede hacer uso de estas variaciones para indicar al Robot Sumo que hacer.

  2. El robot se controla remotamente bien mediante otra cexduino y radios Xbee (ZigBee) o bien mediante aplicación en celular y tarjeta bluetooth H-05 ó 06.  En cuales situaciones se usa uno u otro tipo de control remoto y por qué?

    Rta/ En primer lugar las tarjetas Xbee son tarjetas inalámbricas que permiten la comunicación entre ellas, esto significa que es posible crear una comunicación entre PICs de una manera sencilla y confiable, pues estas tarjetas puede ser programadas directamente desde el PC esto puede brindar cierta seguridad a la comunicación, pero esto significa un mayor costo. Por otro lado el utilizar modulo Bluetooth HC-05 significa un costo menor pero conlleva a realizar un trabajo un poco mas extenso pues es necesario configurar este modulo para su uso con la CEXduino como una comunicación serial, es decir este modulo se configura desde nuestra tarjeta y no directamente.

  3. Cómo se desarrolla una app para comunicarse con una tarjeta CEXduino mediante Bluetooth?

    Rta/ El desarrollar un APP que permita una comunicación con la CEXduino es muy sencillo, basta con utilizar cualquier desarrollador Android (Se recomienda APP Inventor por su sencillez e interfaz amigable con el usuario) pues generalmente permiten programar el uso del Bluetooth  del dispositivo donde se vaya a instalar la APP, es decir que la APP hace uso del Bluetooth del dispositivo donde se encuentre (Ej. Un Smartphone) para sincronizarse con el modulo HC-05 ya configurado con la CEXduino. Esto que permite? En nuestro caso permite que por este medio nuestra APP pueda manipular el PWM generado por la CEXduino es decir que es posible utilizar esta APP para entregar instrucciones “Manualmente” a nuestro Robot Sumo.

  4. Cómo se puede medir el nivel de batería del robot de sumo y publicar dicha información en la Web?

    Rta/ Para publicar esta información en la Web y cualquier otra que se desee es necesario crear un Base de Datos para poder guardar dicha información, para esto en el siguiente enlace se encuentra la manera en que se realizo dicha Base de Datos junto con su relación con la APP creada: https://www.youtube.com/watch?v=IjXJtV8w7Xo&t=611s, en lo que se refiere al nivel de batería lo que se hizo fue conectar la APP simultáneamente con el NXT del kit Lego para así mandar la pregunta por la APP al NXT de cuanta batería tiene. Esto con que Fin? Principalmente para separar papeles, es decir dejar la CEXduino como la encargada de comunicar al NXT ( y por tanto al Robot Sumo) instrucciones de comportamiento por medio de PWM, mientras que la APP es la encargada de comunicarle a la CEXduino que instrucciones quiere el usuario que ejecute la NXT al mismo tiempo que pregunta a la NXT cual es su nivel de batería mostrado este dato al usuario y almacenándolo en una Base de Datos.

  5. Qué ventajas y desventajas dirían ustedes que presenta el hacer este tipo de robots integrando NXT y CEXduino?

    Rta/ La principal desventaja radica en que Lego entrega a sus clientes todo lo necesario para hacer Robot Sumos sin la necesidad de acudir a otros para hacerlos funcionar, Esto que significa? Los Robot Sumo hechos con Kits Legos NO están pensados en ser controlados por nada mas que la NXT perteneciente a ellos, es decir el agregar un controlador diferente (CEXduino) puede crear diversos inconvenientes únicos (Mala sincronización, Movimientos erróneos, instrucciones mal ejecutadas, etc.) que son fácilmente eludibles si simplemente se usa el NXT como es debido. Aun así aquí también radica la mayor ventaja de este tipo de proyectos, pues lo que se busca realmente es mejorar nuestros conocimientos, pensar en soluciones a problemáticas que aparecen de un momento a otro, el utilizar cada elemento en nuestro poder y lograr nuestra meta superando cada inconveniente que aparezca enfrente nuestro y decir “Si es posible hacerlo” .

 

 

Daniel Santiago Paz.

Estudiante Ingeniera Electronica.

Universidad Distrital Francisco José de Caldas

  • You must to post comments
0
0
  • ¿Cómo se puede comunicar la board CEXduino con el controlador NXT del kit LEGO y por qué se hace de la manera indicada?

Para el  proyecto la comunicación entre el controlador NXT y la board CEXduino  se realizó a partir del módulo CCP (Capture,Compare,PWM) específicamente el módulo PWM; este método fue el más apropiado ya que el KIT LEGO MINDSTORMS que fueron proporcionados por la universidad contenían sensores que entre ellos se destaca el sensor de luz. Además al realizar la implementación del PWM con la board la salida estaba destinada a un diodo LED cuya intensidad estaba proporcionalmente relacionada con el ciclo útil (Duty Cycle) del PWM.  La variación se da cuando el usuario presiona en la aplicación creada los botones de movimiento a partir de esto la aplicación por comunicación serial (EUSART) con bluetooth HC-05 envía a la CEX los bits específicos para que el programa lo identifique y cambie el ciclo útil del PWM.

Por otro lado, el sensor de luz al identificar  la intensidad del brillo del LED (entre más aislados estén el LED junto con el sensor de luz más eficiente es la comunicación)  además dependiendo del rango que se encuentre la energía, se puede programar el controlador NXT (usando el software LEGO MINDSTORMS) para que cumpla las acciones que usted desee. Este método es sencillo de utilizar, igualmente que en lo que respecta al código e implementación ya que la CEXduino está diseñadas para que sus pines sean fáciles de controlar. (La de salida del PWM se encuentra en el JUMPER 3 de la board, siendo el pin de la mitad del JUMPER3).

Los siguientes enlaces es para verificacion de los pines y un video de como configurar el PWM

Esquema CEXduino

Video: Confiuracion PWM

 

 


 

  • El robot se controla remotamente bien mediante otra cexduino y radios Xbee (ZigBee) o bien mediante aplicación en celular y tarjeta bluetooth H-05 ó 06.  En cuales situaciones se usa uno u otro tipo de control remoto y por qué?

La Xbee(ZigBee) está dado por un bajo consumo de potencia comparado con el modulo Bluetooth HC-05 o HC-06 esto significa que el Xbee durante la mayoría del tiempo estará “dormido” y solo se activa cuando sea necesario transmitir algún dato, mientras que los módulos Bluetooth su configuración ininterrumpido hace que sea viable para transmitir mayor  cantidad de datos. El radio Xbee puede ser utilizado en nuestro proyecto cuando queramos saber en cierto intervalo de tiempo nuestra batería, mientras que los módulos bluetooth estarían formando parte de la comunicación mas rápido con mayor cantidad de datos y asimismo con mayor variación de información por ejemplo el movimiento.


 

  • Cómo se desarrolla una App para comunicarse con una tarjeta CEXduino mediante bluetooth?

Para desarrollar una aplicación en Android existe una página desarrollada por Google y MIT (Massachussetts Institute of Technology) donde a partir de un código sencillo se puede programar y asimismo generar una aplicación con extensión .APK.

Link APPInventor2 :Appinventor

Para este proyecto la comunicación entre la board y el Bluetooth se realizó a partir de una herramienta dada en la paleta de desarrollo de App Inventor2 llamada Bluetooth Client, a partir de esta cuando se anexa a la pantalla de nuestra aplicación ya estaríamos en la capacidad de ir a los bloques de código y empezar a utilizar las funciones predeterminadas por la herramienta, como lo son por ejemplo la de estar en constante evaluación si hay bytes para recibir, como también generar la conexión entre dos dispositivos Bluetooth.


 

  • Cómo se puede medir el nivel de batería del robot de sumo y publicar dicha información en la Web?

El controlador NXT contiene una función predeterminada en la que muestra el nivel de batería del dicho controlador, asimismo como AppInventor ha desarrollado una interfaz en conjunto con LEGO, en la paleta de desarrollo se puede encontrar la herramienta de NXTDirectCommands, donde se puede arrastrar a la pantalla como un elemento no visible; ya en los bloques de código, se selecciona y se busca la función de GetBatteryLevel, donde el NXT enviara la información de la batería en milivoltios(mV).

Por otro lado publicar la información obtenida por el NXT y hacer del proyecto con un enfoque en  la IOT (Internet de las cosas) es preciso usar la base de datos que proporciona AppInventor2 llamada TinyWebDB donde esta base de datos es de uso público y es necesario aplicar etiquetas muy específicas para no tener pérdidas de datos. De este modo con el siguiente video podrán observar la aplicación del proyecto y como crear la base de datos TinyWebDB personalizada y como son las bloques de memoria usados para el proyecto.

Video base de datos personalizada y aplicación Proyecto Sumo:

Base de datos personalizada y aplicacion con AppInventor


 

  • Qué ventajas y desventajas dirían ustedes que presenta el hacer este tipo de robots integrando NXT y CEXduino?

La CEXduino tiene la ventaja de traer consigo varios módulos que son versátiles,para este caso el modulo PWM  es uno de ellos dado que en este proyecto significa que con una modulación por ancho de pulso se puede generar una codificación, asimismo como lo mencionaba anteriormente al tener todos los módulos integrados hace que los proyectos sean menos voluminosos y asimismo aprovechar el espacio dado. La mezcla del mundo de los micro controladores (dada por la CEX) y el mundo de la robótica (NXT) es un buen complemento para empezar en un futuro cercano con proyectos más ambiciosos, además que los micro controladores y sus tarjetas de desarrollo pueden facilitar la labor de muchas actividades que antes requería de mayor tiempo.

 

RECOMENDACIONES:

  1. Al implementar el modulo PWM y la comunicación serial, es importante cerciorarse de la configuración del Oscilador sea la correcta, ya que este permite que la configuración del TMR2 (PWM) y de los baudios sean  los indicados para general la señal PWM y la comunicación entre los módulos también sea el correcto (por otro lado generalmente los módulos Bluetooth como el HC-05 y HC-06 vienen predeterminados con 9600 baudios si no es importante que modifiquen a partir de comandos AT como querer trabajar el Bluetooth).
  2. La base de datos es indispensable que sea personalizada ya que si van a utilizar la publica puede llegar el caso en donde una persona de otro lado se tope con la misma etiqueta de su información y pueda sobre escribirla.
  3. Al realizar el Bluetooth Client en AppInventor, es importante estar en constante revisión si sigue conectado los módulos tanto el Bluetooth como el NXT por medio de un CLOCK.
  4. El sensor de luz y el LED con PWM es importante que estén lo mas aislados posibles ya que alguna interferencia entre el sensor y el LED puede ocasionar lecturas erróneas en el programa.

Imagenes y videos del Robot:

Robot y Video

 

Cordial saludo,
Fabio Andres Bombiela Ramirez
Estudiante de Ingeniería electrónica de la Universidad Distrital Francisco Jose de Caldas

  • You must to post comments
Showing 6 results
Your Answer

Please first to submit.