Arduino Taschenkonsol mit A-Maze: Kompaktes, flashbares Labyrinth-Spiel
Komponenten und Materialien
| Bauteil | Menge |
|---|---|
| SSD1306 OLED Display | 1 |
| SparkFun Arduino Pro Mini 328 - 5V/16MHz | 1 |
| SparkFun Taster 12mm | 7 |
| Knopfzellen-Batteriehalter | 2 |
| Schiebeschalter | 1 |
| Prototyp-Platine 4x6 cm | 1 |
Projektbeschreibung
Willkommen zu meinem ersten Tutorial!
Das Projekt ist ein Arduino-Labyrinthspiel, das zu einer Taschenkonsole wurde – leistungsfähig wie Arduboy und ähnliche Arduino-Konsolen. Dank freiliegendem ICSP-Header kann es mit meinen (oder deinen) zukünftigen Spielen geflasht werden.
Die Idee: Ein Labyrinthspiel ohne fest codierte Level. Stattdessen generiert es für jedes Level ein neues Labyrinth – man sieht nie zweimal dasselbe!
Die Programmierung war eine Herausforderung wegen des begrenzten RAM. Die Lösung fand ich im Bo-Taoshi-Algorithmus. Als Basis diente der Code von SANUKI UDON (Projekt: HOW TO MAKE A MAZE GENERATOR USING ATTINY13A).
Schritt 1: Breadboard-Prototyping
Begann mit 4 Tasten für die Navigation, später kamen 3 weitere hinzu (Start/Pause/Menü).
Schritt 2: Benötigte Teile
- Arduino Pro Mini / Arduino Uno / ATmega328P Chip
- 28-poliger DIP-Sockel (optional)
- SSD1306 OLED Display
- Piezo-Summer
- Taster – 7 Stück
- Knopfzellen-Halter
- Kippschalter
- Drähte
- Prototyp-Platine (60x40mm)
Schritt 3: Breadboard-Verdrahtung / Schaltplan
Tasten:
- UP: Pin 7
- DOWN: Pin 6
- LEFT: Pin 9
- RIGHT: Pin 8
- A: Pin 5
- B: Pin 4
- START: Pin 2
SSD1306 OLED:
- SCL: A5
- SDA: A4
- VCC: Arduino VCC
- GND: Arduino GND
Summer:
- Plus: Pin 3
- Minus: GND
Schritt 4: Quellcode
A-Maze Quellcode: GitHub Repository
In Arduino IDE öffnen und hochladen oder ISP-Programmer nutzen. Ich empfehle USBTiny ISP. Mein ATmega328P läuft ohne externen Quarz mit 8 MHz internem Oszillator. Mehr Infos: ArduinoToBreadboard.
Schritt 5: In Aktion
Schritt 6: Gehäuse und Miniaturisierung
3D-druckbares Gehäuse: Thingiverse
Alle Komponenten sind auf der 4x6-Platine verbaut. Die Tasten-Verdrahtung läuft unter den Batteriehaltern. Isolierband unter dem Display verhindert Kurzschlüsse. ICSP-Header ist optional – wer ihn weglässt, spart 6 Verbindungen, muss den Chip aber vor dem Löten programmieren oder einen DIP-Sockel nutzen.
Code & Ressourcen
- GitHub: A-Maze Repository
- Thingiverse Gehäuse: Thingiverse
Schaltpläne
Herstellungsprozess
- DIY Photoshop-Steuerkonsole mit Arduino Nano RP2040 bauen
- Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
- TeleBall: Retro-Handheld-Konsole selbst bauen (Arduino Nano, Breakout & Tennis für Zwei)
- Handheld-Konsole selbst bauen: Arduboy-Clone (Arduino Micro, OLED, PCB-Design)
- Klassisches Pong-Spiel auf Arduino UNO mit OLED-Display bauen – Schritt-für-Schritt-Tutorial
- DIY Arduino USB Gaming Controller – Bauen Sie Ihren eigenen High-Performance Gamepad
- 24×16 LED Pong-Konsole mit Arduino Nano & MAX7219 bauen
- Arduino Touch Breakout-Spiel: Klassisches Arcade auf 2,4″ TFT LCD
- Riesige Lego-Minifigur als Animatronic-Operation-Game mit Arduino bauen
- Pixel Chaser: Interaktives One-Tap-LED-Spiel mit Arduino Nano