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
Voodoo (2025-05-23 13:45:15)
Mega cool đ