Robótica con LEGO MINDSTORMS
Azken eguneratzea hemen: Astelehena, 2009(e)ko abendua(r)en 28-(e)an 22:38etan Koldo-k idatzia Osteguna, 2009(e)ko ekaina(r)en 04-(e)an 18:51etan
LEGO MINDSTORMS
NOTA: este es un artículo publicado en el número 4 de la revista Hispabrick Magazine (abril 2009). Es el primero de una serie de artículos de introducción a la robótica con LEGO MINDSTORMS. Puedes descargar la revista en la sección de descargas.
En más de una ocasión he leído en algún foro o me han preguntado cómo iniciarse en la robótica con LEGO MINDSTORMS. Para ciertas personas resulta algo atractivo pero que a la vez genera cierto respeto y temor, ¿seré capaz de hacer algo? O acaso ¿será algo que me superará y resultará frustrante?
En los últimos años el montar y programar robots está pasando de ser una actividad únicamente desarrollada por profesionales con una formación formal a entrar en el ámbito del tiempo libre y convertirse en el hobby de muchas personas que buscan en las nuevas tecnologías algo diferente a lo que ofrece un videojuego.
Este artículo está dirigido a aquellas personas que sin una formación previa sobre robótica y programación desea montar y programar sus propios robots con LEGO MINDSTORMS.
Para empezar a montar y programar robots el primer paso es tener una idea general de lo que es un robot, y de cuáles son las tareas que nos vamos a encontrar en su desarrollo. Ese va a ser el objetivo fundamental de este artículo al que seguirán otros que puedan útiles para profundizar en el montaje y programación de robots.
¿Qué es un robot?
Tuve la fortuna de poder participar en el jurado técnico de las pruebas clasificatorias de la FLL que se celebraron en Pamplona en noviembre del pasado año. Cuando preguntamos a uno de los equipos qué había aprendido durante la experiencia de participar en la FLL la respuesta fue que ahora sabían lo que era un robot. Hasta entonces para ellos un robot era una máquina con patas y brazos que ejecutaba diferentes acciones (androides). Tras haber montado y programado un robot habían aprendido que un robot puede ser mucho más que eso.
Se pueden encontrar diferentes definiciones, una de ellas puede ser la siguiente: Un robot es un ingenio mecánico controlado electrónicamente capaz de ejecutar acciones diversas siguiendo un programa preestablecido y en su caso que interactúa con su entorno.
Pero quizás lo mejor para aprender sobre lo que es la robótica es “hacer”, es decir, montar y programar robots. Veamos primero cuáles son los elementos comunes que vamos a encontrar en todos los robots.
1.-El sistema sensitivo
Una de las partes básicas de un robot es su sistema sensitivo, sin él no podría percibir su entorno, y en consecuencia, no podría responder ante los diferentes estímulos que se le presentan. Los elementos por medio de los que el robot recibe información de su entorno son los sensores que permiten medir distancias, iluminación del ambiente, niveles de ruido, temperatura…
El sistema básico de LEGO MINDSTORMS dispone de cuatro sensores:
- Sensor de contacto: básicamente es un pulsador como el que utilizamos para hacer sonar el timbre de casa. Tiene dos posiciones: pulsado y suelto. Puede ser utilizado en un robot móvil para detectar cuando choca contra una pared.
- Sensor de luz: Mide el nivel de luminosidad que recibe convirtiendo la lectura en valores comprendidos entre 1 y 100. Ejemplos básicos de su uso pueden ser hacer que un robot se dirija a una zona iluminada, detectar el encendido de la luz en un espacio y hacer sonar una alarma, o para el clásico robot que sigue una línea sobre el suelo.
- Sensor de ultrasonidos: Es capaz de medir la distancia a un objeto que se encuentre a una distancia inferior a 250 cm. Así como con el sensor de contacto hay que chocar para detectar un objeto con el detector de ultrasonidos ya no es necesario. Su uso lo podríamos asimilar al sistema por medio del cual un murciélago detecta los obstáculos en la oscuridad.
- Sensor de sonido: Mide el nivel de ruido en su entorno y asigna un valor a la lectura entre 1 y 100. Puede dársele diferentes usos, entre ellos se encuentra el controlar un robot con palmadas de las manos, tal y como se hace con ciertos sistemas de iluminación doméstica.
2.-El sistema motor
Además de sentir el robot ha de tener la capacidad responder a los estímulos externos, es decir, de hacer. De hecho es posible diseñar un robot sin sensores pero al contrario, no tiene ningún sentido que no sea capaz de hacer nada, aunque no sea mas que generar sonidos.
Para hacer utiliza los motores con los que puede desplazarse, abrir y cerrar una pinza… o lo que se desee.
Los motores del sistema LEGO MINDSTORMS está diseñados de tal manera que además de controlar la potencia y sentido de giro es posible controlar la magnitud de dicho giro: ya sea por tiempo, número de vueltas o grados (con una precisión de 1 grado). Esto facilita en gran manera el control de los movimientos.
En el NXT se pueden conectar simultáneamente hasta tres motores.
3.-El cerebro
Para responder a los estímulos externos hay que tener la capacidad de tomar decisiones y para eso está el “cerebro” o controladora que en el caso del nuevo sistema de LEGO MINDSTORMS se llama NXT.
El NXT dispone de tres salidas (en las que podremos conectar hasta tres motores) y de cuatro entradas (permiten conectar hasta cuatro sensores). Además de ello dispone de otros modos de comunicarse con el entorno: un pequeño altavoz que puede reproducir sonidos con una limitada potencia, pero muy útiles en algunos programas; una pantalla con una resolución de 64x100 pixeles por medio de la cual es posible presentar mensajes de texto o gráficos; y un puerto de comunicaciones bluetooth que le permite conectarse con otros robots (enviar y recibir mensajes), teléfonos móviles o incluso conectarse con un receptor GPS.
El NXT puede conectarse con el ordenador por medio de un cable USB o de modo inalámbrico vía una conexión bluetooth.
4.-El esqueleto
Todo lo anterior necesita un esqueleto adaptado al uso que se le quiera dar que lo sustente. En función del objetivo deseado habrá que montar una estructura en forma de vehículo con ruedas, en forma de bípedo o cuadrúpedo, en forma de organizador de ladrillos LEGO en base a su color…
Sobre todo en el caso de los robots móviles es importante que esta estructura sea resistente, un robot móvil que puede chocar con una pared hay que montarlo de tal manera que no se desmonte durante su uso.
Tanto el set comercial de LEGO MINDSTORMS como el educativo ofrecen un conjunto de piezas suficiente para empezar a montar robots y con el tiempo puede completarse principalmente con la línea LEGO TECHNIC.
5.-Sus comportamientos
Pero ¿qué es un cerebro sin inteligencia? Nada, así que por medio de la programación hay que definir cómo se ha de comportar el robot ante los diversos estímulos externos.
Para ello LEGO MINDSTORMS ofrece un software de programación gráfico conocido como NXT-G. Una serie de bloques ordenados de acuerdo con lo que se desea que haga el robot generan un programa que se transfiere al NXT para que éste, de modo totalmente autónomo sin necesitar el ordenador para nada, lo ejecute.
Un ejemplo paso a paso
Se trata de montar y programar un robot que se mueva por una habitación, pasillo… y que cuando choque contra la pared u otro objeto sea capaz de girar y seguir tras evitar el obstáculo.
El procedimiento básico de diseño, montaje y programación de un robot es un procedimiento de ensayo, error y mejora. En la siguiente figura puede verse un esquema del procedimiento.
1.-Diseño y montaje de un robot móvil
Cuando se va a montar un robot móvil, antes de nada hay que definir qué sistema de dirección se va a utilizar: un robot con cuatro ruedas, dos para la dirección y dos motrices; o un robot con un sistema de dirección diferencial, es decir, con dos ruedas conectadas cada una a un motor y un tercer punto de apoyo que puede ser una esfera o una rueda loca. El que los motores se muevan a la misma o diferente velocidad hará que el movimiento sea rectilíneo o de giro.
Para empezar es mejor hacerlo con dirección diferencial, hacerlo de otro modo complica tanto el montaje como la programación.
Para este ejemplo lo mejor es utilizar el Tribot (uno de los modelos incluidos en el set de LEGO MINDSTORMS).
2.-Programación
Antes de empezar con el software de programación, sea este el que sea, hay que escribir el algoritmo a utilizar. ¿Qué es el algoritmo? Es la descripción paso a paso de lo que ha de hacer el robot en el propio lenguaje, en este caso podría ser el siguiente:
- avanzar en línea recta hasta que choque
- retroceder en línea recta durante 1 segundo
- girar 90º sobre sí mismo a la izquierda
- repetir el ciclo otra vez
Ahora que tenemos el algoritmo ya podemos convertirlo a un lenguaje que comprenda el robot, eso lo haremos por medio de LEGO MINDSTORMS NXT-G. Una de las características de NXT-G, al contrario de otros lenguajes de programación, es que desde el primer momento podremos editar programas totalmente funcionales, no es necesario un proceso de aprendizaje previo y está pensado para todos los públicos.
Un programa en NXT-G es una secuencia de bloques de programación unidos por medio de un enlace que simula un liftarm. Los bloques se arrastran hasta la posición deseada y se enlazan automáticamente. En la figura siguiente puede verse el programa correspondiente al algoritmo anterior.
Cada bloque de programación dispone de un panel que permite configurarlo. En el caso del bloque Mover (figura siguiente) se puede modificar la velocidad, el tiempo que ha de permanecer en marcha o si ha de hacerlo de modo indefinido, cómo ha de pararse… o si lo que ha de hacer es únicamente un giro de un ángulo determinado.
En este programa, tal y como puede verse en una de las figuras anteriores, se utilizan únicamente dos bloques de programación y una estructura de control. Uno de los bloques (Move o Mover) es el que hace que el robot avance, retroceda, gire… es decir, que se mueva y el otro es el que hace que el programa espere hasta que el robot choque. Las estructura de control determinan el flujo del programa, en este caso Loop hace que la secuencia que engloba se repita una y otra vez.
Una vez que hayamos editado el programa solo falta transferirlo al NXT. Para ello hay que encenderlo y conectarlo al ordenador vía cable USB (es lo más rápido y fácil) o conexión inalámbrica bluetooth (a veces su configuración da trabajo y es más lenta). En la figura pueden verse los botones que se utilizan para dicha transferencia.
3.-Ensayo
Ahora que ya tenemos el robot con su programa sólo queda probarlo y observar si hace lo que deseamos. Probablemente las decisiones que hemos tomado en cuanto al tiempo de retroceso y el de giro no hayan dado el resultado deseado, así que tras probarlo habrá que ajustar dichos tiempos en el programa hasta conseguir resultados óptimos.
En muchos casos tras probar el robot no solo tendremos que hacer cambios en el programa sino que también en el montaje: se mueve demasiado lento y hay que modificar la combinación de engranajes o tamaño de ruedas; hay partes que deberían girar o desplazarse de un modo más fluido…
Por dónde empezar
Para iniciarse lo mejor es tomar como punto de partida la guía presente en el mismo software NXT-G. Ofrece una serie de modelos con sus programas descritos paso a paso. Ello nos ayudará a conocer los diferentes elementos de los que está compuesto el sistema, el manejo del editor de programas y a adquirir habilidades básicas de programación.
A partir de ahí uno de los caminos a utilizar es reproducir creaciones ajenas (libros , Internet …) y tras montar el robot leer el programa, analizarlo y editarlo. Transferirlo sin más no nos ayudaría a progresar en el aprendizaje.
Otra, más complicada en el inicio, es desarrollar creaciones propias. Las ideas las podemos encontrar en nuestro entorno, en Internet, en modelos ajenos que pueden servir de partida para desarrollar el propio.
Comments |
|
|
Powered by !JoomlaComment 3.26
|





