Objetivos
En este laboratorio aprenderás a:
- Entender qué es una lista en programación.
- Guardar múltiples valores en una sola variable.
- Acceder a elementos por posición (índices).
- Recorrer listas con bucles.
- Usar listas para controlar múltiples LEDs en Circuit Playground Express.
- Resolver problemas usando estructuras de datos.
Material necesario
- Circuit Playground Express
- Cable USB
- Computadora con CircuitPython
- Conocimientos de bucles y NeoPixels
Introducción
Hasta ahora has trabajado con variables como:
- color = (255, 0, 0)
- estado = "calma"
Pero hay un problema:
👉 ¿qué pasa si necesitas guardar muchos valores a la vez?
Por ejemplo:
- los 10 LEDs de la placa
- una secuencia de colores
- una lista de estados
- una serie de sonidos o patrones
Si usas variables separadas, el programa se vuelve caótico.
Aquí aparecen las listas.
📦 ¿Qué es una lista?
Una lista es una estructura que permite guardar muchos valores juntos.
Ejemplo:
colores = ["rojo", "verde", "azul"]
Esto significa:
- posición 0 → rojo
- posición 1 → verde
- posición 2 → azul
🧠 Analogía sencilla
Una lista es como:
- una fila de casilleros
- una caja con compartimentos
- una serie de cajones numerados
Cada elemento tiene una posición.
💡 Curiosidad:
Las listas son una de las estructuras más importantes en programación. Sin ellas, no existirían videojuegos ni aplicaciones modernas.
🔢 Índices en listas
En programación, las posiciones empiezan en 0:
colores = ["rojo", "verde", "azul"]
# 0 1 2
Esto es muy importante.
🎨 Listas con Circuit Playground Express
Vamos a usar listas para controlar los 10 LEDs.
Cada LED tiene una posición:
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
🧪 Ejemplo 1: encender una secuencia de colores
Código
import time
from adafruit_circuitplayground import cp
colores = [
(255, 0, 0), # rojo
(0, 255, 0), # verde
(0, 0, 255) # azul
]
cp.pixels.brightness = 0.2
while True:
for i in range(10):
color = colores[i % len(colores)]
cp.pixels[i] = color
time.sleep(1)
🔍 Explicación
1. Lista de colores
colores = [
(255, 0, 0),
(0, 255, 0),
(0, 0, 255)
]
Tenemos 3 colores guardados.
2. Usar módulo %
i % len(colores)
Esto significa:
👉 repetir la lista cuando se acabe
Ejemplo:
- 0 → rojo
- 1 → verde
- 2 → azul
- 3 → rojo otra vez
3. Aplicar colores a LEDs
Cada LED toma un color de la lista.
🧪 Ejemplo 2: encendido progresivo
import time
from adafruit_circuitplayground import cp
cp.pixels.brightness = 0.2
while True:
for i in range(10):
cp.pixels[i] = (0, 255, 0)
time.sleep(0.2)
time.sleep(1)
for i in range(10):
cp.pixels[i] = (0, 0, 0)
🔍 Resultado esperado
- Los LEDs se encienden uno por uno en verde
- Luego todos se apagan
- El ciclo se repite
🧪 Ejemplo 3: lista de estados visuales
import time
from adafruit_circuitplayground import cp
estados = [
(0, 0, 255), # calma
(255, 255, 0), # alerta
(255, 0, 0) # alarma
]
indice = 0
cp.pixels.brightness = 0.2
while True:
color = estados[indice]
for i in range(10):
cp.pixels[i] = color
time.sleep(1)
indice = indice + 1
if indice >= len(estados):
indice = 0
🔍 Resultado esperado
- Azul → calma
- Amarillo → alerta
- Rojo → alarma
- Luego vuelve a azul
🧠 Concepto clave
Las listas permiten:
- organizar información
- automatizar cambios
- reducir código repetido
- crear patrones complejos
🔧 Retos del laboratorio
🟢 Reto 1: Carril de luces
Crea una lista de un solo color:
- todos los LEDs deben encenderse uno por uno
- luego apagarse uno por uno
💡 Ejemplo esperado:
- LED 0 → verde
- LED 1 → verde
- LED 2 → verde
- …
- luego apagado en orden inverso
🟡 Reto 2: Patrón aleatorio
Crea una lista con 4 colores:
- rojo
- verde
- azul
- amarillo
Haz que cada LED tome un color aleatorio de la lista.
💡 Resultado esperado:
- cada vez que corre el programa, el patrón cambia
🔴 Reto 3: Memoria de colores
Haz que:
- cada vez que presionas botón A, se agrega un color a la lista
- el LED 0 siempre muestre el último color agregado
💡 Objetivo:
- simular memoria dinámica
🔴 Reto avanzado: secuencia musical visual
Crea una lista que represente una “melodía visual”:
- rojo → fuerte
- azul → suave
- verde → neutro
La secuencia debe repetirse como un ritmo.
💡 Ejemplo:
rojo → rojo → azul → verde → azul → rojo
🧠 Desafío final
Diseña un sistema que:
- use una lista de al menos 5 elementos
- controle todos los LEDs
- tenga movimiento o animación
- cambie según una condición (botón o sensor)
Resumen del laboratorio
En este laboratorio aprendiste:
- Qué es una lista en Python.
- Cómo almacenar múltiples valores en una sola variable.
- Cómo acceder a elementos por índice.
- Cómo usar listas con bucles.
- Cómo aplicar listas para controlar hardware real.
- Cómo crear patrones complejos con estructuras simples.
Ahora puedes organizar información como un programador real:
👉 no solo controlas una luz, ahora controlas grupos completos de comportamientos organizados
Valentina Tech