Disfraz Panel LED Pac-Man Pixel Art: Clásico Brillante para Halloween DIY
Componentes y materiales
| Componente | Cantidad |
|---|---|
| Arduino UNO | 1 |
Herramientas y máquinas necesarias
- Cortadora láser (genérica) – No indispensable pero muy útil
Sobre el proyecto
Introducción
Nos gustan los disfraces familiares. El año pasado hicimos "aliens" espaciales: ropa plateada con tiras LED. Nos gustaron los LEDs: únicos y hacen visibles a los niños de noche. Decidimos repetir con luces, y mi hija sugirió Pac-Man (jugó en bolera semanas antes). ¡Idea genial, había que hacerlo!
Planificación
Elegimos personajes Pac-Man: Pac-Man, Ms. Pac-Man, fantasmas Blinky y Pinky. Buscamos sprites originales 8-bit para precisión.

Diseñé cada frame de animación en Excel para saber nº LEDs y layout. Fantasmas: 14x14 píxeles. Pac-Man: 13x13. Ms. Pac-Man: 14x14.

Tamaño panel: mismo tamaño relativo (mismo píxel físico). Escalado al miembro más pequeño (mi hijo). Medí y probé cartones: 22" (56cm) alto/ancho fantasmas. Escala: 22"/14px = 1.57"/px (40mm/px).
Materiales
- Base: Cartón 1/8" (3mm), corte láser + pegamento caliente
- Cubierta translúcida: Papel vegetal (Vellum o Mylar)
- LEDs: WS2811 12mm DC5V direccionables individualmente (tiras de 50)
- Placa: Arduino Uno R3
- Alimentación: Powerbank 5V DC (cargador portátil) + adaptador USB a DC
- Varios: Conectores DC jack, cables protoboard, fuente 5V DC (tests), velcro, cinta tejida, cinta ducto

La base
Con acceso a cortadora láser. Si no tienes, envía a corte láser o imprime PDF y recorta a mano.
Base de cartón 1/8" (tienda arte/aficiones). Cortadora 32"x18" → corté hojas a esa medida.
Panel: base (sostiene LEDs), lamas (píxeles + estabilidad), cubierta (difumina luz), correa (portabilidad).

Modelado: Rhino para archivos láser. Partes modeladas con precisión: lamas verticales/horizontales se encajan entre sí y en muescas de la base. Sin apenas pegamento, cuadrados perfectos para píxeles.

Corte láser: Archivos CAD para cama 32"x18". Incluido archivo .dwg fantasma. Úsalo para corte láser o imprime como plantilla manual. Píxeles ~1.5" (38mm) cuadrados, 2" (50mm) profundidad, agujero 12mm centro para LED.
Montaje: Base en 2 piezas (cama < 22"). Cinta ducto inicial en unión. Lamas etiquetadas H#/V# (Horizontal/Vertical + nº). Deslizan con holgura 1/32". Encajan en base (agujeros forma +). Cinta ducto en extremos + gota pegamento caliente esquina sup. izq. + pestañas traseras.
Reflexión posterior: ¡Error no prever tapa trasera! Añadí tiras 2.5" cartón horas antes de Halloween. Ayudó pero debería ser cerrada totalmente. Con trasera abierta, LEDs se empujan al caminar → píxeles dejan de ser cuadrados. Paré varias veces a recolocar.
Layout LEDs
Planificación en Excel: 170 LEDs (0-169) para fantasmas.

Clave: distancias entre píxeles y punto inicio. Si no quieres cortar/recablear tiras pre-cableadas, asegura que distancia entre LEDs (3" / 75mm en mi caso) permita alcanzar agujeros adyacentes en secuencia. Inicio cerca de montaje Arduino/alimentación.

Colocación LEDs: Empujar desde trasera siguiendo patrón Excel. Brida del LED sujeta en cartón. Cartón endeble → LEDs se mueven al caminar. Para fijar mejor: gota pegamento caliente en cada LED.
Cableado

Alimentación: Mejor powerbank 5V DC recargable + adaptador USB→DC a tira LEDs (conector hembra DC). Error mío: usé pack 8xAA con interruptor (del año anterior) → salida 12V para LEDs 5V. Funcionó pero solo 2h autonomía. Probé powerbanks correctos: 2200mAh → 3h40m; 7800mAh → 12h43m. Con "lipstick charger" barato ~4h.
LEDs: Tiras WS2811 12mm para señalización exterior (Amazon, tiras de 50).
Conexiones: Primer LED tira: power in (rojo 5V, blanco GND) → conector hembra DC jack → powerbank. Power, GND, DATA del primer LED → 5V, GND, pin 3 Arduino. Verifica colores cables tu tira (mía: Rojo=5V, Verde=DATA, Blanco=GND).
Código

Librería FastLED: fácil, ejemplos abundantes, usa colores web (nombres).
Lógica: llenar todos LEDs color principal, cambiar/apagar sets individuales por frame. Loop frames a velocidad X repeticiones Y = animación. Funcionó para mí.
Añadir la cubierta

Cubierta al final (papel frágil). Útil acceso frontal para ajustes LEDs.
Papel vegetal rollo (vellum o mylar). Buscar papel translúcido ancho completo (sin costuras). Tienda arte/online.
Pegamento blanco (Elmer) en borde sup. lamas verticales (no horizontales). Colocar papel, peso encima (libros) hasta secar. Recortar exceso, dejar margen para doblar y pegar bordes con cinta.
Listo para la calle

- Arduino y powerbank en trasera con velcro
- Cinta en conexiones para que no se suelten
- Correa para llevar (cinta tejida)
- Música/efectos Pac-Man en móvil + altavoz Bluetooth
¡Éxito!

Familia 8-bit lista para impresionar vecinos y recolectar dulces. ¡Gracias por leer! Preguntas bienvenidas.
Código
Animación Fantasma (LED Ghost)
// ANIMATED PACMAN GHOST LED
#include "FastLED.h"
#define NUM_LEDS 170
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
void setup() {
delay(2000);
FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
FastLED.setBrightness(40); // 0-255
FastLED.clear();
}
// Arrays de píxeles para ojos, pupilas (izq/der), pies, fantasma triste
int eyes_pixels_l[] = {17,20,21,24,37,38,39,40,41,47,48,49,94,102,103,106,119,120,121,122,123,129,130,131};
int pupils_pixels_l[] = {15,16,22,23,92,93,104,105};
int eyes_pixels_r[] = {38,39,40,46,47,48,49,50,63,66,67,75,120,121,122,128,129,130,131,132,145,148,149,152};
int pupils_pixels_r[] = {64,65,76,77,146,147,153,154};
int void_pixels_1[] = {8,29,30,31,83,84,85,86,138,139,140,161};
int void_pixels_2[] = {7,31,55,56,57,112,113,114,138,162};
int sad_ghost[] = {11,26,35,48,49,53,60,64,65,80,89,104,105,109,116,120,121,134,143,158};
int eyes_seconds = 2;
int reg_ghost_seconds = 10;
int feet_delay = 120; // ms entre frames patas
int eye_loop = (eyes_seconds*1000)/feet_delay;
int reg_ghost_loop = reg_ghost_seconds/eyes_seconds;
int sad_ghost_loop = 50;
int sad_ghost_blink_loop = 10;
void loop() {
// Fantasma normal: ojos miran izq/der alternando, patas animadas
for(int i=0; i
Ms. Pac-Man
// ANIMATED MS PACMAN LED
#include "FastLED.h"
#define NUM_LEDS 151
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
// Arrays para boca abierta/medio/cerrada, colores rojo/azul/negro (ojos)
// Loop: 4 frames (abierta, medio, cerrada, medio) a 100ms
Pac-Man
// ANIMATED PACMAN LED
#include "FastLED.h"
#define NUM_LEDS 137
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
// Arrays para boca abierta/medio/cerrada
// Loop: 4 frames (abierta, medio, cerrada, medio) a 100ms
Piezas personalizadas y cerramientos
ghostlaser-1_8th_v5_feTmMAM4r0.dwg: Archivos corte láser fantasma (cartón 1/8", cama 32"x18")pacman-mspacman-laser_KVFskMrPk4.dwg: Archivos corte láser Pac-Man y Ms. Pac-Man
Esquemático
Conexión LEDs, Arduino y powerbank portátil.

Proceso de manufactura
- Diodos Emisores de Luz (LED): Desde sus Inicios a Vidas de 100 Años
- Panel de control para Flight Simulator 2020 con Arduino Nano: Pantallas LCD y CDI
- Panel de interruptores y LEDs para Microsoft Flight Simulator 2020 con Arduino
- Proyecto Arduino Melodía Coffin Dance: Construya y Reproduzca el Viral Tune
- Disfraz de nube DIY: Tira LED, Arduino Nano y componentes SparkFun
- Construye un impresionante cubo LED 5x5x5 con Arduino Mega
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Pantalla de 8 LED activada por sonido con Arduino
- Construye un Robot Cuadrúpedo Inteligente con Arduino: Guía Paso a Paso
- Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano
- Mezclador de Colores RGB con Arduino – Proyecto DIY para Principiantes