Está en la página 1de 9

Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.

Antonio de Nebrija

Introducción a Robolab 2.0

Guillermo Alberto Jiménez Pérez


(Traducido por Víctor Gallego del
texto “Jin Sato´s Lego
Mindstorms, The Master’s
Technique”)
Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.Antonio de Nebrija

1. ROBOLAB 2.0
Robolab es un entorno gráfico de programación desarrollado por Lego para
programar las creaciones de Lego Mindstorms en el ámbito escolar.

Al entrar en Robolab 2.0 se nos ofrecen tres modos:

- Programador, que proporciona cuatro niveles Pilot en los que la


programación se realiza siguiendo unas plantillas y una estructura
predefinidas y otros cuatro niveles Inventor en los que se van
incorporando comandos, modificadores, estructuras y variables hasta
alcanzar el máximo nivel de complejidad posible.
- Investigador, con el cual se puede utilizar el RCX como un dispositivo
de toma de datos externos que se pueden analizar y representar.
- Administrador, que permite configurar los ajustes del programa.

En algunos casos es necesario ir a la opción ADMINISTRATOR. Algunas de las


acciones que nos permite realizar esta opción son: Seleccionar el puerto de
trabajo, descargar firmware, comprobar si hay conectividad entre la torre y el
ladrillo…
Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.Antonio de Nebrija

Cuando queramos realizar un programa le haremos doble clic en la opción


PROGRAMMER y se nos mostrará la siguiente pantalla:

Lo normal es empezar a familiarizarse con los ejercicios de programación, usando


los niveles del Pilot y sus plantillas disponibles. Posteriormente se pasa a los
niveles del inventor, incorporandose más elementos en la realización de los
programas.

2. La pantalla de Robolab

En la figura siguiente se muestra el aspecto de la pantalla de programación del


nivel 4 de Inventor, que será la que utilizaremos para programar.
Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.Antonio de Nebrija

En este nivel, seleccionamos los iconos, que representan comandos, tomándolos


de la ventana de funciones y conectándolos mediante cables que definen la
secuencia de ejecución de los mismos. Es recomendable activar las ventanas de
ayuda, de herramientas, de estructuras y de modificadores para acceder
cómodamente a todos los iconos.

3. Programación con Robolab

Veamos algunos ejemplos de programas:

La imagen de cada icono proporciona una idea acerca de la función que


representa. Así, el programa de la figura muestra como el motor conectado a la
salida A se activa durante 10 segundos, para a continuación detenerse. Vemos
que el inicio del programa y el final vienen indicados por sendos semáforos verde
y rojo.
Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.Antonio de Nebrija

4. Principales iconos

ICONO NOMBRE DESCRIPCIÓN


Inicio

Fin

Motor A, adelante

Motor A, hacía atrás

Lámpara A

Detener A

Detener todas las salidas

Detener

Esperar un segundo

Esperar por tiempo

Esperar por presionar

Esperar por soltar

Esperar por luz

Esperar por más brillante


.
Esperar por más oscuro

Esperar oscuro

Modificador sobre
entrada 1
Modificador sobre salida
A
Modificar nivel de
potencia a 4
Modificar a valor
constante
Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.Antonio de Nebrija

Comando condicional de
sensor de contacto
Comando condicional de
sensor de luz
Unir comando condicional

Inicio de recursión

Fin de recursión

Saltar

Aterrizar

3. Bucles

En el siguiente programa, el motor conectado en A gira durante 10 segundos,


luego se detiene durante 5 y repite la operación cuatro veces. Las flechas blanca y
negra indican el comienzo y final del bucle a repetir. En la primera se incluye un
modificador que establece el número de repeticiones. Podemos usar también un
número aleatorio.

4. Tareas

El programa de la figura siguiente usa dos tareas para girar y detener


repetidamente un motor durante un segundo, mientras que un segundo motor gira
y se detiene durante unos intervalos aleatorios.
Para crear tareas con Robolab se emplea el icono separador de tareas. En el
ejemplo se han utilizado las flechas de salto y aterrizaje para crear bucles infinitos.
Para cada bucle, el color de las flechas debe coincidir. Observamos que cada
tarea termina necesariamente con un icono de semáforo rojo. En la segunda tarea
aparece un icono con un reloj y un dado, que sirve para determinar el tiempo
aleatorio durante el cual funciona o se detiene el motor. El modificador del tiempo
indica el máximo tiempo permitido.
Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.Antonio de Nebrija

7. Sensores.-

Uso de sensores para ramificar un programa.-

El programa de la figura gira el motor A cuando un sensor de contacto conectado


al puerto 1 del RCX no está presionado y gira al motor B cuando está pulsado.
Para ello se ha empleado un icono de selección condicional. La parte superior del
mismo indica la parte del programa que se debe ejecutar si la condición de no
estar pulsado se cumple. En caso contrario se ejecuta la otra alternativa. El
modificador 1 le indica en qué puerto debe verificar la condición. Al final los dos
caminos se vuelven a unificar, de forma que no se confunda esta bifurcación con
una multitarea. En esta última, las dos o más tareas se ejecutan simultáneamente,
mientras que en las ramificaciones sólo lo hace la que ha cumplido la condición
estudiada.

Uso de un sensor para crear un programa orientado a eventos.-

En lugar de utilizar un sensor para crear una selección condicional, podemos


programar una tarea que monitorice al sensor y realice una acción si el estado del
sensor cambia. Por ejemplo, en el programa de la figura siguiente, se cambia el
sentido de giro de un motor cuando un sensor de contacto es pulsado. El icono
multitarea crea dos tareas: la de arriba hace girar el motor y la de abajo usa los
iconos de salto para crear un bucle infinito. Dentro de este bucle, una ramificación
condicional controlada por el sensor de contacto determina si el sensor está
pulsado o no. Si lo está, el icono de invertir el sentido de giro actúa sobre el motor
A.
Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.Antonio de Nebrija

Nota: Este programa tiene dos problemas: el primero es que si el sensor se


mantiene pulsado todo el tiempo, el motor se detiene, porque al invertir el sentido
de giro lo primero que hace es pararlo; el segundo problema es que cuando se
libere el sensor de contacto, el giro del mismo se producirá en un sentido aleatorio.

8. Variables.-

Robolab no permite definir nombres para sus variables. En lugar de esto, debemos
emplear los nombres predefinidos, que en este caso se llaman contenedores. En
el programa siguiente se emplea un contenedor que se va incrementando en una
unidad cada segundo. El contenedor se inicializa antes de entrar en el bucle
infinito. Desafortunadamente, Robolab no tiene un comando para mostrar en la
pantalla del RCX el valor de las variables, por lo que no podemos verificar que el
programa funcione realmente.

9. Subrutinas.-

Desgraciadamente, no se pueden definir subrutinas con Robolab, por lo que si una


parte de un programa se debe repetir varias veces, debe ser escrita
repetidamente.

10. Errores de compilación.-

Los errores aparecen cuando los hilos no han unido correctamente los iconos o
cuando un salto o bucle no tiene consistencia lógica. En esos casos, el icono
Descargar al RCX aparece roto. Se puede activar la ventana de errores que
permite detectarlos.
Guillermo A. Jiménez P Dpto de Tecnología del I.E.S.Antonio de Nebrija

También podría gustarte