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

  1. 3D-Druck: 3MF-Dateien herunterladen und GehÀuse drucken (0.2 mm Schichthöhe, PLA).
  2. Hardware-Montage: Komponenten im GehĂ€use befestigen und gemĂ€ĂŸ Anschlussplan verkabeln.
  3. 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.
  4. 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