Lenguaje de Programación Visual (VPL)

Aquí encontrarás dos tutoriales distintos para aprender programación gráfica. El primero está orientado al auto-aprendizaje, mientras que el segundo se diseñó para ser dirigido por un tutor.

Aprende tu mismo el lenguaje de programación visual

Esta sección explica el lenguaje de programación visual a aquellos que quieren aprender individualmente. Es necesario que tengas instalada la versión de desarrollo de Aseba Studio (1.2.0-rc) y que tu robot Thymio II esté conectado a tu PC.

Acceder al lenguaje de programación visual

Puedes acceder al lenguaje de programación visual (VPL, por sus siglas en inglés) en Aseba Studio (1.2.0-rc) a través de la pestaña Herramientas cuando Thymio esté conectado. El plug-in se ejecuta presionando el botón Ejecutar VPL.

Así luce el VPL:

vpl.png
  1. La barra de herramientas contiene botones para abrir y guardar archivos, cargar y detener la ejecución de códigos, y cambiar el modo de edición.
  2. Aquí diseñas tu código. El código diseñado en esta área le indica al robot cómo comportarse.
  3. Esta línea indica si las instrucciones están completas y bien escritas.
  4. Los botones de eventos determinan cuándo debe reaccionar el robot. Puedes incluír estos botones en tu código, arrastrándolas hacia el centro.
  5. Los botones de acción determinan cómo debe reaccionar el robot. Puedes incluir estos botones en tu código, arrastrándolas hacia el centro del editor.

Botones de la barra de herramientas

filenew.svgz nuevo Este botón limpia el editor y regresa al modo simple.
fileopen.svgz abrir archivo Este botón permite abrir un programa guardado.
save.svgz guardar Este botón permite guardar programa el programa actual.
save.svgz guardar como Este botón permite asignar un nombre al programa actual y guardarlo.
play.svgz cargar y ejecutar Este botón carga el programa en el robot y lo ejecuta.
stop.svgz detener Este botón detiene al robot. Se debe volver a presionar cargar y ejecutar para reiniciar el programa.
vpl-advanced_off.svgz modo avanzado Este botón permite pasar al modo avanzado del editor. En ese modo se habilitan funciones adicionales.
info.svgz información Este botón carga esta pagina de referencia.
screenshot.svgz Captura de pantalla Este botón permite tomar una captura de pantalla del programa VPL.

Botones de evento

event-buttons.svg botones Este evento se produce cuando se presiona uno o más botones. El color del botón indica cuando se produce el evento: gris indica que el botón no será tenido en cuenta, rojo indica que el botón se tiene en cuenta. Si se ignoran todos los botones, el evento se producirá periódicamente, 20 veces por segundo.
event-prox.svg sensores de proximidad horizontales Este evento se produce cuando el robot detecta un objeto con los sensores horizontales. El color en el sensor indica cuando se produce el evento: gris indica que el sensor no se tendrá en cuenta, blanco indica que el evento se produce cuando el objeto está cerca y negro que el objeto debe estar alejado. Si se ignoran todos los sensores, el evento se produce periódicamente, 10 veces por segundo.
event-ground.svg sensores de proximidad de suelo Este evento se produce cuando el robot detecta una superficie clara u oscura con su con su sensor de suelo. Lo hace mediante la medición de la cantidad de luz reflejada. La no detección del suelo, equivalente a un fondo oscuro (sin luz reflejada). Si el sensor se define en color gris, quiere decir que será ignorado, blanco indica que el suelo es claro y negro que el suelo es oscuro. Si se ignoran todos los sensores, este evento se realiza periódicamente 10 veces por segundo.
event-tap.svg detección de impacto Este evento se produce cuando el robot detecta un impacto.
event-clap.svg detección de aplauso Este evento se produce cuando el robot detecta un ruido fuerte, como un aplauso cerca.

Botones de Acción

action-motors.svg moteurs Cette action défini la vitesse des moteurs gauche et droite (et donc des roues).
action-colors-up.svg couleur du haut Cette action défini la couleur du haut du robot en un mélange de rouge, vert et bleu (RGB).
action-colors-down.svg couleur du bas Cette action défini la couleur du bas du robot en un mélange de rouge, vert et bleu (RGB).
action-music.svg musique Cette action joue une mélodie d'au maximum 6 notes définies par l'utilisateur. Pour chaque note, sa hauteur dépend de sa position verticale. Un point blanc produit une note qui dure deux fois plus longtemps qu'un point noir. Pour définir une note, cliquez sur la barre où vous voulez qu'elle apparaisse. Un clic sur un point le change de blanc à noir. Un clic supplémentaire transforme la note en silence.

Ejemplos

  • El código touchclap.aesl cambia el color del cuerpo de Thymio II usando los sensores de impacto (acelerómetro) y sonido (micrófono). El robot se torna magenta cuando percibe un impacto y apaga sus luces cuando escucha las palmas. Estas son algunas alternativas:
    • Tornarse verde y/o amarillo.
    • Tornarse azul cuando escuche las palmas y apagar sus luces (color negro) cuando siente un impacto.
    • Encender el arreglo circular de LEDs cuando el robot escuche las palmas y las apague cuando sienta un impacto.
  • El código ground.aesl hace que el robot se mueva usando los sensores de piso. Se mueve hacia adelante cuando está sobre el piso y se detiene en caso contrario; por ejemplo, si llega al borde de una mesa. Estas son algunas alternativas:
    • Emitir el sonido de preocupación cuando el robot llega al borde de una mesa.
    • Tornarse verde cuando está sobre el piso y rojo cuando llega al borde de una mesa.
    • Girar hacia la derecha si detecta el borde de la mesa al lado izquierdo y viceversa.
  • El código prox.aesl hace que el robot se mueva siguiendo los sensores de proximidad ubicados adelante y detrás. El robot se mueve hacia adelante cuando detecta un obstáculo detrás de el; se detiene cuando detecta un obstáculo frente a el; gira hacia la izquierda cuando detecta un obstáculo al lado derecho, y gira hacia la derecha cuando detecta un obstáculo al lado izquierdo. Estas son algunas variaciones:
    • Cambiar el color dependiendo del movimiento: adelante, izquierda, derecha y detenido.
    • Mover el robot hacia atrás cuando detecte un obstáculo frente a el. El robot se detiene si detecta un impacto.
  • El código buttons.aesl mueve el robot y cambia su color. al presionar los botones (observa el video). Se desplaza hacia adelante y se torna rojo si se presiona la flecha hacia adelante; se mueve hacia atrás y se torna azul si se presiona la flecha hacia atrás; se detiene si presionas el botón central. Estas son algunas alternativas:
    • Detenerse si detecta un obstáculo al frente.
    • Girar hacia la izquierda si detecta un obstáculo a la derecha y viceversa.
    • Detenerse si detecta un borde.

Modo avanzado

Presionando el botón modo avanzado accedes a una nueva serie de herramientas. Se incluye una variable de estado que le permite a un determinado botón comportarse de diferentes formas. El estado define la condición en la que se encuentra el robot en un instante dado. Por ejemplo, asume que tu eres el robot; el evento es hora de almorzar, la acción es comer y el estado es el clima (temperatura). Si tienes calor prefieres un emparedado, pero si tienes frío prefieres una sopita. En otras palabras, puedes hacer que la acción del robot dependa tanto del evento como del estado.

El estado del robot se puede definir mediante la acción memoria state.png. Esta acción consta de cuatro controles que puedes activar o desactivar. Puedes combinarlos de 16 formas diferentes que te sirven para definir 16 estados. Los eventos también disponen de otros 4 controles adicionales advancedevent.png que le indican al robot bajo que estado ocurre el evento.
  • El código atap.aesl usa el detector de impactos (acelerómetro) y la variable de estado para cambiar el color del robot. Cuando se produce un impacto, se produce un cambio de estado y entonces el color cambia de rojo a verde y viceversa. Estas son algunas variantes:
    • Adicionar un tercer estado y hacer que el robot se torne azul cuando se presente tal estado.
    • Apagar las luces del robot cuando se escuche el sonido de las palmas.
  • El código aproxtap.aesl utiliza los sensores de proximidad para activar el movimiento del robot y el evento impacto para pasar del estado 1 al 2 y viceversa.
    • Detener el robot cuando el sensor de proximidad trasero se activa en el estado 1.
    • Usar el evento aplausos para cambiar entre los estados 0 y 1.
  • El código acircle.aesl usa los botones y el estado para encender el arreglo circular de LEDs. Las flechas adelante y atras cambian el estado del robot, y para cada estado del robot se enciende un sector diferente del circulo. Se utilizan los primeros 8 (0 al 7), de los 16 posibles estados (0 al 15). Estas son algunas alternativas:
    • Emitir el sonido contento en el estado 0. Emitir el sonido triste en el estado 4.
    • Adicionar otros dos estados: 8 y 9. Iluminar todos los LEDs del arreglo circular en el estado 8 y apagarlos en el estado 9.
    • Programa los 6 estados restantes (10 to 15). Cambia el color del robot dependiendo de sus estado. Por ejemplo, el robot podría tornarse rojo, amarillo, verde, cyan, azul y magenta. Apaga los colores cuando regrese al estado 0.
Los 16 estados se pueden configurar de la siguiente manera (x: activado - desactivado):
Estados 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Control 1 - x - x x - x - x - x - x - x
Control 2 - - x x - x x - - x x - - x x
Control 3 - - - - x x x x - - - - x x x x
Control 4 - - - - - - - - x x x x x x x x

Bloques adicionales

En modo avanzado, se habilitaran tres bloques adicionales. Dos de ellos se relacionan con el temporizador, una manera de producir una acción después de transcurrido un tiempo determinado. El otro permite definir el estado interno.

event-timer.svg tiempo de espera Este evento ocurre cuando se cumple el tiempo establecido.
action-timer.svg temporizador Esta acción inicia un temporizador con un tiempo de espera entre 0 y 4 segundos, definidos por el usuario haciendo clic sobre el reloj. Cuando ha transcurrido el tiempo, se genera un evento de temporizador.
action-states.svg estado Esta acción establece el estado interno del robot. Gris significa mantener el valor actual, blanco significa ponerlo a 0, amarillo significa ajustarlo a 1.

Versión avanzada de los bloques existentes

Estos son algunos bloques que poseen una versión avanzada. Son similares a los bloques disponibles en el modo básico, pero tiene algunas características adicionales.

event-prox-advanced.svg sensores de proximidad horizontales Además de las características del modo básico, este evento puede detectar un objeto cercano pero no demasiado. También permite den establecer los valores de umbral para la detección (ver ejemplo a continuación).
event-prox-advanced-explained.svg sensores de proximidad horizontales (ejemplo) La barra superior permite establecer el umbral de detección para objetos cercanos, mientras que la barra inferior permite establecer el umbral para objetos lejanos.
event-ground-advanced.svg sensores de proximidad del suelo Este evento ofrece las mismas características adicionales que el evento avanzado para sensores de proximidad horizontales.
event-tilt.svg inclinación lateral (tilt) Este evento se produce en función de la inclinación izquierda/derecha de Thymio. Por defecto, las acciones correspondientes se activan cuando Thymio está sobre una superficie plana. Puede elegir los ajustes de orientación haciendo clic en el triángulo blanco y haciendo que se mueva hacia la izquierda o hacia la derecha.
event-pitch.svg inclinación adelante/atrás (pitch) Este evento se produce en función de la inclinación hacia delante / atrás (llamado técnicamente cabeceo) del Thymio. Funciona de la misma manera que el evento inclinación izquierda/derecha.

Aprender VPL con la ayuda de tu tutor

Esta sección presenta un taller de prgramación gráfica para Thymio II; la duración estimada es de 1 hora. Está orientado a niños de 8 años en adelante. En el taller se alternan, entre grupos de niños, sesiones interactivas en las que los niños juegan/programan los robots.

Materiales

  • Un robot/PC por niño,
  • Un robot/PC conectado a un proyector.
  • Tarjetas impresas con los íconos utilizados en el lenguaje de programación visual (VPL).

Procedimiento

Presentación (15 min)

El tutor y los niños se reúnen alrededor de una mesa (sin PCs). El tutor presenta a Thymio II; muestra y explica sus sensores y actuadores. Luego, hace una demostración de sus comportamientos básicos y permite que los niños se diviertan un poco con el robot.

Introducción a la programación (10 min)

Todavía alrededor de la mesa y con los robots apagados, el tutor explica que el robot puede ejecutar diferentes programas, que anteriormente se identificaron de acuerdo al color. El tutor discute con los niños en torno a los sensores (preguntando a los niños qué puede sentir el robot, etc.) y a los actuadores (como reaccionar, que puede hacer el robot, etc.).

Después, el tutor explica a los niños que ellos pueden crear su propio programa. Que las tarjetas azules de evento se combinaran con las tarjetas rosadas de acción. El tutor pregunta a los niños acerca del propósito de las tarjetas. Luego el tutor, usando el proyector, enseña a los niños a conectar Thymio al PC, a lanzar Aseba y el VPL. El tutor expone los cuidados que se deben tener; por ejemplo que el robot debe estar conectado antes de iniciar Aseba y no debe desconectarse mientras Aseba se esté ejecutando. Luego se proyecta un ejemplo simple (como cambiar el color al escuchar las palmas), se pide a los niños explicar el programa, y se validan sus respuestas ejecutando el programa en el robot.

Programación libre (15 min)

Los niños pueden dirigirse hacia los PCs, donde pueden programar libremente los robots mientras que el tutor atiende sus inquietudes.

Retos (20 min)

El tutor expone los restos usando el proyector y pide a los niños enfrentarlos y avisar al terminar. Los retos son:

  • El robot debe tornarse rojo cuando se presiona la flecha izquierda, y verde si se presiona la flecha derecha.
  • El robot debe tornarse rojo cuando se presiona la flecha izquierda, verde si se presiona la flecha derecha, y apagar todas sus luces si se presiona el botón central.
  • El robot debe cambiar de color al escuchar el sonido de las palmas y volver a cambiar al presionar el botón central.
  • El robot debe tornarse rojo y moverse hacia la izquierda cuando se presiona la flecha izquierda; tornarse verde y moverse hacia la derecha cuando se presione la flecha derecha; producir un sonido y desplazarse hacia adelante al presionar la flecha adelante; apagar todas sus luces y detenerse cuando se presione la flecha atrás.
  • El robot se desplaza hacia adelante cuando se presione la flecha adelante; girar hacia la izquierda si detecta un obstáculo al lado derecho; girar hacia la derecha si detecta un obstáculo al lado izquierdo.

Finalmente, el tutor puede explicar el modo avanzado y el concepto de estado si lo considera apropiado.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License