Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

UFO Attack: Eigenes Arduino-Spiel mit MAX7219 Matrix & Joystick

Komponenten und Zubehör

Komponente Anzahl
Arduino UNO 1
MAX7219 4-in-1 Dot Matrix Modul (32×8) 1
DB9 9-Pin Schraubklemmen-Breakout (für Atari-Joystick) 1
NPN-Transistor (z. B. 2N2222) 1
Steckbrett (Breadboard) 1
Passiver Piezo-Summer 1
Male/Female Jumper-Kabel 5
Jumper-Kabel (gemischt) 10
Widerstand 1 kΩ 1
Atari-kompatibler 9-Pin Joystick 1

Über dieses Projekt

Ein klassisches Arcade-Spiel auf Arduino-Basis: Steuern Sie Ihr Raumschiff per Joystick, schießen Sie UFOs ab, weichen Sie Geschossen aus und besiegen Sie den Boss. Geschrieben mit Max72xxPanel, Adafruit_GFX und SPI Bibliotheken.

Spielprinzip: Jedes Level hat ein Abschussziel. Erreicht man es, erscheint der Boss. Steuerung per Atari-9-Pin-Joystick (altes Gerät wiederverwenden oder selbst bauen). Zukünftig als Handheld geplant.

Code-Struktur (Auszug)

Der vollständige Code ist umfangreich – hier die Kernbereiche:

Setup & Display-Konfiguration

const int pinCS = 10;
const int numberOfHorizontalDisplays = 4;
const int numberOfVerticalDisplays = 1;
Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);

// Sprite-Definitionen (8x8) im PROGMEM: Schiff, UFO, Explosion, Boss, etc.
const unsigned char ship[] PROGMEM = { 0x80, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
const unsigned char ufo[] PROGMEM = { 0x40, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
const unsigned char boss[] PROGMEM = { 0x18, 0x24, 0x42, 0xff, 0x24, 0xff, 0x7e, 0x3c };
// ... weitere Sprites

Joystick-Pins (INPUT_PULLUP)

int up = 2, down = 3, left = 4, right = 5, trigger = 6;

Haupt-Loop (vereinfacht)

void loop() {
  if (!gameStart) Ticker(true); // Titel-Scrolltext
  SpawnTimer();
  JoystickControl();
  UfoControl();
  BouncerControl();
  LaserControl();
  ScreenLimit();
  BossBattle();
  BossControl();
  UFOLaserControl();
  LTControl();
  FallerControl();
  RiserControl();
  ShipCollision();
  matrix.write();
  delay(50);
  matrix.fillScreen(LOW);
}

Level-Logik

10 Level mit steigender Schwierigkeit: Spawn-Raten, Boss-Lebenspunkte, Laser-Geschwindigkeit, Minion-Timer werden pro Level angepasst (Level(int level)).

Kollisionserkennung

Pixel-genaue Prüfung für Schiff-Laser vs. Feinde, Feinde-Laser vs. Schiff, Schiff vs. Feinde. Treffer → Explosion, Sound, Punkte.

Boss-Kampf

Bei Erreichen des Kill-Ziels: Sirene, Boss erscheint, schießt Laser, spawnnt ab Level 4 „Fallers“ und ab Level 5 „Risers“. Boss stirbt nach Treffern → Level-Up, neuer Titel-Scroll mit Score.

Schaltplan

Verdrahtung: Arduino Pins 2–6 → Joystick, Pin 10 → MAX7219 CS, Pin 11 (MOSI) → DIN, Pin 13 (SCK) → CLK, Pin 9 → Summer, L298N nicht benötigt.

UFO Attack: Eigenes Arduino-Spiel mit MAX7219 Matrix & Joystick

Hinweise

Herstellungsprozess

  1. Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
  2. Wasserbasierter Flammeneffekt: Arduino UNO + NeoPixel Stick + Ultraschallvernebler
  3. 3D RGB Arduclock – Bluetooth-LED-Uhr mit Echtzeituhr
  4. River Health Monitor: Arduino-basiertes Wasserqualitäts-Messsystem
  5. Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
  6. Interaktives Joystick-Spiel mit Arduino & LED-Feedback
  7. Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
  8. Funktionaler 3D-gedruckter Roboterarm mit Arduino – Schritt-für-Schritt-Anleitung
  9. Tragbarer Entfernungsmesser – Arduino Nano DIY-Kit mit HC-SR04, 18650-Akku und 3D-gedrucktem Gehäuse
  10. DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation