Dieses Projekt ist eine Implementierung des klassischen Snake-Spiels auf einem ESP32-Mikrocontroller mit einem Adafruit ST7789 TFT-Display und einem Joystick zur Steuerung. Die Bewegung der Schlange erfolgt rasterbasiert, mit anpassbarer Geschwindigkeit und Offset-Einstellungen.
- Rasterbasierte Bewegung der Schlange
- Dynamische Geschwindigkeitserhöhung im Spielverlauf
- Grid kann mit
grid_x_offsetundgrid_y_offsetpositioniert werden - Wachsender Snake-Körper bei Nahrungsaufnahme
- Kollisionserkennung (Wände, Eigenkörper, Nahrung)
- Grafische Darstellung mit Adafruit GFX
- Joystick-Steuerung für Richtungsänderung
- ESP32 Mikrocontroller
- Adafruit ST7789 TFT-Display (240x280 oder 240x240 Pixel)
- Analog-Joystick (2 Achsen, z. B. KY-023 Modul)
- Verbindungskabel, Breadboard (falls notwendig)
| Komponente | ESP32 Pin |
|---|---|
| TFT CS | GPIO 6 |
| TFT DC | GPIO 7 |
| TFT RST | GPIO 8 |
| Joystick X | A0 |
| Joystick Y | A1 |
- Visual Studio Code
- PlatformIO Plugin
- Öffne Visual Studio Code.
- Installiere das PlatformIO Plugin (falls noch nicht geschehen).
- Projekt von GitHub klonen:
git clone <GITHUB-REPOSITORY-URL>
- PlatformIO-Projekt in VS Code öffnen: Öffne das PlatformIO Home Menü und wähle Import Existing Project.
- Bibliotheken installieren:
- Falls nicht automatisch installiert, füge folgende Bibliotheken in
platformio.inihinzu:
[env:esp32] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 lib_deps = adafruit/Adafruit GFX Library adafruit/Adafruit ST7789 Library
- Falls nicht automatisch installiert, füge folgende Bibliotheken in
- Code kompilieren & auf den ESP32 hochladen.
- Die Schlange bewegt sich in einem Grid (
grid_size) - Richtungswechsel nur orthogonal (links, rechts, oben, unten)
- Bewegung durch Joystick-Eingabe (
joy_x,joy_y)
- Fressen: Berührt die Schlange das Essen, wächst sie.
- Kollision: Wenn der Kopf die Wand oder den Körper berührt, startet das Spiel neu.
- Geschwindigkeit: Steigt mit wachsender Schlange (
snake_speed).
grid_size: Rastergrößegrid_x_offset,grid_y_offset: Position des Grids auf dem Bildschirmsnake_speed: Anfangsgeschwindigkeit der Schlangesnake_lenght: Startlänge der Schlange
- Highscore speichern
- Mehrere Spielmodi (z. B. Geschwindigkeitssprünge)
- Soundeffekte
- Hintergrundanimationen
Dieses ESP32-Projekt bietet ein klassisches Snake-Spiel mit einer anpassbaren Rastermechanik. Viel Spaß beim Programmieren und Spielen!