La nave ya siente, escucha y entiende señales. Pero le falta lo más importante de todo
cerebro: saber en qué modo está y comportarse distinto en cada uno. No es lo mismo
la nave explorando tranquila que la nave en plena alerta roja.
En esta misión construirás el núcleo de la Astra-7: una máquina de estados. Un
cerebro que vive siempre en un modo, cambia de modo cuando tú se lo indicas, y en cada
modo actúa de una forma diferente.
🎯 Tu misión
Crear un núcleo con 3 modos donde los botones cambian el modo y cada modo se comporta
distinto.
🎨 Ficha técnica (valores exactos)
| Modo | Color | Comportamiento | Pausa |
|---|---|---|---|
| tranquilo | Verde (0, 255, 0) |
Parpadeo lento | 0.5 s |
| alerta | Rojo (255, 0, 0) |
Parpadeo rápido | 0.1 s |
| reposo | Azul (0, 0, 255) |
Luz fija (no parpadea) | 0.2 s |
Controles: Botón A → "tranquilo" · Botón B → "alerta" · Brillo = 0.2
🧰 Tips para que lo hagas tú solo/a
Aquí tienes algunas piezas de código sueltas que puedes usar para escribir el
programa por tu cuenta. No son la solución completa: combínalas, cámbialas y ordénalas
hasta que tu nave haga lo que pide la misión.
A) Diccionario de modos y estado inicial:
modos = {
"tranquilo": (0, 255, 0),
"alerta": (255, 0, 0),
"reposo": (0, 0, 255),
}
estado = "tranquilo"
B) Cambiar de modo con botones:
if cp.button_a:
estado = "tranquilo"
elif cp.button_b:
estado = "alerta"
C) Que cada modo se comporte distinto (parpadeo = encender, esperar, apagar, esperar):
color = modos[estado]
if estado == "tranquilo": # parpadeo lento
cp.pixels.fill(color); time.sleep(0.5)
cp.pixels.fill((0,0,0)); time.sleep(0.5)
elif estado == "alerta": # parpadeo rápido
cp.pixels.fill(color); time.sleep(0.1)
cp.pixels.fill((0,0,0)); time.sleep(0.1)
else: # reposo: luz fija
cp.pixels.fill(color); time.sleep(0.2)
🛠️ Lo que tiene que hacer tu programa (obligatorio)
- Define el diccionario
modoscon los 3 colores. - Usa A para poner
"tranquilo"y B para poner"alerta". - Haz que cada modo se vea diferente: tranquilo parpadea lento (
0.5s), alerta
parpadea rápido (0.1s), reposo queda fijo.
👉 La clave: es el mismo programa, pero se ve y actúa distinto según el modo. ¡Eso
es una máquina de estados de verdad!
🌟 Si quieres ir más allá (reto opcional)
- Cuarto modo: añade
"energía"→ blanco(255,255,255)con parpadeo muy rápido
(0.05s), y una forma de activarlo.
🧱 Dale cuerpo a la nave: construye un selector de modo
Vas a darle al núcleo un selector de modo físico: un mando giratorio (una perilla)
que apunte al modo en el que está la nave.
💡 Ideas de material
- Cartón o cartulina para la base redonda y la flecha.
- Un encuadernador (brad) o una chincheta para que la flecha gire.
- Marcadores para escribir los nombres de los modos.
- (avanzado) pinzas + objetos conductores para un selector táctil.
🛠️ Cómo hacerlo (paso a paso)
- Recorta un círculo de cartón (la base) y una flecha.
- Escribe alrededor del círculo los modos: TRANQUILO, ALERTA, REPOSO.
- Une la flecha al centro con el encuadernador, de modo que gire.
- Colócalo junto a la placa y gira la flecha al modo que elijas cuando pulses el botón.
⚙️ Versión avanzada (como la Misión 2): en vez de perilla, conecta objetos
conductores a los pads A1 y A2, rotúlalosTRANQUILOyALERTA, y cambia de modo
tocándolos (concp.touch_A1/cp.touch_A2). Conecta todo antes de arrancar y, si
un mando se activa solo, poncp.adjust_touch_threshold(200)al inicio (como en la Misión 2).
- Puedes cambiar de modo con un control físico, no solo con los botones de la placa.
✅ Misión cumplida cuando…
- La nave tiene 3 modos con colores distintos.
- Los botones A y B cambian el modo.
- Cada modo se comporta diferente (lento / rápido / fijo).
🏅 Insignia: "Cerebro en línea".
Valentina Tech