← Índice Valentina Tech
Misión 8 · Bitácora de Misiones · Astra-7

El núcleo

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)

  1. Define el diccionario modos con los 3 colores.
  2. Usa A para poner "tranquilo" y B para poner "alerta".
  3. Haz que cada modo se vea diferente: tranquilo parpadea lento (0.5 s), alerta
    parpadea rápido (0.1 s), 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)

🧱 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

🛠️ Cómo hacerlo (paso a paso)

  1. Recorta un círculo de cartón (la base) y una flecha.
  2. Escribe alrededor del círculo los modos: TRANQUILO, ALERTA, REPOSO.
  3. Une la flecha al centro con el encuadernador, de modo que gire.
  4. 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úlalos TRANQUILO y ALERTA, y cambia de modo
tocándolos (con cp.touch_A1 / cp.touch_A2). Conecta todo antes de arrancar y, si
un mando se activa solo, pon cp.adjust_touch_threshold(200) al inicio (como en la Misión 2).

✅ Misión cumplida cuando…

🏅 Insignia: "Cerebro en línea".

Valentina Tech · Circuit Playground Express · CircuitPython