El Corazón de Mi Robot Amigo
¡Misión cumplida! Has cargado a tu robot con energía. Ahora es el momento de usar ese poder para desbloquear su función más importante: ¡un corazón que late! En esta misión, no solo crearás una animación, sino que le darás a tu robot un "estado de ánimo". Aprenderás a usar variables de estado para que el corazón de tu robot pueda pasar de un estado "activo" a uno "durmiente" con solo inclinar el dispositivo, cambiando su comportamiento en tiempo real.
Nivel Básico
¿Qué haremos?
¿Eres un profesor?
Cursos
- Grados 3-12
Materiales
- Microbit/celular y computador
- Conexión a Internet
- Cartón, tijeras y un par de elásticos para sujetar el celular al cartón
Descripción
Esta actividad culmina la introducción a las variables y eventos enseñando el concepto de "variables de estado". Los estudiantes verán cómo los eventos pueden modificar variables que están siendo leídas constantemente por un bucle principal. Esto les permite observar cómo la acción del usuario puede cambiar dinámicamente el comportamiento central de un programa en ejecución.
Objetivos Educativos
- Comprender el concepto de una "variable de estado".
- Utilizar eventos para modificar el estado de un programa.
- Observar cómo un bucle principal puede tener un comportamiento dinámico basado en variables.
- Crear un prototipo con diferentes "modos" de operación.
Inicio (10 minutos) - Los "Estados de Ánimo" de un Programa
- Da la bienvenida a los estudiantes: "¡Felicidades, han cargado el robot! Ahora, ¿qué hacemos con toda esa energía? Vamos a instalarle un corazón. Pero no un corazón cualquiera, uno que pueda cambiar su ritmo, como si tuviera estados de ánimo."
- Introduce el nuevo tipo de variable: "Antes, nuestra variable solo contaba hacia arriba. Ahora, nuestras variables describirán el 'estado' actual del robot. Por ejemplo, su corazón estará en estado 'tranquilo' o 'acelerado'. Estas se llaman variables de estado."
- Explica la dinámica: "Vamos a programar eventos de inclinación para cambiar el estado del robot, y veremos cómo su corazón reacciona instantáneamente. ¡Es como controlar su pulso con nuestras manos!"
Variables de Estado: El "Modo" del Programa
Hasta ahora, nuestra variable solo servía para contar. Pero una variable de estado es mucho más poderosa. No solo almacena un número, sino que describe el "modo" o "estado" actual en el que se encuentra el programa. Piensa en un personaje de videojuego. Puede estar en el estado "caminando", "corriendo" o "saltando". En nuestro caso, el corazón de nuestro robot puede estar en el estado "durmiente" o "despierto". Las variables de estado son la memoria que le permite al programa saber qué comportamiento debe tener en cada momento.
El Patrón: Eventos que Controlan un Bucle
En este proyecto, dos partes de nuestro código trabajarán en equipo sin tocarse directamente. ¡Se comunican a través de las variables!
- El Bucle Principal: Es el motor. Se encarga de la acción continua: animar el corazón. Pero no decide la velocidad por sí mismo; en cada ciclo, lee
pausaLargaypausaCortapara saber cuánto esperar entre un dibujo y el siguiente. - Los Eventos: Son los controles. Esperan una acción del usuario (inclinar el dispositivo). Cuando ocurre una, su único trabajo es escribir un nuevo valor en
pausaLargaypausaCorta. El bucle lee, los eventos escriben. Las variables son el mensaje que se pasan entre ellos.
Desarrollo (20-30 minutos) - Construyendo el Corazón Dinámico
- Ahora que entienden la diferencia entre un contador y una variable de estado, es hora de implementar este patrón de programación avanzado.
- Guía a los estudiantes a través de las instrucciones para construir el corazón animado y los eventos que controlan su velocidad, como se detalla a continuación. Es clave que identifiquen la "conversación" indirecta entre los eventos y el bucle principal.
Cierre (5-10 minutos) - La Conversación a Través de Variables
- Una vez que todos los corazones cambien de ritmo, es hora de analizar este poderoso patrón de diseño.
- Pregunta a la clase: "El bucle principal y los eventos no están conectados directamente. ¿Cómo 'sabe' el bucle que debe acelerar? ¿Cómo se comunican?" La respuesta es: a través de las variables compartidas. Utiliza la sección de reflexión para consolidar esta idea fundamental.
Reflexiona
En este proyecto, las variables no solo cuentan, controlan el comportamiento. ¿Qué es una "variable de estado"?
Explica con tus palabras cómo se comunican el bucle principal y los bloques de evento si no están conectados directamente.
¿Qué otros "estados" podrías darle a tu robot? ¿Quizás un estado "acelerado" donde el corazón late muy, muy rápido como si el robot estuviera corriendo?
Variables de Estado: El "Modo" del Programa
Hasta ahora, nuestra variable solo servía para contar. Pero una variable de estado es mucho más poderosa. No solo almacena un número, sino que describe el "modo" o "estado" actual en el que se encuentra el programa. Piensa en un personaje de videojuego. Puede estar en el estado "caminando", "corriendo" o "saltando". En nuestro caso, el corazón de nuestro robot puede estar en el estado "durmiente" o "despierto". Las variables de estado son la memoria que le permite al programa saber qué comportamiento debe tener en cada momento.
El Patrón: Eventos que Controlan un Bucle
En este proyecto, dos partes de nuestro código trabajarán en equipo sin tocarse directamente. ¡Se comunican a través de las variables!
- El Bucle Principal: Es el motor. Se encarga de la acción continua: animar el corazón. Pero no decide la velocidad por sí mismo; en cada ciclo, lee
pausaLargaypausaCortapara saber cuánto esperar entre un dibujo y el siguiente. - Los Eventos: Son los controles. Esperan una acción del usuario (inclinar el dispositivo). Cuando ocurre una, su único trabajo es escribir un nuevo valor en
pausaLargaypausaCorta. El bucle lee, los eventos escriben. Las variables son el mensaje que se pasan entre ellos.
Crear
¡Démosle un corazón a nuestro robot!
Construye el modelo de cartón— también necesitas un par de elásticos para sujetar el teléfono al cartón
- Presiona ✙ Añadir dispositivo y selecciona DibujoLED para la animación del corazón.
- Añade también el componente BateríaMusical para el sonido del latido.
- Finalmente, añade Inclinación para detectar los gestos que cambiarán el estado.
¡Estamos listos para darle vida a nuestro amigo!
Composición del Código
Al iniciar, fijamos pausaLarga y pausaCorta en el ritmo "tranquilo". Ojo: estas variables no guardan velocidad sino milisegundos de espera — mientras más espera, más lento late el corazón. El bucle principal usa constantemente estas variables para definir las pausas de la animación. Los dos bloques de evento de inclinación escuchan en segundo plano. Cuando inclinas el celular de lado, el evento correspondiente cambia los números en las variables a valores más pequeños, haciendo que el bucle (que siempre los está leyendo) se acelere. ¡El corazón se agita! Cuando lo vuelves a poner boca arriba, el otro evento restablece la velocidad normal. Y un detalle importante: el ritmo tranquilo aparece dos veces — en Al iniciar y en el gesto que devuelve la calma. Si cambias uno, cambia también el otro, o el gesto deshará tu ajuste.
Reflexiona
En este proyecto, las variables no solo cuentan, controlan el comportamiento. ¿Qué es una "variable de estado"?
Explica con tus palabras cómo se comunican el bucle principal y los bloques de evento si no están conectados directamente.
¿Qué otros "estados" podrías darle a tu robot? ¿Quizás un estado "acelerado" donde el corazón late muy, muy rápido como si el robot estuviera corriendo?