LED Invader –  1D Arcade Game auf RP2040 Zero

LED Invader – 1D Arcade Game auf RP2040 Zero

28. November 2025 18:00 · Python · 3DDruck


Manchmal entstehen die besten Projekte aus einem kleinen Funken Inspiration. In meinem Fall war es ein Instagram-Reel, das mich nicht mehr losgelassen hat: ein vertikales LED-Spiel, bei dem farbige Blöcke nach unten fallen und man sie durch das Drücken der richtigen Buttons abschießen muss. Einfach, schnell, süchtig machend.

Was als kurzer Test begann, ist mittlerweile ein vollwertiges, erweiterbares Arcade-Game geworden: LED Invader – gebaut mit einem RP2040 Zero, CircuitPython, WS2812E-LEDs, einer SSD1306-OLED-Anzeige, drei Arcade-Buttons und einem kleinen PAM8302-Lautsprecher, der stilechte SID-Soundeffekte liefert.


🎥 Gameplay – LED Invader in Aktion


🎮 Was ist LED Invader?

LED Invader ist ein 1-dimensionaler Arcade Shooter, bei dem: - farbige Blöcke von oben nach unten fallen, - du per Knopfdruck die passende Farbe abschießen musst, - das Spiel immer schneller wird, - du Punkte und Level sammelst, - Sounds im C64-/SID-Stil das Spielgefühl abrunden, - und Power-ups für zusätzliche Action sorgen.

Trotz der einfachen Mechanik macht das Spiel erstaunlich viel Spaß und fühlt sich durch Geschwindigkeit, Licht und Sound fast wie ein Mini-Arcade-Automat an – und eignet sich dank der einfachen Steuerung sogar für die jüngsten Mitspieler ab etwa 3–4 Jahren.


🧩 Hardware

Für das Projekt verwende ich:

  • RP2040 Zero als Hauptcontroller
  • WS2812E LED-Strip (60 LEDs)
  • SSD1306 OLED (128×64) für HUD, Score, Level, Lives
  • PAM8302 Verstärker + Mini-Lautsprecher für Retro-Soundeffekte
  • 3 Arcade-Buttons (Rot, Grün, Blau)
  • ein 3D-gedrucktes Gehäuse

Jede LED stellt eine Position des vertikalen Spielfelds dar. Die Buttons sind farblich zugeordnet: rot, grün, blau. Trifft der Schuss auf den richtigen Block, wird die ganze Kette gleicher Farbe abgeräumt.


🔊 Retro-Soundengine

Besonders stolz bin ich auf die nicht-blockierende Synthesizer-Soundengine: - läuft per synthio + audiopwmio - erzeugt Square-Wave-Töne á la SID/C64 - mehrere Schritte pro Tonfolge - blockiert niemals das Gameplay

Dadurch fühlt sich LED Invader schnell und responsiv an – auch bei vielen Aktionen hintereinander.


⚡ Power-ups & Features

Neben Punkten und Levelaufstieg sind auch Power-ups eingebaut:

  • Slow Time – verlangsamt das Fallen für ein paar Sekunden
  • Mono Color Mode – alles wird zu einer einzigen Farbe
  • Rocket – schießt durch eine ganze Kette hindurch
  • Power-ups werden z.B. bei 3er-Ketten oder „Perfect Clears“ freigeschaltet

Das Spiel speichert außerdem den Highscore im NVM – selbst nach einem Neustart bleibt er bestehen. Dennoch bin ich weiterhin am Feinjustieren, damit das Spiel nicht zu leicht oder zu schwer wird, und überlege bereits, wie man zusätzliche Power-ups sinnvoll integrieren könnte.


🛠️ Der komplette Code

Der gesamte Quellcode ist Open Source und hier verfügbar:

👉 GitHub: https://github.com/gickowtf/LED_Invader

Und das dazu passende 3D-druckbare Gehäuse findest du hier:

👉 MakerWorld: https://makerworld.com/de/models/2046216-led-invader-1d-arcade-game


🚀 Fazit

Dieses Projekt hat mir mega Spaß gemacht – sowohl was Elektronik als auch was Software angeht. Es verbindet vieles, was ich liebe: - Retro-Games - LEDs - Microcontroller - Basteln - 3D-Druck

LED Invader ist definitiv eines meiner Lieblingsprojekte geworden – und es wird sicherlich noch Upgrades geben. Mehr Power-ups? Ein 2-Spieler-Modus? Noch mehr LEDs? Mal sehen 😄

Wenn du Fragen zum Aufbau, zur Software oder zu CircuitPython hast, schreib’s einfach in die Kommentare!

0 💬 1 🔁 1 ⭐