LEGO MINDSTORM

1.0 lego Mindstorm EV3 kit

1.1 Labview parte de un programa

Autor:  Rocio Garcia de la Fuente

Lego Mindstorm es un kit comercial de robótica, cuya filosofía:

  • Parte de un popular juguete de construcción, con piezas intercambiables, que permiten montar de manera sencilla, ya sea siguiendo instrucciones o bien de forma libre, un sistema mecánico capaz de realizar diversas tareas y de ser programado.
  • Dispone de una plataforma de programación basada en iconos, especialmente desarrollada para sus kits de robótica, que de forma intuitiva permite dar vida a los sistemas físicos.

En cuanto a la construcción de un sistema robot con uno estos kit (figura 1.0), no hay mucho de lo que hablar, como en todos los juguetes de LEGO un tutorial gráfico nos indica cómo construir cada uno de los diferentes robots incluidos en la caja. Como este apartado no presenta mayor dificultad, el presente artículo se centrará en la plataforma de programación basada en el entorno de programación Labview (figura 1.1) (acrónimo de Laboratory Virtual Instrument Engineering Workbench) de National Instruments.

El software NI LabVIEW es un entorno de programación gráfica que utiliza íconos, terminales y cables en lugar de texto para programar de una forma más intuitiva. Su principal característica es la facilidad de uso, válido para programadores profesionales como para personas con pocos conocimientos en programación pueden hacer programas relativamente complejos, imposibles para ellos de hacer con lenguajes tradicionales.

Los programas no se escriben, sino que se dibujan, lo que facilita su comprensión. Cuenta con una gran cantidad de bloques pre-diseñados, así la creación del proyecto, con lo cual en vez de estar una gran cantidad de tiempo en programar un dispositivo/bloque, se le permite invertir mucho menos tiempo y dedicarse un poco más en la interfaz gráfica y la interacción con el usuario final. Algo que como veremos está presente en el software de programación de LEGO. Cada programa consta de dos partes diferenciadas:

  1. Panel Frontal: cuando abre un VI (programa) nuevo o existente, aparece la ventana del panel frontal del VI. La ventana del panel frontal es la interfaz de usuario y el resultado final del programa. (figura 1.2)
  2. Paleta de Controles: contiene los controles e indicadores que utiliza para crear el panel frontal. Es el programa propiamente dicho, donde se define su funcionalidad, aquí se colocan íconos que realizan una determinada función y se interconectan para dar sentido a la aplicación. (figura 1.2)

1.2 Labview Front Panel

El software para programar el kit LEGO Mindstorm se puede descargar gratuitamente para distintos sistemas operativos a través del siguiente link: https://www.lego.com/es-es/mindstorms/downloads. Una vez descargado, ocupa 633 Mb, el proceso de instalación es muy sencillo, basta con seguir las instrucciones que aparecen en las sucesivas ventanas de instalación.

Al ejecutar, el programa da opción la opción de realizar un proceso de construcción y programación completamente guiado, que incluye tanto el manual de construcción del robot seleccionado como una guía para la programación final de robot, y por si hubiera habido algún error y no funcionase correctamente esta la opción de conseguir el programa completo y listo para descargar en el ladrillo. Todo muy sencillo y fácil de realizar, incluso para aquellos sin ningún tipo de conocimiento previo (imágenes 2.1-2.7).

 2.1 lego Mindstorm EV3 Home Edition ventana de inicio  2.2 lego Mindstorm EV3 Home Edition Construye y programa el robot TRAC3R  2.3 lego Mindstorm EV3 Home Edition Misiones TRAC3R 2.4 lego Mindstorm EV3 Home Edition Menu Mision TRAC3R
 2.5 lego Mindstorm EV3 Home Edition creacion de TRAC3R  2.6 lego Mindstorm EV3 Home Edition instrucciones de programación de TRAC3R  2.7 lego Mindstorm EV3 Home Edition instrucciones de programación bis de TRAC3R  

Por otro lado, también existe la posibilidad de crear el programa desde cero, mucho más gratificante puesto que permite personalizar el comportamiento del robot. Así, una vez abierta la pantalla de edición del programa, esta se divide en varias zonas (imágenes 3.0-3.6):

  • Menú de herramientas: como cualquier programa permite guardar, seleccionar, deshacer, etc.
  • Zona de edición del programa: lugar donde se realizan las órdenes que determinarán el comportamiento del robot.
  • Iconos para programar: cajas que incluyen de manera visual las ordenes básicas para la edición de programas:
    • Pestaña verde: controla los distintos tipos de actuadores (motores, sonido=.
    • Pestaña naranja: contiene las cajas de control de flujo del programa (condicionales, bucles, etc.).
    • Pestaña amarilla: iconos específicos de los distintos sensores con los que el robot puede obtener información de su entorno (sensor de color, infrarrojo, etc.).
    • Pestaña roja: operadores básicos (sumas, restas, productos, etc.).
    • Pestaña azul: operadores avanzados, para llevar a cabo tareas especiales (conexión bluetooth, mandar mensaje, abrir archivos, etc.).
    • Pestaña cian: Mis cajas, inicialmente vacía, permite almacenar nuevas cajas creadas a partir de todas las herramientas anteriores, se pueden elaborar así subrutinas personalizadas con una funcionalidad específica.
 3.0 lego Mindstorm EV3 Home Edition programa en blanco 3.1lego Mindstorm EV3 Home Edition pestaña verde actuadores  3.2lego Mindstorm EV3 Home Edition pestaña de control de flujo 
 3.3lego Mindstorm EV3 Home Edition pestaña amarilla sensores  3.4 lego Mindstorm EV3 Home Edition pestaña roja operadores básicos  3.5 lego Mindstorm EV3 Home Edition pestaña azul operadores avanzados

3.6 lego Mindstorm EV3 Home Edition pestaña cian mis bloques

A continuación un sencillo ejemplo para realizar de forma independiente trataría de poner en marcha un motor cuando un sensor recibe luz de una fuente exterior, para ello utilizaremos las pestañas verde y naranja como las más importantes a tener en cuenta a la hora de realizar un programa.

  1. Inicialmente se selecciona un bucle condicional, donde se configurará el sensor de color, puerto de entrada 3, como un sensor de luz capaz de distinguir cuando recibe luz o no (figura 4.1).
  2. El motor seleccionado, D, permanecerá parado hasta que se cumpla la condición de salida del bucle (figura 4.2).
  3. Una vez se ha cumplido se pone en marcha el motor, D, a una potencia del 75%, para detenerse después de haber completado dos vueltas completas, también se puede controlar el giro del motor con grados de rotación o tiempo activo. Como se puede observar toda la programación del movimiento del motor se realiza, con gran precisión, con una única caja de forma muy sencilla, sin más que seleccionar las opciones deseadas.
4.1 lego Mindstorm EV3 configuracion de bucle condicional  4.2 lego Mindstorm EV3 configuracion motor grande parado   4.3lego Mindstorm EV3 Home Edition pestaña verde actuadores

Robótica-Programación

Introducción a la física de partículas y observación (Muon detector)

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO. Para comenzar este artículo es preciso realizar una breve introducción al modelo estándar de partículas, para intentar comprender el conocimiento científico que yace detrás del proyecto que trataremos de explicar. El modelo standard (fuente CERN) figura 1. Desde la década de 1930 los descubrimientos […]

Leer más
Robótica-Programación

Control de motores Arduino (IV). Motores Paso a Paso

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO El segundo tipo de motores capaces de controlar su posición de forma interna, los servomotores fueron los primeros que hemos tratado en anteriores artículos, son los motores paso a paso (figura 4. Varios modelos de motores paso a paso), dispositivos ampliamente empleados en impresoras […]

Leer más
Robótica-Programación

Python ·3D con Processing

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO. Hoy volvemos de nuevo a trabajar con Python, en este caso, añadimos nuevas posibilidades a una IDE que ya conocemos, Processing, además de trabajar con este lenguaje de programación realizaremos una primera animación en 3D. Para comenzar debemos añadir un nuevo modo de trabajo […]

Leer más
MENÚ
Revista