Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Komponenten & Materialien

KomponenteMengeHinweis
Arduino UNO1
WS2811 individuell ansteuerbare 12mm LEDs (DC 5V, Stränge à 50 Stück)4 Stränge (ca. 170-200 LEDs gesamt)Für Ghosts 170, Ms. Pac-Man 151, Pac-Man 137 LEDs
5V DC Powerbank (Handy-Ladegerät) + USB-auf-DC-Adapter1Stromversorgung (keine 12V-Batteriepacks!)
1,5 mm Pappe/Karton (lasergeschnitten)ca. 4 Bögen 32x18"Basis & Pixel-Gitter
Transluzentes Papier (Vellum/Mylar/Drafting Paper)1 RolleLichtdiffusor
DC-Power-Jack-Adapter (Buchse & Stecker)2Für LED-Stränge & Powerbank
Breadboard-Jumper-Wires1 Set
5V Netzteil (zum Testen)1
Velcro-Klettband, Gewebeband, Duct Tapenach BedarfBefestigung & Isolierung

Benötigte Werkzeuge & Maschinen

Über dieses Projekt

Intro

Wir machen gerne Familienkostüme. Letztes Jahr „Aliens“ (Silber + LED-Strips) – die LEDs machten die Kids nachts gut sichtbar. Diesmal: Pac-Man! Meine Tochter schlug es vor, nachdem sie das Original im Bowlingcenter gespielt hatte. Perfekte Idee.

Planung

Ziel: Authentische 8-Bit-Sprites aus dem Originalspiel. Sprites für Pac-Man, Ms. Pac-Man, Geister (Blinky, Pinky) recherchiert – zeigen jeden Animationsframe (Mundöffnung, Geisterbeine).

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Jeden Frame in Excel gelegt → exakte LED-Positionen & Gesamtlayout pro Kostüm. Geister: 14×14 Pixel, Pac-Man: 13×13, Ms. Pac-Man: 14×14.

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Größe: Alle Panels gleich große Pixel. Skalierung am kleinsten Familienmitglied (Sohn) ausgerichtet: 22" (56 cm) Panel-Höhe/Breite → 22"/14 Pixel = 1,57"/Pixel (ca. 40 mm).

Materialwahl

Leichtgewicht für Tragekomfort: 1/8" (3 mm) Pappe, lasergeschnitten, heißgeklebt. Transluzentes Papier als Diffusor. WS2811 LEDs (einzeln ansteuerbar). Arduino Uno R3. Powerbank (5V) + USB-DC-Adapter.

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Der Rahmen (Base)

Lasercutter (32"x18") → Pappe auf Maß zuschneiden. Panel besteht aus: Basis (hält LEDs), Stege (horizontal/vertikal = Pixelwände & Stabilität), Diffusor-Papier, Tragegurt.

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Modellierung (Rhino)

Alle Teile präzise in Rhino modelliert: Stege schieben sich ineinander & rasten in Basis ein → perfekte Quadrate, wenig Kleber nötig.

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Lasercutten

DWG-Dateien für Geister, Pac-Man, Ms. Pac-Man im Original (für 32"x18" Bett). Zum Lasercutten senden oder als Vorlage zum manuellen Schneiden nutzen (Pixel: ~40 mm quadratisch, 50 mm tief, 12 mm LED-Loch).

Montage

  1. Basis in zwei Teilen (Bettbreite 18" < 22") → Duct Tape zusammenkleben (vorläufig).
  2. Stege beschriftet (H1, H2… V1, V2…), ineinander schieben (1/32" Spiel), in Basis einrasten (Kreuzförmige Löcher).
  3. Stege an Basisenden mit Duct Tape fixieren, oben links Heißkleber für zusätzlichen Halt.
  4. Stege haben Nasen durch Basis → Rückseitig Heißkleber auf Nasen für festen Sitz.
  5. Nachträgliche Erkenntnis: Rückwand fehlte! LEDs drückten beim Laufen nach innen → Pixel verschwammen. Notlösung: 2,5" Pappstreifen hinten anbringen. Besser: Vollständige Rückwand einplanen!

LED-Layout & Bestückung

In Excel 170 LEDs (Geister) nummeriert (0-169). Wichtig: Abstand zwischen LEDs auf Strang (~75 mm) → benachbarte Pixel im Layout. Startpunkt nah an Arduino/Powerbank-Position.

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

LEDs von hinten in Löcher drücken (Flansch hält). Pappe etwas labberig → Heißkleber-Tupfer auf LED-Rückseite sichert Position.

Verkabelung

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Stromversorgung

Richtig: 5V Powerbank (Powerbank) + USB-DC-Adapter → LED-Strang (weibliche DC-Buchse).
Mein Fehler: 8×AA-Batteriepack (12V) aus Vorjahr genutzt – LEDs sind 5V! Funktionierte zwar, aber nur 2h Laufzeit. Mit 5V Powerbank: 2200 mAh → 3h 40min, 7800 mAh → 12h 43min. Günstige „Lipstick“-Powerbank reicht für ~4h.

LED-Datenleitung

Erster LED-Strang: Power-In (Rot=5V, Weiß=GND) an DC-Buchse. Powerbank dort anschließen. Dann 5V, GND, Data (Grün bei mir – Farben prüfen!) von erster LED an Arduino: 5V, GND, Pin 3 (DATA).

Code (FastLED Library)

Programmierung: FastLED Library nutzen (einfach, Web-Farbnamen). Logik: Alle LEDs mit Hauptfarbe füllen, dann einzelne Pixel für jeden Animationsframe umfärben/ausschalten. Frames in Arrays, durchlaufen mit Timing.

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Geister-Animation (Blinky/Pinky)

// 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(); 
} 

// Pixel-Indizes für Augen, Pupillen, Füße, trauriger Geist etc. 
// (Arrays aus Originalcode: eyes_pixels_l, pupils_pixels_l, eyes_pixels_r, pupils_pixels_r, 
// void_pixels_1, void_pixels_2, sad_ghost) 

int eyes_seconds = 2; 
int reg_ghost_seconds = 10; 
int feet_delay = 120; // ms zwischen Fuß-Phasen 
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() { 
  // Normaler Geist: Augen schauen links/rechts, Füße wippen 
  for (int i = 0; i < reg_ghost_loop; i++) { 
    for (int i = 0; i < eye_loop; i++) { 
      // Links schauen + Füße Phase 1 
      fill_solid(leds, NUM_LEDS, CRGB::Red); 
      setPixels(eyes_pixels_l, 24, CRGB::White); 
      setPixels(pupils_pixels_l, 8, CRGB::DarkBlue); 
      setPixels(void_pixels_1, 12, CRGB::Black); 
      FastLED.show(); delay(feet_delay); 
      // Links schauen + Füße Phase 2 
      fill_solid(leds, NUM_LEDS, CRGB::Red); 
      setPixels(eyes_pixels_l, 24, CRGB::White); 
      setPixels(pupils_pixels_l, 8, CRGB::DarkBlue); 
      setPixels(void_pixels_2, 10, CRGB::Black); 
      FastLED.show(); delay(feet_delay); 
    } 
    for (int i = 0; i < eye_loop; i++) { 
      // Rechts schauen + Füße Phase 1 & 2 (analog) 
      // ... 
    } 
  } 
  // Trauriger Geist (blau, gelbe Augen) 
  for (int i = 0; i < sad_ghost_loop; i++) { /* ... */ } 
  // Trauriger Geist blinkend 
  for (int i = 0; i < sad_ghost_blink_loop; i++) { /* ... */ } 
} 

// Hilfsfunktion: Array von Pixeln auf Farbe setzen 
void setPixels(int* pixels, int count, CRGB color) { 
  for (int i = 0; i < count; i++) leds[pixels[i]] = color; 
}

Ms. Pac-Man Animation

// ANIMATED MS PACMAN LED 
#include "FastLED.h" 
#define NUM_LEDS 151 
#define DATA_PIN 3 
CRGB leds[NUM_LEDS]; 

void setup() { 
  delay(2000); 
  FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS); 
  FastLED.setBrightness(40); 
  FastLED.clear(); 
} 

// Pixel-Arrays für Mund offen/halb/zu, rote Schleife, blaue Augen, schwarze Details 
// (void_pixels_opened/mid/closed, red_opened/mid/closed, blue_opened/mid/closed, black_opened/mid/closed) 

int frame_rate_ms = 100; 

void loop() { 
  // Mund OFFEN 
  fill_solid(leds, NUM_LEDS, CRGB::Yellow); 
  setPixels(void_pixels_opened, 64, CRGB::Black); 
  setPixels(red_opened, 20, CRGB::Red); 
  setPixels(blue_opened, 3, CRGB::Blue); 
  setPixels(black_opened, 5, CRGB::Purple); 
  FastLED.show(); delay(frame_rate_ms); 

  // Mund HALB 
  fill_solid(leds, NUM_LEDS, CRGB::Yellow); 
  setPixels(void_pixels_mid, 39, CRGB::Black); 
  setPixels(red_mid, 20, CRGB::Red); 
  setPixels(blue_mid, 3, CRGB::Blue); 
  setPixels(black_mid, 4, CRGB::Purple); 
  FastLED.show(); delay(frame_rate_ms); 

  // Mund ZU 
  fill_solid(leds, NUM_LEDS, CRGB::Yellow); 
  setPixels(void_pixels_closed, 2, CRGB::Black); 
  setPixels(red_closed, 20, CRGB::Red); 
  setPixels(blue_closed, 2, CRGB::Blue); 
  setPixels(black_closed, 5, CRGB::Purple); 
  FastLED.show(); delay(frame_rate_ms); 

  // Mund HALB (Rückwärts) 
  fill_solid(leds, NUM_LEDS, CRGB::Yellow); 
  setPixels(void_pixels_mid, 39, CRGB::Black); 
  setPixels(red_mid, 20, CRGB::Red); 
  setPixels(blue_mid, 3, CRGB::Blue); 
  setPixels(black_mid, 4, CRGB::Purple); 
  FastLED.show(); delay(frame_rate_ms); 
}

Pac-Man Animation

// ANIMATED PACMAN LED 
#include "FastLED.h" 
#define NUM_LEDS 137 
#define DATA_PIN 3 
CRGB leds[NUM_LEDS]; 

void setup() { 
  delay(2000); 
  FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS); 
  FastLED.setBrightness(40); 
  FastLED.clear(); 
} 

int void_pixels_opened[] = {19,20,21,22,23,24,25,26,27,28,29,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,94,95,96,97,98,99,100,101,102,103,104,105,121,122,123,124,125,126}; 
int void_pixels_mid[] = {46,47,48,49,50,51,52,53,54,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,98,99,100}; 
int frame_rate_ms = 100; 

void loop() { 
  // Mund OFFEN 
  fill_solid(leds, NUM_LEDS, CRGB::Yellow); 
  setPixels(void_pixels_opened, 61, CRGB::Black); 
  FastLED.show(); delay(frame_rate_ms); 

  // Mund HALB 
  fill_solid(leds, NUM_LEDS, CRGB::Yellow); 
  setPixels(void_pixels_mid, 27, CRGB::Black); 
  FastLED.show(); delay(frame_rate_ms); 

  // Mund ZU 
  fill_solid(leds, NUM_LEDS, CRGB::Yellow); 
  FastLED.show(); delay(frame_rate_ms); 

  // Mund HALB (Rückwärts) 
  fill_solid(leds, NUM_LEDS, CRGB::Yellow); 
  setPixels(void_pixels_mid, 27, CRGB::Black); 
  FastLED.show(); delay(frame_rate_ms); 
}

Diffusor-Papier aufbringen

Am Ende (Papier reißt leicht). Rolle Drafting Paper (Vellum/Mylar) – breit genug für nahtlose Abdeckung. Elmers-Kleber (weißer Leim) auf Oberkante der vertikalen Stege streichen, Papier auflegen, mit Büchern beschweren bis trocken. Überstehenden Rand umfalten & festkleben.

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Einsatzbereit machen

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Ergebnis & Spaß

Fertig! 8-Bit-Familie in die Nachbarschaft schicken – Nachbarn staunen, Süßigkeiten sammeln.

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen
DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Fragen? Gerne stellen!

Custom Parts (Lasercutter-Dateien)

Schaltplan

DIY Pac-Man LED-Pixel-Panel-Kostüm: Leuchtender Halloween-Klassiker selbst bauen

Herstellungsprozess

  1. Leuchtdioden (LED): Von der Entdeckung zur 100-Jahre-Lebensdauer
  2. Arduino Nano Flight Simulator 2020 Kontrollpanel – LCD & CDI Display
  3. Arduino-basiertes Schalter- & LED-Panel für Microsoft Flight Simulator 2020
  4. Arduino Coffin Dance Melodie-Projekt – Viralen Hit nachbauen & abspielen
  5. DIY Wolken-Kostüm: LED-Streifen, Arduino Nano & SparkFun Teile
  6. Einen beeindruckenden 5x5x5 LED-Würfel mit Arduino Mega bauen
  7. LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
  8. Soundgesteuerte 8-LED-Lichtanzeige mit Arduino
  9. Intelligenten Arduino-Vierbeiner-Roboter bauen: Schritt-für-Schritt-Anleitung
  10. Pixel Chaser: Interaktives One-Tap-LED-Spiel mit Arduino Nano