Programacion

6. Programación
6.1. Introducción a la programación para LEGO.
Para programar el núcleo de Lego tenemos una amplia gama de lenguajes de programación de diversos niveles de dificultad y que nos ofrecen múltiples posibilidades y la opción de realizar aplicaciones complejas.
Para programar el núcleo sin tener grandes conocimientos de programación se nos presentan diversos lenguajes: RCX y Robolab, que son herramientas muy útiles y con grandes posibilidades. Existen además otros lenguajes como NQC e Interactive C que nos permiten programar en el lenguaje C, muy conocido por la mayoría de usuarios. Lego nos ofrece a posibilidad de programar en Java o LabView siendo éste último un referente en los últimos años para programar RCX. Por último existe la posibilidad de programar en lenguajes orientados a objetos como Visual Basic, Visual C etc. Destacar además la posibilidad de programar directamente en C el núcleo a través del sistema operativo del núcleo: LegOS y BrickOS, siendo esto último el más utilizado en éstos últimos años.
6.2. RCX-Code
6.2.1. Introducción:
RCX-Code es el entorno de programación gráfico suministrado con LEGO MindStorms para Windows. Está dirigido al mercado doméstico. Es fácil de utilizar, y está basado en el lenguaje educativo LOGO. Puedes editar un programa arrastrando bloques semejantes a los tradicionales ladrillos LEGO. Una vez secuenciados de modo adecuado, y modificados sus parámetros para adaptarlos a nuestros deseos, el programa puede ser transferido al RCX por medio de la conexión de infrarrojos. A partir de ese momento, el robot podrá funcionar de modo autónomo sin depender del ordenador.
Desafortunadamente, tiene limitaciones que no lo hacen aconsejable para aplicaciones avanzadas, por lo que su aplicación se limita a un nivel básico. Una de las limitaciones es la imposibilidad de utilizar variables (sólo utiliza varios contadores).
La última versión comercializada es la 2.0 comercializada en España y otros países, ofrece un entorno de programación que obtiene mayor provecho de las capacidades del RCX. No es software libre.
Página 69
ROBOTS LEGO MINDSTORMS
Arquitectura de Software utilizando RCX-CODE
Partes del RCX-CODE
Como este entorno de programación esta orientado a niños, y es muy sencillito de manejar, explicaremos las partes que lo componen mediante imágenes.
El almacenamiento de programas se haría de la siguiente forma:
Página 70
ROBOTS LEGO MINDSTORMS
La pantalla de configuración es la siguiente:
A continuación se muestran los bloques básicos; pueden ser de secuencia, de paralelismo, comandos, condiciones sensoriales, control de flujo, grupos de bloques…
Página 71
ROBOTS LEGO MINDSTORMS
omo podemos observar un bloque se ejecuta detrás de otro, puede haber bucles y varias
l panel de control tiene este aspecto:
C
hebras que se puede ejecutar a la vez.
E
Página 72
ROBOTS LEGO MINDSTORMS
Accionándolo podremos realizar las funciones que se describen.
6.2.2. Comandos
Movimiento de motores. Este es el bloque que permite controlar el movimiento de los motores.
Sonidos:
Página 73
ROBOTS LEGO MINDSTORMS
Varios tipos de bloques
Contadores:
Temporizadores: Página 74
ROBOTS LEGO MINDSTORMS
Condiciones sensoriales
Ahora mostraremos lo bloques para controlar las condiciones sensoriales.
6.2.3. Bloques de control de flujo
Página 75
ROBOTS LEGO MINDSTORMS
Bloques de rutinas propias
Página 76
ROBOTS LEGO MINDSTORMS
Pros y contras del código RCX
􀁺 Usa el firmware de LEGO
􀁺 No hay variables
􀁺 Es interpretado
􀁺 Visual, muy bueno para empezar
􀁺 Demasiado farragoso y limitado para hacer cosas complejas
Bibligrafía
[1] Vicente Matellán Olivera, Jesús M. González Barahona, Pedro de las Heras Quirós, José Centeno González, Programación de Lego MindStorms bajo GNU/Linux, 11 de noviembre 2000, 7 de noviembre 2006, http://es.tldp.org/Presentaciones/200002hispalinux/conf-16/16-html/.
[2] Extraído de www.yuri.at, Robot de Lego, 9 de Noviembre de 2002, 7 de noviembre 2006, http://www.yuri.at/go/robotica.
[3] Mario Ferrari, Marco Beri, EmuLegOs, 7 de noviembre 2006, 7 de noviembre 2006, http://emulegos.sourceforge.net/.
[4] Robotikarekin jolase, 12 marzo 2001, 7 noviembre de 2006, http://www.euskalnet.net/kolaskoaga/lehenak/programa_c.htm.
[5] Alvin J. Alexander, DevDaily.com, Empezando con Lego MindStorms, 17 mayo 2003, 7 de noviembre de 2006, http://www.devdaily.com/java/lejos/GettingStartedWithLejos/node1.shtml.
Página 77
ROBOTS LEGO MINDSTORMS
[6] Paul Andrews Jürgen Stuber, José Solórzano, LejOs, W22 agosto del 2006, 7 de noviembre de 2006, http://lejos.sourceforge.net.
[7] Alumnos de la URJC, Grupo de robótica de la URJC, 11 de octubre del 2006, 7 de noviembre de 2006, http://veo.dat.escet.urjc.es/robotica/index.php/Portada
Universidad CarlosIII. Guía rápida de Lego Mindstorms y LeJos 19/9/2004.
http://robotit.it.uc3m.es/lego-guia.php

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License