Introduccion A Robolab

6.3. Introducción a ROBOLAB

El lenguaje de programación ROBOLAB es el más fácil e intuitivo de los diversos lenguajes existentes para la programación del núcleo de lego. Presenta un entorno gráfico que es semejante a diagramas de flujo. Es un lenguaje desarrollado por LAB VIEW, el cuál nos ofrece opciones avanzadas como la realización de cálculos. Es el mejor entorno de programación para empezar a diseñar aplicaciones con lego ya que es muy educativo e intuitivo por la posibilidad de desarrollar las aplicaciones a través de bloques.
Una vez instalado el programa al ejecutarlos nos aparecerá la siguiente pantalla:
Si pinchamos en ADMINISTRADOR podemos configurar el puerto de salida a través del cual nos comunicaremos con el núcleo de lego RCX.
Para empezar a programar pinchamos en PROGRAMADOR, y posteriormente elegiremos el modo de programación que explicaremos a continuación.

6.3.1. MODOS DE PROGRAMACION

Para familiarizarse con el entorno y la programación en ROBOLAB, el programa nos proporciona 3 modos con dificultad ascendente. Estos modos son:

6.3.2. Modo PILOT

Es el nivel básico. A través de plantillas introduce la lógica de la programación. Estas plantillas están protegidas por lo que no pueden ser alteradas y por tanto no nos ofrece libertad a la hora de programar. Este modo nos es útil para familiarizarnos con el entorno ROBOLAB y los símbolos utilizados en el diagrama. Este modo consta de cuatro niveles de dificultad que se componen de ejemplos de menor a mayor complicación.

Pilot nivel 1:

En este primer nivel nos muestran un programa muy sencillo. Cada símbolo nos indica una función: Comienzo del programa. Movimiento del motor A en el sentido que indica la flecha. Espera de cuatro segundos. Fin del programa.
Para cargar el programa al robot de lego correctamente enchufado en el puerto de comunicaciones correspondiente, pincharemos en el botón de la flecha

Pilot nivel 2:

En este nivel se nos ofrece la posibilidad de controlar la potencia de cada elemento. Se puede observar en la figura que la potencia tiene un rango de 1 a 5. Se han incluido nuevos símbolos cuyas funciones son:
Lámpara. Se enciende y su potencia se determina por un número del 1 al 5. Está conectada en la salida C. Sensor de contacto. Este símbolo nos indica que cuando es presionado este sensor, el programa avanza al siguiente paso.

Pilot Nivel 3:

En este nivel nos encontramos la posibilidad de la recursividad, esto se consigue mediante este botón
Nos aparecen nuevos símbolos: Pone en off una determinada salida. Sensor de luz. Continua con la ejecución del siguiente paso cuando detecta una zona oscua. Sensor de luz. Continua con la ejecución del siguiente paso cuando no detecta una zona oscura.

Pilot nivel 4:

Este nivel se diferencia del anterior en que puede programarse en múltiples pasos haciendo más extenso el programa.

6.3.3. Modo INVENTOR

Este modo se refiere a la segunda fase del aprendizaje. Se desarrollarán aplicaciones con libertad de enlazarlos como se quiera, además de la inclusión de nuevas funciones que nos permitirán realizar bucles o realizar programas multitarea, es decir que se ejecuten en paralelo los flujos. Este modo también consta de cuatro niveles de dificultad.

Inventor nivel 1:

En este nivel nos aparece un entorno de programación diferente a los ya vistos anteriormente en el modo pilot. A la derecha de la pantalla tenemos a nuestra disposición las diversas funciones que nos permite en este nivel, siendo el propio programador el que selecciona el orden de ejecución y realiza el diagrama. La mayoría de las funciones ya nos son conocidas por lo que explicaremos las nuevas. Cada programa siempre comienza con el símbolo del semáforo en verde y finaliza con el semáforo en rojo. Una función que no hemos visto anteriormente es la siguiente: Nos proporciona un sonido.

Inventor nivel 2:

En este nivel se nos ofrecen diversas funciones como cambio de dirección, saltar y aterrizar y tiempo al azar: Cambiar de dirección. Esta función nos permite cambiar de dirección a un motor determinado que le asignemos. Ejemplo: Cambia de dirección el motor C. Saltar y aterrizar. Mediante estos símbolos realizaremos un bucle infinito de las funciones que contengan entre ellos. Es igual que la recursividad en el modo pilot. Ejemplo: Tiempo al azar. Mediante esta función el siguiente paso no se ejecutará hasta que transcurra un determinado tiempo aleatorio. Ejemplo: Tiempo al azar entre 0 y 3 segundos.

Inventor nivel 3:

Este nivel da un salto importante en la posibilidad de programación con este lenguaje. En este se incluye la posibilidad de realizar programas multitarea, sentencias condicionales, recursividad y música.
A continuación explicaremos las diversas nuevas posibilidades en este nivel: Comando multitareas. Al introducirlo en nuestro programa nos ofrece dos flujos de ejecución, los cuales se ejecutarán aparentemente en paralelo. Veamos un ejemplo:
Como se puede observar en el siguiente ejemplo aparecen dos flujos de ejecución. En el primero (situado en la parte superior) juegan con los motores cambiando de dirección de modo recursivo. En el segundo reproduce notas musicales.
Este grupo de funciones representa una sentencia condicional que será ejecutada mientras cumpla la condición. Ejemplo:
En este ejemplo, si el sensor de contacto esta presionado ejecutará la cadena inferior; mientras que si no está presionado ejecturá la cadena superior. Recursividad limitada. Las funciones que se sitúen entre estos símbolos se ejecutarán un número predeterminado de veces. Ejemplo:
Se repite 30 veces.

Inventor nivel 4:

Este último nivel presenta una diferencia relevante respecto al nivel anterior. Esta diferencia es la posibilidad de utilizar contenedores. Un contenedor es un icono que almacena un determinado valor y ordena al programa en qué momento se envía ese valor. Veamos mediante un sencillo ejemplo el uso de los contenedores:
En este ejemplo primero ponemos el contenedor a 0 . Posteriormente entramos en un bucle infinito en el que vamos incrementando el contenedor . Seguidamente entramos en una sentencia, en la cual si el contador es menor que 5 ejecutará la cadena inferior y por tanto se repetirá otra vez el bucle. Cuando el contador sea mayor que 5 entonces ejecutará la cadena superior provocando un sonido que nos indica que ha salido del bucle y finaliza el programa.

6.3.4. Modo INVESTIGATOR

El modo investigador es una versión adaptada del LABVIEW. Convierte el RCX en una herramienta de trabajo para la adquisición de datos. Este modo nos permite elaborar un procesado de los datos recogidos para la elaboración de un informe. Para mayor información consultar guías de programación para el uso de este modo de programación ya que para la realización de aplicaciones de lego es suficiente con saber manejar el modo inventor ya que se pueden realizar programas con bastante grado de dificultad.

6.3.5. Bibliografía Robolab

http://www.donosgune.net/2000/gazteler/prg_leng/robolab.htm
http://www.ceeo.tufts.edu/robolabatceeo/Resources/articles/robolab.pdf
http://www.matnatverdensklasse.dk/uv-mat/robolab/robolab.pdf
http://cache.lego.com/downloads/education/led_quick_start_guide_ES.pdf

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