Projektübersicht
Das Projekt umfasst die Entwicklung eines interaktiven LED-Spielgeräts mit fünf Spielmodi: Reaktionsspiel, Farben-Memory, LED-Timing, LED-Lauflicht und Rhythm Master. Es nutzt einen Mikrocontroller, einen WS2812 LED-Ring, ein OLED-Display, Taster und einen Buzzer. Das Gehäuse wird mittels 3D-Druck hergestellt.
Hardware-Komponenten
- Mikrocontroller: ESP32-basierter Mikrocontroller mit Deep-Sleep-Unterstützung. ESP32 auf Amazon
- WS2812 LED-Ring (24 LEDs): Adressierbarer LED-Ring, gesteuert über FastLED. LED-Ring auf Amazon
- OLED-Display (128x64, SSD1306): Monochromes Display für Spielinformationen. OLED-Display auf Amazon
- Taster (4 Stück): Farbige Taster (Rot, Grün, Blau, Gelb) für die Steuerung. Taster auf Amazon
- Buzzer: Aktiver Buzzer für akustisches Feedback. Buzzer auf Amazon
- Schalter (Ein/Aus-Knopf an der Oberseite): Ein-/Ausschalter für das Gerät. Schalter auf Amazon
- Batteriegehäuse (4x AAA): Stromversorgung für das Gerät. Batteriegehäuse auf Amazon
- Zusätzliche Materialien: WAGO-Klemmen und einige Leitungen wurden verwendet, die vorhanden waren.
Anschlussplan
| Komponente | Anschluss am ESP32 | Beschreibung |
|---|---|---|
| WS2812 LED-Ring | GPIO 13 | Datenleitung für die Steuerung des LED-Rings (24 LEDs). |
| 5V | Stromversorgung für den LED-Ring. | |
| GND | Masseverbindung für den LED-Ring. | |
| OLED-Display (SSD1306) | SDA (GPIO 21) | I2C-Datenleitung (Adresse 0x3C). |
| SCL (GPIO 22) | I2C-Taktleitung. | |
| VCC | 3.3V oder 5V (je nach Modell). | |
| GND | Masseverbindung für das Display. | |
| Roter Taster | GPIO 4 | Eingangs-Pin mit internem Pull-up-Widerstand. |
| GND | Masseverbindung für den Taster. | |
| Grüner Taster | GPIO 5 | Eingangs-Pin mit internem Pull-up-Widerstand. |
| GND | Masseverbindung für den Taster. | |
| Blauer Taster | GPIO 18 | Eingangs-Pin mit internem Pull-up-Widerstand. |
| GND | Masseverbindung für den Taster. | |
| Gelber Taster | GPIO 19 | Eingangs-Pin mit internem Pull-up-Widerstand. |
| GND | Masseverbindung für den Taster. | |
| Buzzer | GPIO 12 | PWM-Ausgang für die Ansteuerung des aktiven Buzzers. |
| GND | Masseverbindung für den Buzzer. | |
| ESP32 Stromversorgung | VIN / 5V | 5V-Eingang für die Stromversorgung. |
| GND | Masseverbindung für den Mikrocontroller. |
Hinweise
- Pull-up-Widerstände: Interne Pull-up-Widerstände des ESP32 werden verwendet (INPUT_PULLUP).
- I2C-Pins: Standard-I2C-Pins (GPIO 21 für SDA, GPIO 22 für SCL).
- Stromversorgung: Externe 5V-Stromquelle für den LED-Ring bei hohem Strombedarf empfohlen.
- Buzzer: Aktiver Buzzer, kompatibel mit 3.3V oder 5V.
Software
Die Software wurde in C++ für die Arduino-Plattform geschrieben und nutzt folgende Bibliotheken:
- FastLED: Steuerung des WS2812 LED-Rings.
- Adafruit_GFX und Adafruit_SSD1306: Ansteuerung des OLED-Displays.
- Wire: I2C-Kommunikation für das Display.
- EEPROM: Speicherung von Highscores und Buzzer-Einstellungen.
- ESP32-spezifische Funktionen: Unterstützung für Deep-Sleep.
Spielmodi
- Reaktionsspiel: Schnelles Drücken des Tasters, der der LED-Farbe entspricht.
- Farben-Memory: Nachspielen einer sich verlängernden Farbsequenz.
- LED-Timing: Taster drücken, wenn weiße LED die farbige Ziel-LED erreicht.
- LED-Lauflicht: Taster drücken, wenn laufende LED die richtige Farbe hat.
- Rhythm Master: Melodie durch rhythmisches Drücken der Taster nachspielen.
Besondere Funktionen
- Highscore-Speicherung: Highscores werden im EEPROM gespeichert.
- Buzzer-Steuerung: Ein-/Ausschalten durch Drücken von rotem und gelbem Taster.
- Highscore-Reset: Zurücksetzen durch Drücken aller Taster für 2 Sekunden.
- Deep-Sleep: Energiesparmodus nach 5 Minuten Inaktivität.
- Werbemodus: Melodie und LED-Muster nach 30 Sekunden Inaktivität.
Aufbau und Verkabelung
Die Komponenten sind wie im Anschlussplan verkabelt. Das 3D-gedruckte Gehäuse bietet Platz für:
- LED-Ring und Display an der Oberseite für Sichtbarkeit.
- Taster zugänglich für die Bedienung.
- Mikrocontroller und Verkabelung sicher im Inneren.
Installation und Inbetriebnahme
- 3D-Druck: 3MF-Dateien herunterladen und Gehäuse drucken (0.2 mm Schichthöhe, PLA).
- Hardware-Montage: Komponenten im Gehäuse befestigen und gemäß Anschlussplan verkabeln.
- Software-Installation:
- Arduino IDE und ESP32-Board-Unterstützung installieren.
- Bibliotheken (FastLED, Adafruit_GFX, Adafruit_SSD1306, Wire) herunterladen.
- Code in die Arduino IDE kopieren und auf den ESP32 laden.
- Testen:
- Gerät einschalten; Display zeigt "Ready! Select Game".
- Spiele testen: Rot (Spiel 1), Grün (Spiel 2), Blau (Spiel 3), Gelb (Spiel 4), Blau+Gelb (Spiel 5).
- Buzzer-Funktion und Highscore-Reset überprüfen.
Herausforderungen und Lösungen
- Energieverbrauch: Deep-Sleep-Modus mit Taster-Interrupt implementiert.
- Taster-Entprellung: Software-Debouncing durch 50ms-Verzögerung.
- Speicherbeschränkung: Sequenzlänge auf 50 begrenzt.
- Benutzerfreundlichkeit: Werbemodus und klare Display-Anzeigen.
Fazit
Das Projekt zeigt, wie ein interaktives Spielgerät mit einfachen Komponenten und 3D-Druck realisiert werden kann. Die Kombination aus LEDs, Display, Buzzer und Tastern sorgt für eine ansprechende Spielerfahrung. Es ist anpassbar und erweiterbar durch Open-Source-Bibliotheken und 3D-Druck.
Anhang
- Amazon-Links für Komponenten:
- Mikrocontroller: ESP32 auf Amazon
- WS2812 LED-Ring: LED-Ring auf Amazon
- OLED-Display: OLED-Display auf Amazon
- Taster: Taster auf Amazon
- Buzzer: Buzzer auf Amazon
- Schalter (Ein/Aus-Knopf): Schalter auf Amazon
- Batteriegehäuse (4x AAA): Batteriegehäuse auf Amazon
- Quellcode: Verfügbar als ColorGame.ino, nutzt die genannten Bibliotheken.
- Online-Simulation: Simulation des Projekts auf Wokwi: Wokwi Projekt
- 3D-Design: 3D-Modell des Projekts auf Onshape: Onshape Projekt

Daniel (2026-02-03 17:27:27)
großartig! schon nachgebaut - Vielen Dank für das tolle Projekt!