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:
- 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)
- 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)
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).
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.
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.
- 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).
- El motor seleccionado, D, permanecerá parado hasta que se cumpla la condición de salida del bucle (figura 4.2).
- 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.