1. D. Matarrita, Junio 2016
Cuarto Grado
Programación para robots
ROBOTS PARA EL ENTRETENIMIENTO
Guía de trabajo para el docente de robótica
Propuesta Robótica Educativa I y II ciclos
PRONIE MEP-FOD
3. D. Matarrita, Junio 2016
CONTENIDOS:
1. Cuidados y usos del NXT y equipo de robótica
2. Repaso NXT, actuadores y sensores
3. Lectura de datos
4. Componente acción
5. Componente Percepción: Sensor color y contacto
6. Componente Razonamiento: Bifurcaciones simples
7. Componente Razonamiento: Azar
8. Componente Razonamiento: Bifurcaciones anidadas
9. Componente Razonamiento: Bloque STOP
10. Componente Razonamiento: Variables e impresión de pantalla
11. Reto
12. Referencias
NOTA: Este es un documento dirigido al profesor para su estudio, preparación y planificación de
las sesiones de programación de los talleres de robótica de la propuesta Robótica Educativa I y II
ciclos del Programa Nacional de Informática Educativa MEP-FOD.
ROBOTS PARA LA INCLUSIVIDAD
Guía de trabajo para el docente de robótica
4. D. Matarrita, Junio 2016
Cuidados y usos del NXT y equipo de robótica
Aborde con los estudiantes normas de uso y cuidado del equipo de robótica, antes de iniciar el trabajo con
el equipo.
1. Manipular el equipo con las manos limpias, para evitar el deterioro por suciedad o por daños de
insectos o roedores.
2. Dejar los bolsos con los útiles en un lugar seguro, no cerca de los legos y demás equipo.
3. Enseñe como encenderlo y apagarlo. Colocar la batería de la manera correcta.
4. Demuestre cómo y dónde se guarda el equipo, especial atención si se comparte la sala de robótica con
otro grupo.
5. Explique como utilizar el cargador para mantener con carga la batería del NXT (si lo cree necesario)
6. Demuestre cómo y dónde se conectan los cables para los motores y sensores
7. No permita que dejen el NXT en la orilla de las mesas.
8. Contabilizar los dispositivos antes de salir del taller.
¿Qué otros aspectos podría agregar desde su experiencia?
5. D. Matarrita, Junio 2016
Repaso: NXT, actuadores y sensores
Antes de iniciar la programación, recuerde a los estudiantes:
- Los componentes del robot y su significado: acción, percepción y razonamiento.
- Los nombres y funciones de los componentes del NXT, de los actuadores y sensores que hay
en la sala, haciendo énfasis en los que se utilizarán para crear robots que ayudarán a las
personas con limitaciones físicas, a realizar sus tareas de manera más fácil.
- Si hay muchos estudiantes nuevos, o bien a fin de repasar retome la analogía del cerebro
humano y las funciones de los sensores y actuadores (Referencia: PPT: Primero
Programación)
¿Qué juegos mecánicos conocen los estudiantes? ¿Qué sensores podrían utilizar para controlar
las acciones del juego? ¿Cómo se gana o se pierde?
6. D. Matarrita, Junio 2016
Lectura de datos: Sensor de contacto, botones NXT y
sensor de color o sensor de luz
Antes de iniciar la demostración de captura de datos…
Repase con los estudiantes el uso de los sensores de contacto, color, luz y botones del NXT
Explique desde la pizarra la escala numérica que sigue el sensor de temperatura. Explique los colores que visualiza el
sensor de color, puede apoyarse en los manuales LEGO. Si los estudiantes no los han visto, puede utilizar las actividades
introductorias a esta captura y graficación de datos que se sugieren en las guías de programación de esos años.
Desde el proyector
Muestre cómo programar la captura de datos de uno de los sensores y realice su ejecución, estos sensores ya han sido
visto en años anteriores, es importante repasar los valores que marcan y su significado.
Permita que los estudiantes programen desde su computadora y hagan pruebas con los sensores.
Analice con los estudiantes los datos obtenidos en alguna computadora. Realice preguntas que permitan entender si han
logrado identificar el significado de los datos en X y Y, por ejemplo ¿Cuánto tiempo estuvo el sensor de color viendo el
color X? ¿Cuánto tiempo tardó el sensor de temperatura para cambiar de x a x? ¿Qué diferencia hay entre el sensor 2 y el
sensor 3 en los datos capturados y los tiempos?
7. D. Matarrita, Junio 2016
Posible configuración de
bloque Data logging
Recuerde que al ejecutar este bloque de programación se abrirá la aplicación Data logging, en la que verá la
graficación de los datos.
Recuerde conectar el
sensor según el puerto,
y el color se refiere a la
línea del gráfico que
representa estos datos.
En este espacio se
definen los segundos.
Las muestras se refieren
a la cantidad de veces
que se registrarán los
datos.
8. D. Matarrita, Junio 2016
Consideraciones para la programación de juegos mecánicos
1. En esta guía se propone una metodología para abordar la programación que difiere de la que se ha desarrollado durante el primer ciclo, debido a la
complejidad mecánica de este nivel, será necesario abordar la programación al momento de tenerlo armado e ir programando con los estudiantes
los efectos paso a paso hasta conseguir un juego funcional en el que se puede ganar o perder.
2. El proceso que se propone sería: introducción al concepto de programación, demostración de programación, los estudiantes integran el concepto a
su proyecto, comprueban su funcionamiento y lo explican a manera de comprobar que lo han entendido. Sin embargo, queda a su criterio
profesional docente, si esta metodología le resulta funcional, o bien si encuentra otra forma de lograrlo que le dé mejores resultados, en la que
aborde los mismos conceptos de programación y permitan llegar a un juego mecánico funcional.
3. La programación es vista en tres momentos: el inicio del juego en el que se emplea la aleatoriedad (azar), la validación del dato aleatorio para
determinar la acción del juego, y la validación de la acción del usuario para determinar si sigue jugando o pierde el juego. Un valor agregado sería el
uso de las variables para la sumatoria de puntos y mostrarlos en la pantalla del NXT, usted decide quienes podrían lograr este nivel en sus juegos
mecánicos.
4. Estudie la programación previamente para que cuente con ideas claras que ayuden a los estudiantes a controlar el juego que desarrollen.
5. Un buen apoyo para este nivel sería contar con un juego mecánico, que sea diferente de los modelos que ellos van a crear, para demostrar su
funcionamiento e introducir la programación con un apoyo. Este juego lo deberá crear usted pensando únicamente en lo funcional y didáctico para
introducir la programación, entre más simple mejor. Esto es opcional.
9. D. Matarrita, Junio 2016
Componente Acción: activar juego
Motores en grados o rotaciones, lámpara de color, sonido
La configuración que necesitará el juego dependerá de la estructura mecánica que tenga. Por lo tanto, recuerde a los estudiantes cómo configurar los
motores para que se muevan por grados, o rotaciones, según lo necesiten y permitan que ellos logren realizar el programa que necesitan para ver al
juego activarse.
Cada juego va a necesitar un programa diferente, e inclusive grados distintos, por eso es importante que los estudiantes hagan puntos de referencia
visibles dentro de la misma estructura del juego, que les permita calibrar los motores en cada ejecución.
Recuerde que cuando se trabaja con grados y rotaciones, hasta que el motor no complete la totalidad de los grados o rotaciones solicitadas, no va a
continuar con el programa, a menos que se le quite el check de Terminar hasta finalización, lo cual va a depender de cómo se quiere que funcione el
juego. Esto provoca que a veces se crea que el programa se detiene antes, pero no es así, se queda a la espera de conseguir los grados de giro
programados.
Brinde el tiempo necesario para que ajusten los motores para activar el mecanismo correctamente, antes de continuar con la programación para
desarrollar las acciones del juego.
También puede retomar el bloque Sonido o las lámparas de color como señales de ganar o perder en el juego.
Desde el proyector
• Repase cómo es la programación de los motores por grados y rotaciones.
• Retome rápidamente el funcionamiento de los bloques sonido y lámpara.
• Permita que los estudiantes activen los motores en función de lo que se espera que haga el juego, si es posible. Cada juego puede variar.
10. D. Matarrita, Junio 2016
Componente Percepción: acciones del juego
Sensor Color y Sensor de contacto
Reflexione con los estudiantes, cuáles serían los sensores que utilizarían en el juego mecánico para:
1. Que el usuario interactúe
2. Para determinar si ganó o perdió
Por ejemplo, se podrían utilizar los sensores de contacto o los botones del NXT para que el usuario juegue, y con el sensor
de luz controlar si ganó o perdió. Cada grupo de estudiantes definirá la estrategia que utilizarán con los sensores para
programar su juego.
Pida a cada grupo que defina la estrategia del juego según los sensores y que integren los sensores a la estructura física del
juego mecánico según lo planeado.
Pueden iniciar un programa de prueba con los sensores elegidos para determinar si funcionan como lo esperado, pueden
afectar condiciones como: posición del sensor, distancia de dónde se va medir, la cantidad luz y reflejo, en el caso del
sensor de contacto que soporte ser presionado varias veces, etc.
La idea es que el juego quede con los sensores listos para iniciar la programación del juego.
11. D. Matarrita, Junio 2016
Componente Razonamiento
Bifurcaciones (condicionales simples)En este punto los estudiantes tienen claro:
1. Como se controlan los motores que activan su juego mecánico.
2. Los sensores que utilizarán para que el usuario interactúe con el juego y el sensor o sensores que van a determinar si el usuario ganó o perdió el juego.
Antes de ir a la computadora
Explique el concepto de una condicional o en este lenguaje bifurcaciones. Ilustre a los estudiantes cómo es que todos los días tomamos decisiones basados en información que recibimos,
de igual manera los robots toman decisiones dependiendo de lo que perciben en los sensores. Dibuje en la pizarra la estructura de una condicional, explique cómo funciona y luego
explique cómo jugar el semáforo.
Juego: El semáforo: El docente será el semáforo que tendrá tres colores: rojo, amarillo, verde. Los estudiantes serán los vehículos. Si el semáforo es verde, los estudiantes marchan
rápido (desde su espacio, no es necesario movilizarse, sino se desea), Si el semáforo es amarillo, marchan lento. Si es rojo, se detienen. En un instante no saque ningún color o saque dos
colores al mismo tiempo, deje que los estudiantes decidan que hacer, de igual manera si el programa recibe información que no está clara, va a hacer algo que no esperamos.
Destaque la diferencia de una bifurcación que NO ESPERA hasta que se cumpla la condición, a la de un esperar por que DETIENE la ejecución del programa hasta que se cumpla lo
programado.
Haga una demostración en la que:
1. Muestre cómo obtener el bloque de la bifurcación y su configuración, según el sensor que se elija.
2. Programe una condicional con sensor de color, que espere por un color determinado para realizar un sonido y sino reproduce otro sonido .
3. Descargue el programa y muestre cómo funciona. Haga preguntas a los estudiantes para evidenciar si están comprendiendo. ¿Cuándo suena el sonido X y cuándo el otro? ¿Cuántas
veces va a repetir la acción? Aproveche sino ha integrado el ciclo, para explicar la importancia de enciclar las bifurcaciones, si el caso lo necesita.
4. Permita que los estudiantes hagan el programa y comprueben su funcionamiento.
5. Realice preguntas grupales e individuales que permitan evidenciar si los estudiantes dominan el concepto de bifurcación.
6. Pida a los estudiantes integrar una bifurcación en el programa del juego, de manera que se activa uno u otro motor del juego. Esto es la antesala para introducir el azar, es decir,
ahora los motores se van a activar mediante un sensor, pero la idea es que el programa active los motores del juego al azar.
12. D. Matarrita, Junio 2016
Componente Razonamiento: acciones del juego
Aleatoriedad y bifurcaciones
Para iniciar el juego se debe establecer cierta condición de aleatoriedad que permitirá al usuario interactuar y ver cómo ganarle a
la máquina.
Antes de ir a la computadora
Realice un juego para representar el azar: En una bolsa o caja tenga dos números (0 y 1) que serán para entender el rango del
azar, y pida dos voluntarios que van a representar una lámpara cuando se saque el cero y un motor cuando sale el 1. Entonces
pida a los demás estudiantes que saquen un número, según el número que salga el estudiante realizará la acción que le
corresponde, de manera que se puede apreciar que un mismo número podría salir varias veces, o bien que podrían alternarse.
Usted puede hacer las modificaciones a este juego o proponer otro para abordar el concepto de azar.
Desde el proyector presente:
El bloque de Azar o Aleatoriedad, muestre el centro de configuración y cómo se establece el rango. En los juegos mecánicos solo
habrá dos opciones de juego dadas por uno o dos motores, entonces el rango va a estar entre dos números, por ejemplo: 0 y 1, o
1 y 2.
Del conector numeral que sale del bloque de azar, se va a enviar el valor aleatorio que se determinó a la bifurcación de valor
numérico, que va a evaluarlo para ejecutar una de las dos tareas.
Realice un programa pequeño que permita a los estudiantes comprobar el funcionamiento del azar. Explique la bifurcación ya no
a ver el valor de un sensor, sino un el valor del número que le envía el azar, entonces hay que configurar la bifurcación para que
sea Control: Valor y Tipo: Numéricos.
Pida a los estudiantes agregar al programa al azar y cambiar la bifurcación a una de valor tipo numérico. De manera que el juego
mecánico quede funcionando aleatoriamente.
13. D. Matarrita, Junio 2016
Componente Razonamiento: acciones del juego
Bifurcaciones anidadas para determinar si el usuario gana o pierde
En este punto los estudiantes tienen:
1. Motores que se encienden al azar
2. Sensores colocados en la estructura para que el usuario interactúe y
determinar si ganó o perdió.
Ahora se debe programar las acciones con los sensores.
Antes de ir a la computadora
Pida a los estudiantes que describan los pasos de cómo se va a jugar, y de
cuándo se va a ganar o perder, escuche las ideas y realiméntelas para
orientarlas a la anidación, si fuera el caso. Muestre mediante un ejemplo
empleando pseudocódigo o gráficamente con un diagrama de flujo, de qué
manera dentro de la bifurcación del azar se introduce otra bifurcación que
pregunta si el usuario realizó el movimiento correcto en el tiempo correcto y
realiza un sonido indicando si perdió o ganó.
Ver ejemplo de programación en los siguientes dos slides.
PSEUDOCÓDIGO
Si azar = 1 entonces
Motor A 28 grados
Esperar 3 segundos
Si sensor1 = presionado entonces
Sonido = Hooray
Sino
Sonido = Goodbye
*Detener programa
Sino
Motor B
Esperar 3 segundos
Si sensor1 = presionado entonces
Sonido = Hooray
Sino
Sonido = Goodbye
*Detener programa
* El bloque detener no se ha introducido, usted decide si lo ve antes o durante el estudio de esta estructura de control
14. D. Matarrita, Junio 2016
Componente Razonamiento: acciones del juego
Bifurcaciones anidadas: Diagrama de flujo
Si azar = 1
Motor A
Esperar 3 segundos
Sensor 1 =
presionado
Sonido Hooray
Sonido Goodbye
*Detener programaSonido Hooray
Sonido Goodbye
*Detener programa
Motor B
Esperar 3 segundos
Sensor 1 =
presionado
Si
SiSi
No
No No
* El bloque detener no se ha introducido, usted decide si lo ve antes o durante el estudio de esta estructura de control
15. D. Matarrita, Junio 2016
Componente Razonamiento: acciones del juego
Bifurcaciones anidadas para determinar si el usuario gana o pierde
Hasta este punto los estudiantes tienen:
1. La programación al azar de los motores que
activan el juego.
2. La condicional del azar incluida en un ciclo
infinito.
Ahora para completar el juego deben evaluar si el
usuario realiza la acción que corresponde:
presionar un botón, buscar un color, ubicar un
objeto, etc.
Una manera de hacerlo es anidando la condicional
dentro de la del azar. Si lo logra realiza un sonido
de Hello, y si pierde hace el sonido de Sorry.
Sin embargo, a pesar de perder sigue jugando,
nunca se termina el juego ¿Qué se puede hacer?
16. D. Matarrita, Junio 2016
Componente Razonamiento
Bloque STOP
A manera de concluir el juego en caso de perder, se utilizará el bloque STOP, para detener el programa en todas las tareas que se estén ejecutando. Este bloque
puede ser introducido en el momento que usted como mediador considere más apropiado, puede ser antes de ver las bifurcaciones, o bien al final.
Antes de ir a la computadora
Se debe determinar la condición de control que hará que el juego se dé por terminado, por un ejemplo un sensor de contacto que no fue activado en 3
segundos, es decir, el jugador duró mucho en presionarlo, entonces perdió el juego, el programa termina.
Establezca con los estudiantes:
1. En qué momento se daría por perdido el juego.
2. Defina en qué punto del programa podría estar el bloque STOP.
3. Muestre cómo obtener el bloque, este carece de centro de configuración.
4. Realice un programa simple con tres multitareas dos tareas con ciclos infinitos y una tercera que al presionar un sensor activa el bloque STOP.
5. Descargue el programa y muestre cómo funciona. Haga preguntas a los estudiantes para evidenciar si están comprendiendo. ¿Cuándo se detiene el
programa? ¿Cuáles acciones se detienen?
6. Permita que los estudiantes hagan el programa y comprueben su funcionamiento.
7. Realice preguntas grupales e individuales que permitan evidenciar si los estudiantes dominan el concepto de bifurcación.
17. D. Matarrita, Junio 2016
Componente Razonamiento: acciones del juego
Bifurcaciones anidadas para determinar si el usuario gana o pierde
Hasta este punto los estudiantes tienen:
1. La programación al azar de los motores que
activan el juego.
2. La condicional del azar incluida en un ciclo
infinito.
3. La evaluación de si gana o pierde el usuario.
Ahora falta que el juego termine cuando se pierde,
para eso se define en qué punto de la condicional
va el bloque Stop. En este caso, es cuando después
de tres segundos no se ha presionado el sensor de
contacto.
Para darle el acabado final al programa se podría
llevar un control de puntos, solo en caso de que
los estudiantes deseen implementarlo.
En el siguiente slide damos una sugerencia de
cómo programarlo.
18. D. Matarrita, Junio 2016
Componente Razonamiento
Variables e impresión en pantalla
Podrían haber grupos de estudiantes que deseen llevar el control del puntaje, en caso de que se pudiera abordar
este punto de programación, se recomienda la siguiente estructura:
Se utiliza una
variable que
tiene ya
almacenado
un dato
La variable
indica cuánto
tiene y este
bloque le suma1
La variable pasa de
modo escritura y
recibe el nuevo
valor y envía el
valor al convertidor
para presentarlo en
pantalla
Se recibe el texto, se configura la
pantalla a modo de texto para
que muestre el valor del puntaje
19. D. Matarrita, Junio 2016
Componente Razonamiento: Registro de puntos
Programa completo
Hasta este punto los estudiantes tienen:
1. La programación al azar de los motores que
activan el juego.
2. La condicional del azar incluida en un ciclo
infinito.
3. La evaluación de si gana o pierde el usuario.
4. El control de puntos que consigue.
Una manera de perfeccionar este programa es
creando bloques personalizados que compriman
las acciones en procesos que se repiten, como es
el caso de las variables.
Sin embargo, ese será un tema que se estudiará
en otro momento.
20. D. Matarrita, Junio 2016
Componente Razonamiento
Reto: Pongamos a prueba lo aprendido…
Pida a los estudiantes que diseñen un programa que:
Cada pareja ajusta su programa hasta conseguir el efecto deseado según los sensores y formas de jugar que han pensado.
Luego entre los grupos, prueban el juego mecánico de los demás, de manera que depuren su funcionamiento para la
exposición.
Deje que los estudiantes encuentren soluciones a través de lo que han estudiado durante el taller: uso de multitareas,
otros actuadores o sensores que hayan conocido en años anteriores.
¿ ?
21. D. Matarrita, Junio 2016
Referencias
1. Imágenes de bloques de programación. Software LEGO® MINDSTORMS ®Education EV3 Edición para estudiantes
versión 1.4.2 (20180509.1) en español.
2. PRONIE MEP-FOD (2018) Propuesta Robótica Educativa I y II ciclos. San Jose, Costa Rica.