Inhaltsverzeichnis:

Handheld Arduino Pong Konsole - Gunook
Handheld Arduino Pong Konsole - Gunook

Video: Handheld Arduino Pong Konsole - Gunook

Video: Handheld Arduino Pong Konsole - Gunook
Video: #ArduBlock 2.0 - Игровая консоль на Arduino UNO 2024, Juni
Anonim
Handheld Arduino Pong Konsole
Handheld Arduino Pong Konsole

DFRobot hat sich kürzlich an mich gewandt und wollte, dass ich ihr spezielles Arduino Nano Board und OLED verwende. Zuerst wollte ich ein Smart Bike entwickeln und habe es komplett gebaut. Aber leider war der Nano zu schwach, um die benötigte massive Skizze zu betreiben und zu speichern. Also beschloss ich, eines meiner früheren Projekte erneut zu besuchen, eine Neopixel-Matrix, die ein Pong-Spiel lief. Ich wollte es stattdessen tragbar machen, und ein 1,7-Zoll-OLED wäre ein perfektes Display.

Liste der Teile:

  • Arduino Nano
  • OLED
  • Lautsprecher

Schritt 1: Video

Image
Image

Schritt 2: Entwerfen des Spiels

Das Spiel gestalten
Das Spiel gestalten

Für dieses Pong-Spiel wollte ich es relativ einfach halten, was bedeutet, dass kein computergesteuertes Paddel oder ausgefallene Ballreflexionsalgorithmen verwendet werden. Grundsätzlich gibt es ein einzelnes Paddel, das ein Benutzer nach oben oder unten bewegen kann, und wenn der Ball mit dem Paddel kollidiert, würde sein x-Achsen-Vektor umgedreht. Jedes Mal, wenn der Ball getroffen wird, ertönt ein Geräusch. Wenn das Spielgerät eingeschaltet wird, wird ein Bildschirm mit dem Spieltitel und Anweisungen angezeigt. Außerdem hat meine Mutter einen kleinen Titelsong erstellt, der im Hintergrund wiederholt wird, bis der obere Knopf gedrückt wird.

Schritt 3: Entwerfen des Spielgeräts

Entwerfen des Spielgeräts
Entwerfen des Spielgeräts
Entwerfen des Spielgeräts
Entwerfen des Spielgeräts
Entwerfen des Spielgeräts
Entwerfen des Spielgeräts
Entwerfen des Spielgeräts
Entwerfen des Spielgeräts

Mein bevorzugtes CAD-Programm ist Fusion 360, also entschied ich mich, es zu verwenden, um mein Pong-Spielgerät zu entwerfen. Ich begann mit dem Entwerfen jeder verwendeten Komponente: einer OLED, einem Arduino Nano und einem Lautsprecher. Auf diese Weise kann ich genau sehen, wo und wie jede Komponente in das Gehäuse passen sollte. Ich habe dann den Nano und die Platine in den hinteren Teil des Gehäuses gelegt und die OLED darauf. Als nächstes war die Frage, wo der Lautsprecher und die Tasten platziert werden sollten. Ich entschied, dass der 3W-Lautsprecher direkt unter dem Bildschirm platziert werden könnte (von oben betrachtet), und dazu musste auch ein "Grill" über dem Lautsprecher angebracht werden, damit der Ton nicht gedämpft wird. Zuletzt habe ich zwei Schaltflächen auf der linken Seite hinzugefügt, um Steuerelemente hinzuzufügen.

Schritt 4: Konstruieren des Geräts

Aufbau des Geräts
Aufbau des Geräts
Aufbau des Geräts
Aufbau des Geräts
Aufbau des Geräts
Aufbau des Geräts

Ich begann mit dem 3D-Drucken jedes Teils, bestehend aus der unteren Hälfte, der oberen Hälfte und 2 Knöpfen. Als nächstes lötete ich eine Buchsenleiste an die 4x6cm und verdrahtete sie mit dem Nano. Dadurch kann die OLED nicht nur leicht entfernt werden, sondern hebt sie auch über den Arduino Nano. Überprüfen Sie den Schaltplan für Verdrahtungsinformationen. Dann habe ich die beiden Tasten zusammen mit einer einfachen Micro-USB-Breakout-Platine für die Stromversorgung verdrahtet. Der Lautsprecher wurde ebenfalls angebracht und in die richtige Position gebracht. Mein Fusion 360-Design ermöglicht 3-mm-Maschinenschrauben, um das OLED und den Lautsprecher festzuhalten und die beiden Hälften des Geräts zu verbinden. Aber ich musste sie genau machen, also habe ich mit meiner Bohrmaschine 8 Löcher gebohrt: 2 für den Lautsprecher, 2 für den Bildschirm und 4 darunter. Sie können den Thingiverse-Link für die Dateien besuchen.

Schritt 5: Programmieren des Spiels

Die Verwendung einer einfachen Benutzeroberfläche war entscheidend, um das Programm klein zu halten. Ich begann mit dem Hinzufügen mehrerer Bibliotheken: Adafruit_GFX, Adafruit_SSD1351 und der Arduino Timer-Bibliothek. Als nächstes habe ich meine Pins und Farben definiert, wie die Pins der OLED und 16-Bit-Farbdefinitionen. In meinem Code gibt es auch 4 Möglichkeiten, den Spielverlauf zu ändern, z. B. die Schlägerdimensionen und die Geschwindigkeit des Balls zu ändern. Es existiert dann ein Abschnitt, in dem jede Variable definiert wird, einschließlich der Punktzahl und verschiedener Koordinaten. Immer wenn das Gerät eingeschaltet wird, erscheint ein Bild eines Balls und ein Text auf dem Bildschirm, zusammen mit einem kleinen Titelsong, der zuvor im Code definiert wurde. Sobald das Spiel beginnt, werden zwei Timer erstellt, einer aktualisiert den Schläger und der andere aktualisiert den Ball. Jedes Mal, wenn die Position des Balls aktualisiert wird, werden seine Koordinaten überprüft, um sicherzustellen, dass er nicht über den Bildschirmrand hinausgeht oder einen Schläger berührt. Jedes Mal, wenn es hüpft, wird entweder seine x- oder seine y-Achse invertiert und ein kleiner Ton ertönt. Sehen Sie sich das Video am Anfang dieser Beschreibung an, um zu sehen, wie das Spiel abläuft.

Schritt 6: Pong spielen

Pong spielen!
Pong spielen!
Pong spielen!
Pong spielen!
Pong spielen!
Pong spielen!
Pong spielen!
Pong spielen!

Der Name des Spiels ist es, die niedrigste Punktzahl zu erreichen. Es gibt keine zeitliche Begrenzung, daher ist es sehr angenehm und sogar trance-induzierend. Sie müssen lediglich eine von zwei Tasten drücken, um das Paddel nach oben oder unten zu bewegen. Es ist auch möglich, eine Möglichkeit hinzuzufügen, die höchste Punktzahl mit dem EEPROM des Arduino zu speichern.

Empfohlen: