Inhaltsverzeichnis:

POIING! - Arduino Arcade-Spiel! - Gunook
POIING! - Arduino Arcade-Spiel! - Gunook

Video: POIING! - Arduino Arcade-Spiel! - Gunook

Video: POIING! - Arduino Arcade-Spiel! - Gunook
Video: Обыгрываю 5 Мошеннических Игровых Автоматов с Наукой 2024, Kann
Anonim
Image
Image
POIING! - Arduino-Arcade-Spiel!
POIING! - Arduino-Arcade-Spiel!

Wir werden ein Arcade-Spiel im PONG-Stil bauen, das Teile aus dem "The Most Complete Starter Kit UNO R3 Project"-Kit von Elegoo Inc. verwendet.

Vollständige Offenlegung - Die meisten für dieses Instructable gelieferten Teile wurden dem Autor von Elegoo Inc.

Ich wollte ein Projekt mit einem LED-Matrix-Modul erstellen. Die einfache 8x8-LED-Anzeige erfordert die Verwendung zusätzlicher Schieberegister, um die einzelnen LEDs in der Matrix ansprechen zu können. Stattdessen verwendet dieses Projekt das MAX7219 8x8 LED-Modul. Es ist ein sehr einfach zu bedienendes Modul.

Ich würde vorschlagen, dass es aufgrund der großen Anzahl von Verdrahtungsverbindungen in diesem Projekt als INTERMEDIATE-Level Instructable angesehen wird.

Lass uns anfangen!

Lieferungen

Elegoo Starter Kit Teile verwendet (https://rebrand.ly/dvjb3w8)

  • UNO R3 Mikrocontroller
  • MAX7219 8x8 LED-Modul
  • LCD 16x2 Anzeigemodul
  • 10K Trim-Potentiometer und -Knopf
  • Dupont-Drähte
  • 220R Widerstand
  • Passiver Piezo-Summer
  • Energieversorgungs Modul
  • 9V 1A Adapter - erforderlich, da die UNO nicht genügend Strom für das 8x8 LED-Modul liefern kann
  • Steckbrett

Zusätzliche Teile benötigt

2 x 10K Linearpotentiometer - preiswert und weit verbreitet bei eBay, AliExpress, Banggood usw.

Schritt 1: Verdrahten der Schaltung

Verdrahten der Schaltung
Verdrahten der Schaltung

Verdrahten Sie den Stromkreis gemäß dem Schaltplan. Lass dir Zeit. Für die beiden Displays sind VIELE Anschlüsse erforderlich.

Beachten Sie auf dem Foto der Schaltung, dass das Strommodul an der linken Seite des Steckbretts angebracht ist und der 9V 1A DC-Adapter in das Strommodul eingesteckt ist, damit ausreichend Strom an die LED-Matrix geliefert wird. Es besteht KEINE Verbindung zwischen dem 5V-Pin am UNO und dem Steckbrett. ABER, der GND-Pin des UNO ist mit GND auf dem Steckbrett verbunden.

Überprüfe deine Arbeit doppelt und dreifach.

Schritt 2: Arduino-Code

Dieses anweisbare geht davon aus, dass Sie bereits wissen, wie man in Arduino programmiert.

Laden Sie die angehängte Arduino-Skizze herunter. Stellen Sie sicher, dass Sie Ihre Arduino-Bibliotheken in der LedControl-Bibliothek hinzugefügt haben. Ich habe die Version von Eberhard Fahle verwendet. Suchen Sie einfach im Browser "Bibliotheken verwalten" nach MAX7219, und Sie werden es finden und installieren.

Stellen Sie sicher, dass sich die Datei pitches.h im Ordner Ihrer Skizze befindet. Es wird zum Abspielen der Sounds im Spiel verwendet.

Ein bisschen über das Timing

Da der Befehl delay() die Ausführung Ihrer Skizze bei der Ausführung vollständig anhält, suchen wir stattdessen nach verstrichenen Zeiträumen, die auftreten, wenn wir animationsbezogene Teile der Skizze ausführen möchten. Wir suchen nach einer voreingestellten Zeit, die vergehen soll, bevor wir Teile der Skizze ausführen, z. B. die Position des Balls auf dem Display aktualisieren.

Noch wichtiger ist, dass der Befehl delay() wirklich nur in der Methode loop() ausgeführt wird. Es wird normalerweise nicht wie in anderen Methoden erwartet ausgeführt. Das gesamte animationsbezogene Timing wird also in der loop()-Methode durchgeführt.

Beispiel:

Wir definieren einige Variablen vom Typ 'long' und ein paar boolesche Werte und setzen sie dann am Ende von setup().

bThresh = 80; // die Zeit in Millisekunden zwischen Ball-Updates

ballTime = millis(); // auf die aktuelle Systemzeit setzen

bon = falsch; // ist die Kugel-LED an oder aus

ballReturn = false; // geben wir nach einem Paddelschlag einen Ball zurück?

In loop() zum Zeichnen des Balls haben wir:

if ((millis() - ballTime > bThresh) && bon == false) {// wenn der Ball AUS ist und genug Zeit vergangen ist ballOn(); // schalte die Ball-LED ein

bon = wahr; // der Ball ist jetzt ON

ballTime = millis(); // setze die ballTime auf die aktuelle Zeit zurück

}

if ((millis() - ballTime > bThresh) && bon == true) {// wenn der Ball ON ist und genug Zeit vergangen ist

ballOff(); // schalte die Kugel-LED aus

bon = falsch; // der Ball ist jetzt AUS

ballTime = millis(); setze die ballTIME auf die aktuelle Uhrzeit zurück

}

Es gibt viele Möglichkeiten, dieses Spiel zu machen. Das sind nur meine Vorlieben.

Die Skizze ist vollständig dokumentiert, daher lade ich Sie ein, den Code zu lesen, um zu sehen, wie er funktioniert.

Überprüfen, kompilieren und laden Sie Ihren Code hoch.

Viel Spaß beim Spielen Ihres Spiels!

Schritt 3: Fazit

Abschluss
Abschluss
Abschluss
Abschluss

Mein Dank geht an Elegoo Inc für die Bereitstellung des in diesem Projekt verwendeten Starter-Kits. Es ist ein Kit mit einer großen Auswahl an Teilen und Modulen, die Sie gut in die Arduino Maker-Welt einführen.

Empfohlen: