Objetivos
En este laboratorio aprenderás a:
- Diseñar un sistema completo desde cero.
- Organizar código en bloques lógicos claros.
- Combinar sensores, estados, bucles y eventos.
- Pensar como diseñador de interacción.
- Construir un proyecto funcional tipo “dispositivo inteligente”.
Material necesario
- Circuit Playground Express
- Cable USB
- Computadora con CircuitPython
- Todos los conocimientos de laboratorios anteriores
Introducción
Hasta ahora has aprendido piezas importantes:
- luces (NeoPixels)
- sensores (luz y sonido)
- botones
- estados
- bucles
- lógica condicional
Pero un problema típico en programación es este:
👉 saber muchas cosas, pero no saber cómo juntarlas
🧠 ¿Qué es un proyecto completo?
Un proyecto completo es un sistema que:
- tiene un objetivo claro
- usa múltiples entradas (sensores)
- toma decisiones
- produce una salida coherente
- funciona de forma continua
🧠 Analogía sencilla
Es como una máquina expendedora:
- detecta monedas
- verifica selección
- entrega producto
- responde errores
Todo está conectado.
🌐 Proyecto del laboratorio
Vamos a construir un sistema llamado:
👉 Guardia inteligente de ambiente
Este sistema:
- detecta luz
- detecta sonido
- usa botones
- cambia estados
- muestra alertas con luces
🧩 Diseño del sistema
Estados del sistema
- calma
- alerta
- alarma
Reglas del sistema
- Mucho sonido → alarma
- Oscuridad → alerta
- Botón A → calma
- Botón B → alarma manual
Nuestro octavo programa
Código completo
import time
from adafruit_circuitplayground import cp
estados = {
"calma": (0, 0, 255),
"alerta": (255, 255, 0),
"alarma": (255, 0, 0)
}
estado = "calma"
cp.pixels.brightness = 0.2
while True:
luz = cp.light
sonido = cp.sound_level
# BOTONES (control manual)
if cp.button_a:
estado = "calma"
if cp.button_b:
estado = "alarma"
# SENSORES (control automático)
if sonido > 65:
estado = "alarma"
elif luz < 15:
estado = "alerta"
# SALIDA VISUAL
color = estados[estado]
for i in range(10):
cp.pixels[i] = color
time.sleep(0.1)
Explicación del diseño
1. Separación de responsabilidades
El programa tiene 3 partes:
- entradas (sensores y botones)
- lógica (decisiones)
- salida (luces)
2. Control manual
if cp.button_a:
estado = "calma"
El usuario puede “resetear” el sistema.
if cp.button_b:
estado = "alarma"
El usuario puede forzar una alerta.
3. Control automático
if sonido > 65:
estado = "alarma"
El sistema detecta peligro por sonido.
elif luz < 15:
estado = "alerta"
Detecta oscuridad como condición de alerta.
4. Visualización
for i in range(10):
cp.pixels[i] = color
Todo el sistema se representa con color.
💡 Curiosidad:
Este tipo de arquitectura se usa en sistemas de seguridad reales.
Cómo funciona físicamente
- Sensores captan el entorno
- Botones permiten intervención humana
- Reglas deciden el estado
- Estado define comportamiento
- LEDs muestran la situación
👉 Es un ciclo completo de percepción y acción
Retos del laboratorio
🟢 Reto 1: Modo nocturno inteligente
Agrega:
- si está oscuro + sonido bajo → modo “silencioso” (azul tenue)
💡 Objetivo: combinar múltiples condiciones.
🟡 Reto 2: Historial de eventos
Haz que:
- si hay 3 alarmas seguidas → parpadeo rojo constante
💡 Objetivo: introducir memoria del sistema.
🔴 Reto 3: Panel de control
Agrega más botones o combinaciones:
- A + B juntos → modo mantenimiento (verde fijo)
💡 Objetivo: crear control avanzado.
Resumen del laboratorio
En este laboratorio aprendiste:
- Cómo diseñar un sistema completo.
- Cómo organizar entradas, lógica y salidas.
- Cómo combinar sensores y control manual.
- Cómo construir un proyecto funcional real.
- Cómo pensar como diseñador de sistemas interactivos.
Ahora tu placa ya no ejecuta solo programas:
👉 ahora es un sistema completo de monitoreo inteligente con comportamiento definido
Valentina Tech