El
sistema de control del robot LEGO NXT fue desarrollado bajo el Entorno de
Desarrollo Integrado Eclipse y el lenguaje de programación java. La
implementación en software consiste en un control manual guiado por el usuario,
y un control automático que esta basado en un sistema difuso para el control de
los motores. El sistema de control comienza con una pantalla de bienvenida que
muestra las opciones para el control: automático (sistema difuso) y manual (Ver
Figura 1).
Figura 1. Inicio del sistema
Nota:
el robot fue probado con una fuente de alimentación externa que proporcionó el
voltaje y la corriente necesaria para encender y poner en funcionamiento el
robot. Usar una fuente de alimentación externa representa una ventaja ya que no
se requiere el uso de baterías.
Control Manual
El
control manual consta de la muestra de los valores que capturan los sensores,
la velocidad de rotación de los motores A, B, C, la cantidad de pasos, la
dirección para los motores y el movimiento de los brazos (Ver Figura 2).
Figura 2. Interfaz de control
manual
En
la Figura 3 se muestra como se imprimen los valores que capturan los sensores:
·
Sensor
Ultrasónico: Retorna la distancia a un objeto.
·
Sensor
de Luz: Retorna la cantidad calibrada y normalizada de luz, 0 indica oscuro y
100 luz intensa.
·
Sensor
de Sonido: Retorna el porcentaje de sonido percibido.
· Sensor
de Toque: Si es presionado se muestra como “Activado”, de lo contrario se muestra
como desactivado.
Figura 3. Sección de lectura de
sensores
En
la Figura 4 se muestra la parte del control de los motores (en este caso de
los motores conectados al puerto A y B que corresponden a la pierna izquierda y
derecha respectivamente, del robot). Se establece una velocidad a cada motor,
se determina el número de pasos y la dirección (hacia adelante o hacia atrás).
La velocidad de los motores se refiere al nivel de potencia en un rango de 0 a
100% que será aplicado a los mismos; si la potencia aplicada es alta (cerca de
100), entonces el motor girará con más fuerza. Con este parámetro se puede
variar la velocidad de los motores.
Figura 4. Sección de control de
motores A y B
Y
finalmente en la Figura 5 se muestra el control sobre los brazos del robot
utilizando el motor C, donde se permite determinar su velocidad y si se
requiere que los brazos se muevan o no.
Figura 5. Sección de control
sobre motor C
El
control sobre los sensores y motores se hizo conectando la interfaz con los
correspondientes métodos de cada sensor. Cada sensor y motor se conecta a un
puerto y es en el programa donde al crear nuevos objetos se inicializan con un
puerto diferente (siempre que corresponda a la conexión en el LEGO). LeJOS NXJ
instala adicionalmente manuales para la programación ya sea sobre el NXT o
desde la PC, en dicha documentación se detalla cada clase, métodos y librerías
necesarias para la programación del LEGO en JAVA.
La ejecución del programa se muestra en el siguiente video:
La ejecución del software y el funcionamiento del LEGO se muestra en el siguiente video:
No hay comentarios:
Publicar un comentario