miércoles, 11 de septiembre de 2019

Utilizar App para cotrolar el Lego Mindstorms NXT por bluetooth

El Lego mindstorms NXT es más que un juguete, es un completo sistema que tiene todo lo necesario para construir, y programar miles de invenciones robóticas. El modelo básico 8527 incluye un brick o cerebro con conexión usb y bluetooth, 3 servomotores, un sensor de color, un sensor de ultrasonidos, sensor de contacto y cientos de piezas para crear. Este modelo salió en el 2006, sin embargo en la actualidad todavía es muy utilizado por su gran versatilidad, se puede crear una invención nueva cada día, por lo que se mantiene vivo y es muy utilizado en escuelas para la enseñanza de construcción, programación y robótica. 
Con un lego común la construcción es parte de la diversión, pero cuando se termina de construir es cuando comienza la nueva diversión. Un lego programable va más allá, permitiendo interacciones más impresionantes, y decidir eventos como: que va pasar, cuando cuando va a pasar, y porque va a pasar.
Por esta razón hay tantos lenguajes de programación para lego como: NXT-G, BricxCC, Next Byte Codes, Not eXactly C, Robolab, ROBOTC, leJOS NXT, Ruby-nxt, NXT-Python , entre otros. Sin embargo, programar en cualquiera de estos requiere decidir cual utilizar y especializarse lo que finalmente puede derivar en estimular las grandes posibilidades de la robótica o el desinterés por parte del usuario por el nivel de especialización requerido.

CONEXIÓN DEL LEGO MINDSTORMS NXT CON UNA APP

Entre las posibilidades de este lego programable, está la conexión bluetooth lo que permite conectar al mismo con cualquier dispositivo android o IOS. Así en el mercado de Google Play han surgido una amplia variedad de apps que permiten esta función. Sin embargo, he notado que las mismas están un poco limitadas,  por lo que me surgió el interés de crear algo más completo y dinámico que permita una seudo-programación a través de una app, sin las complicaciones de un lenguaje de programación, y sin la basta capacidad de un lenguaje de programación  pero manteniendo la estructura lógica de la programación para crear acciones, interacciones, eventos, y disfrutar del robot al instante con pocas posibilidades de error y ampliando las posibilidades de interacción.   

NXT control total




Esta aplicación te permite:

  •  Control de los 3 motores del NXT.
  •  Crear acciones adicionales cuando los motores se muevan, como: encender un color del sensor de color, crear un sonido o un mensaje hablado.
  •  Leer los atributos de color, ultrasonido o sensor táctil.
  •  Crear acciones adicionales cuando el sensor de color, sensor ultrasonido o sensor táctil es
  •   activado.
  •  Usar el robot como espía mirando a través de otro teléfono celular o cámara IP. Tal como si la cámara fuera los ojos del robot y llegar a lugares o zonas que no podríamos ver por la posición que tenemos. Para esto necesita una aplicación de terceros.
  •  Leer los programas dentro del brick NXT y decidir cuándo COMENZAR y PARAR a través del teléfono móvil.

Control de los motores del NXT


Hay 2 controles para los motores. El conjunto Motor BC permite manejar la dirección del robot, arriba, abajo, derecha e izquierda, tiene un slider que permite definir la potencia de este motor. El Control Motor A permite controlar el motor adicional conectado en el puerto A. Cuando se presiona el botón Motor A aparecen las opciones adicionales para el mismo.
Aquí se puede definir el poder del motor A. Y las acciones adicionales cuando se presiona la flecha hacia arriba o hacia abajo las cuales incluyen acciones como:
  • Encender el sensor de color con un color ROJO,VERDE, o AZUL.
  • Generar una frecuencia de sonido entre 200-14000 hz por el tiempo deseado en milisegundos.
  • Crear un sonido de voz a través de un texto escrito.
Asimismo para el control del motor BC se tienen las acciones adicionales siguientes:

Se debe chequear la acción para que sea aplicada. De lo contrario simplemente moverá el motor con la potencia elegida en la pantalla principal.

El vídeo siguiente muestra esta función de la dirección:








Control del sensor de color del NXT



Al presionar el botón COLOR saldrá la pantalla anterior. Se pueden seleccionar acciones para 4 colores reconocidos por el sensor de color: azul (blue), verde (green), amarillo (yellow) y rojo (red).
Cuando hay un objeto cerca del sensor del color con uno de estos colores el robot hará las acciones seleccionadas. Las acciones incluyen:

Sonido de voz (Speech): lo que se coloque en este campo se escuchará en el teléfono cuando se detecte el color.

Acción en el motor A: al presionar sobre la pestaña saldrán opciones de selección para el motor A, hacia delante (forward) o hacia atrás (backward) se selecciona una de ellas y al lado se puede colocar la cantidad en grados que se moverá el motor A. La función esta se da incrementalmente por lo que se nota un retraso cuando se activa.

Acción en el motor BC: al presionar sobre la pestaña saldrán opciones de selección para el motor BC, hacia delante (forward), hacia atrás (backward), derecha (right) o izquierda (left) se selecciona una de ellas y al lado se puede colocar la cantidad en grados que se moverá el conjunto motor BC. 

Sonido: esta acción permite colocar una frecuencia de sonido  en hz entre 200 y 14000hz que son frecuencias audibles por un tiempo determinado en mili segundos.

El siguiente vídeo muestra esta función del sensor de color:







Control del sensor de ultrasonido del NXT



Al presionar el botón ultrasonido saldrá la pantalla anterior, que permite crear acciones cuando el sensor de ultrasonidos detecte un obstáculo dentro de los parámetros establecidos en el rango TOP (máximo) y bottom (mínimo). El sensor debe estar conectado en el puerto 4. Los valores se colocan en centímetros (cm), este permite valores entre 5cm y 2000cm aproximadamente. 
Se pueden crear acciones WITHIN (dentro), ABOVE (fuera) y BELOW (debajo) del rango. 
Por ejemplo si el rango es TOP=100 y BOTTOM=40, un valor mayor de 100 se considera que activa las acciones ABOVE, un valor entre 99 y 41 activa las acciones WITHIN, y un valor debajo de 40 activa las acciones BELOW.

El siguiente vídeo muestra esta función de ultrasonidos:




descargar NXT Control Total


Control del sensor de contacto del NXT



Al presionar el botón TOUCH (contacto) saldrá la pantalla anterior, que permite crear acciones cuando el sensor de contacto es presionado. Además de las acciones mostradas anteriormente, también permite activar la canción deseada dentro del teléfono cuando es presionado el sensor o tocar un sonido interno dentro del brick NXT. Al presionar el botón SELECT MUSIC se abre el directorio del teléfono para seleccionar la canción y cuando se presiona LEGO SOUND se abre el directorio del lego para seleccionar un sonido predeterminado. Las acciones se generarán si esta chequeado el checkbox.

El siguiente vídeo muestra esta función del touch sensor:




descargar NXT Control Total


Control del  NXT como espía con una cámara adicional. Control Cámara IP.


Al presionar el botón SPY ROBOT saldrá la pantalla anterior, que permite manejar los motores A,BC mientras se observa en pantalla lo que esta visualizando una cámara colocada al frente del robot. Esta cámara puede ser otro teléfono celular con cámara el cual debe tener instalada una aplicación de terceros DroidCam o IPWbCam por ejemplo, o un a camara IP. La dirección generada por esta aplicación es colocada en el campo URL camera y se presiona el botón GO IP. Con nuestro teléfono conectado a la misma wifi podemos ver en pantalla lo que tiene al frente nuestro robot aunque el robot este fuera de nuestra vista, y así controlarlo para hacer lo que queramos.

El siguiente vídeo muestra esta función SPY robot:




Activar y desactivar un programa interno del Lego Mindstorms NXT.


Nuestra aplicación permite a través del botón NXT READ FILE leer los archivos de programas almacenados en nuestro Brick NXT y seleccionar un programa especifico que requiera mayor programación hecho con alguno de los programas anteriormente indicados y decidir cuando ejecutarlo con el botón START PROGRAM así como cuando finalizarlo con el botón STOP PROGRAM.

El siguiente vídeo muestra esta función :



1 comentario: