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

Introduccinrobticaconrobolab

  • 1.
    Guillermo A. JiménezP 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”)
  • 2.
    Guillermo A. JiménezP 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…
  • 3.
    Guillermo A. JiménezP 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.
  • 4.
    Guillermo A. JiménezP 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.
  • 5.
    Guillermo A. JiménezP 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
  • 6.
    Guillermo A. JiménezP 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.
  • 7.
    Guillermo A. JiménezP 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.
  • 8.
    Guillermo A. JiménezP 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.
  • 9.
    Guillermo A. JiménezP Dpto de Tecnología del I.E.S.Antonio de Nebrija