Bloques de programación de LEGO Mindstorms NXT

Bloques de programación de LEGO Mindstorms NXT- Robótica

Para programar los robots de Lego usamos un entorno de programación gráfico llamado NXT, y basado en la insercción de bloques configurables, a continuación vamos a ver los más básicos. Esta es la interfaz del programa:

nxt1

 Dentro de la paleta de herramientas común tenemos estos bloques:

BLOQUE MOVER: Permite mover el robot hacia delante, atras o describiendo una curva. En Puerto selecciono los motores conectados a las ruedas, después selecciona la dirección y si quiero aplicar giro, puedo controlar la potencia y la duracción (número de rotaciones. tiempo en segundos, ilimitado o grados),  recomendamos poner la duración en rotaciones. La última opción del bloque es la opción de Siguiente acción: si ponemos freno al finalizar los motores se detendrán de golpe, mientras que si ponemos flotación, se detendrán con un poco de inercia y la parada será más suave. En la imagen adjunta se aprecia claramente todas las opciones de programación del bloque mover.

bloque-mover      descripcion-mover

 BLOQUE LOOP (BUCLE) 

La herramienta LOOP la utilizaremos siempre que necesitemos repetir muchas veces o indefinidamente órdenes. Podemos repetir las órdenes encerradas dentro del bucle, un número determinado de veces(contador), indefinidadmente, un tiempo determinado(segundos) o dependiendo del valor de un sensor. En el ejemplo de la imagen el robot avanza y gira a la derecha indefinidamente.

bucle1

En el control del bucle marcaremos Siempre.

bucle-descripci%c2%acn

En el siguiente ejemplo el robot avanza y gira a la derecha hasta que el sensor de tacto es presionado.

bucle2

En el control seleccionareos Sensor y el puerto al que lo selecciono. Otro ejemplo podría ser que nuestro robot debiera evitar caer al vacio arriba de una mesa, debemos repetir indefinidamente la rutina en la que el sensor de luz sense el piso para no caernos (el piso siempre da un reflejo de luz superior al vacio), y sólo se podría mover cuando encuentre determinado reflejo en el piso.

bucle-descripci%c2%acn2

BLOQUE ESPERA 

bloque-espera

 Usamos este bloque para ejecutar una acción hasta que alguno de los sensores envie una determinda señal, o simplemente detenemos la ejecución durante un tiempo determindado.En el ejemplo de la imagen, el robot avanza, después esperamos un segundo. continua avanzado pero girando a la derecha hasta que el sensor de contacto es presionado momento en que detenemos el robot.

 bloque-espera21

BLOQUE BIFURCACIÓN (SWTICH)

Este permite bloque definir dos acciones según se cumpla o no una determinada condición (que un sensor envíe una señal, por ejemplo).

bifurcacion1

Si por ejemplo utilizamos el sensor de ultrasonidos para detectar obstáculos, debemos ubicar qué órdenes queremos que se cumplan cuando estamos próximos al obstáculo y qué órdenes queremos que el robot cumpla cuando el sensor no detecta los objetos. De esta forma estaremos tomando una decision cuando se detectan objetos póximos y otra decision cuando existe v ía libre. De la misma manera estaremos tomando siempre diferentes decisiones para los demas sensores (sonidos, luz, y contacto). En la imagen de arriba si estamos a más de 10 cm de cualquier obstáuclo el robot avanza si detecta algún obstáculo a menos de 10 cm retrocede, gira a la drecha y vuelve a avanzar. (Ver abajo configuración del bloque bifurcación para el ejemplo de arriba)

bifurcacion_des

 A continuación os mostramos unos videotutoriales, están en formato flash. Espero les resulte de utilidad.

Para descargar el software sigue este enlace MINDSTORMS NXT 2.0 – Windows

5 comentarios en «Bloques de programación de LEGO Mindstorms NXT»

Deja un comentario