DIY Arcade: 1D-Shooter mit Arduino, LED-Streifen und OLED

Vor ein paar Wochen hat mir ein Kumpel ein richtig cooles Video geschickt – ein simpler, aber genialer 1D-Shooter, bei dem man mit Tasten angreifende Pixel auf einem LED-Streifen abwehrt. Das sah so verdammt einfach und gleichzeitig so befriedigend aus, dass ich direkt dachte: „Das baue ich nach!“ Und weil ich eh gerade Lust auf ein neues Bastelprojekt hatte, ging’s los.

Der erste Prototyp: Quick und dirty, aber funktioniert!

Ich hatte noch einen Arduino Uno, einen Rest WS2812B-LED-Streifen (die bunten RGB-Dinger) und ein paar Taster in meiner Bastelkiste rumliegen. Rot, grün, blau – perfekt für die drei Farben, die im Spiel vorkommen sollten. Also alles schnell zusammengesteckt:

  • LED-Streifen an 5V und die Datenleitung an Pin 6 des Uno.
  • Taster an Pin 2, 3 und 4 (mit Pull-Down-Widerständen, damit die Eingaben sauber sind).
  • Ein kurzes Testprogramm reingehauen – und zack: Schon funktionierte die Grundmechanik!

Die Regeln sind simpel:

  • Von rechts kommen bunte Pixel (rot, grün, blau) angerauscht.
  • Drückst du den richtigen Taster, wird das Pixel zerstört – boom!
  • Drückst du den falschen oder lässt die Pixel bis zum Ende durchlaufen, ist Game Over.

Das lief auf Anhieb. Kein Gefrickel, kein Debugging – einfach plopp, und es hat funktioniert. Das Gefühl, wenn so ein Projekt direkt tut, was es soll? Unbezahlbar.

Von „funktioniert“ zu „richtig geil“ – die Upgrades

Okay, der erste Wurf war schon cool, aber jetzt ging’s ans Eingemachte:

  1. Sound! Ein Piezo-Speaker musste her – Arcade-Sounds machen einfach alles besser.
  2. Punkteanzeige! Bisher hatte ich nur die LEDs als Feedback, aber eine Highscore-Anzeige wäre doch mal was.
  3. Portabel! Das Ding sollte nicht nur auf dem Schreibtisch rumliegen, sondern auch mitgenommen werden können. Also: Alles in eine kleine Holzbox gepackt.

Für die Anzeige hatte ich noch ein OLED-Display (SSH1106, 128×64 Pixel) von einem alten Projekt rumliegen. Perfekt, dachte ich – klein, scharf, und über I2C einfach anzuschließen. Also Display dran, Code angepasst… und dann ging der Ärger los.

Das große Rätsel: Warum hängt alles?

Zuerst dachte ich, ich hätte einen Kurzschluss oder einen Wackelkontakt. Aber:

  • LED-Streifen allein? Läuft wie geschmiert.
  • OLED allein? Kein Problem.
  • Beides zusammen? Nach ein paar Sekunden: Freeze.

Ich habe alles durchprobiert:

  • Andere Pins? Kein Erfolg.
  • Andere Kabel? Nichts.
  • Spannungsversorgung gecheckt? Alles stabil.

Dann der Geistesblitz: Vielleicht ist der Arduino einfach zu schwach? Ich hatte noch einen Arduino Leonardo rumliegen – Pinbelegung gleich wie beim Uno, also schnell getauscht. Und tatsächlich: Es lief etwas besser, aber immer noch nicht stabil. Immer wieder Stocken, Freezes, Neustarts.

Die Lösung: Mehr Power!

Jetzt wurde’s ernst. Ich habe mich schlau gemacht:

  • Arduino Uno: 2 KB SRAM
  • Arduino Leonardo: 2,5 KB SRAM
  • WS2812B-LED-Streifen: Jede LED braucht Speicher für ihre Farbwerte.
  • OLED-Display (SSH1106): Auch nicht gerade sparsam mit dem RAM.

Fazit: Der Uno und der Leonardo haben einfach nicht genug Arbeitsspeicher, um beides gleichzeitig sauber zu betreiben. Also musste ein Arduino Mega her – der hat 8 KB SRAM und sollte das Problem lösen.

Am nächsten Tag kam die Lieferung, ich habe den Mega eingebaut… und boom: Alles läuft wie am Schnürchen! Kein Hängen, kein Stocken, einfach perfekt.

Feinschliff: Jetzt wird’s richtig arcade-mäßig!

Jetzt ging’s ans Feintuning:

  • Schwierigkeitsgrad steigt mit der Spielzeit – je länger du überlebst, desto schneller kommen die Pixel.
  • Nachzieheffekte – wenn du einen Treffer landest, gibt’s eine kleine Animation.
  • Bessere Sounds – der Piezo-Speaker klingt jetzt weniger wie ein sterbender Roboter und mehr wie ein echter Arcade-Automat.
  • Highscore-Anzeige auf dem OLED – damit du deinen Freunden beweisen kannst, wer der bessere Pixel-Jäger ist.

Das Ergebnis: Ein portabler 1D-Shooter zum Mitnehmen

Hier seht ihr die finale Version in Aktion:

Was kommt als Nächstes? Ideen für Erweiterungen

Das Spiel ist schon jetzt richtig geil, aber es gibt noch so viel Potenzial:

  • Eine vierte Farbe (z. B. gelb) für noch mehr Chaos.
  • Ein richtiges Soundmodul (z. B. DFPlayer Mini) für bessere Audioqualität.
  • Mehrere Schwierigkeitsstufen oder ein Endlos-Modus.
  • Multiplayer? Vielleicht mit zwei LED-Streifen und getrennten Tastern?

Download: Download LED_Guardian_Final_byMiHu-Works.zip

Falls ihr das nachbaut, würde ich mich mega freuen, wenn ihr mich in euren Posts verlinkt oder mir ein Foto schickt – ich bin gespannt, was ihr daraus macht!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert