Inhaltsverzeichnis:
- Schritt 1: Teile
- Schritt 2: Verkabelung
- Schritt 3: Alternative Verkabelung
- Schritt 4: Code + Erklärung
- Schritt 5: Danke fürs Lesen
Video: Pong Tennis mit LED-Matrix, Arduino und Joysticks - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Dieses Projekt ist für Anfänger und erfahrene Bastler gleichermaßen gedacht. Im Grunde kann es mit einem Steckbrett, Überbrückungsdrähten und mit Blu-Tack und ohne Löten auf ein Stück Schrottmaterial (ich habe Holz verwendet) geklebt werden. Auf einem fortgeschritteneren Niveau kann es jedoch an ein Perfboard oder eine kundenspezifische Platine gelötet werden.
Da dies ein Lockdown-Projekt war, hatte ich nicht viele Werkzeuge oder Materialien, weshalb es bei Blu-Tack auf ein Stück Altholz geklebt wurde, das etwas zu klein ist, aber trotzdem ist es ein lustiges Projekt, das zusammenkommt schnell und besteht aus handelsüblichen Teilen, die günstig online zu finden sind.
Schritt 1: Teile
Um das Pong-Spiel zu machen, benötigen Sie;
- 1x Ein Arduino (jeder Typ wird funktionieren)
- 4x MAX7219 8x8 LED-Matrizen
- 2x Joysticks
- 1x Piezo-Summer (optional)
- 15x weibliche-weibliche Überbrückungsdrähte (3x Gruppen von 5)
- 15x männlich-weibliche Überbrückungsdrähte (3x Gruppen von 5)
- 18x Stecker-Stecker-Überbrückungskabel
- 1x Steckbrett
- 1x 220Ω Widerstand
Anstelle eines Arduino Uno- oder Nano-Boards können Sie ein Arduino-basiertes Steckbrett verwenden;
- 1x ATmega328p 28pin IC
- 1x 16kHz Quarzoszillator
- 2x 22pF Keramikkondensatoren
- 1x USB-FTDI-UART-Konverter
- 1x 100uF Elektrolytkondensator
- 1x Micro-USB-Breakout (optional)
Werkzeuge;
- PC mit Arduino IDE (und LedControl Library)
- Relevantes USB-Kabel für Ihr Arduino
- Power Bank, um das Spiel außerhalb Ihres Computers mit Strom zu versorgen
Schritt 2: Verkabelung
Die Verkabelung ist sehr einfach, da Sie nur Jumperdrähte benötigen, um die Header der Matrizen und Joysticks mit dem Arduino zu verbinden. Die einzige Komplikation ist die Stromversorgung, da der Arduino Uno nur 3 GND-Anschlüsse und einen 5 V-Anschluss hat. Hier kommt das Steckbrett ins Spiel und fungiert als Stromverteilungsschiene für alle Komponenten. Wenn Sie ein NANO verwenden, erfüllt das Steckbrett den gleichen Zweck und ermöglicht es Ihnen, alles anzuschließen.
Für die Verkabelung folgen Sie diesen Anschlüssen.
- Linker Joystick - GND und 5V an ihre jeweiligen Stromschienen. SW - Pin 9, VRx - A0, VRy - A1.
- Rechter Joystick - GND und 5V an ihre jeweiligen Stromschienen. SW - Pin 8, VRx - A2, VRy - A3.
- LED-Matrix ganz rechts - GND und 5V an ihre jeweiligen Stromschienen. DIN - 13, CS - 11, CLK - 12. (Nach Zeile 25)
- Alle anderen LED-Matrizen können von rechts nach links vom Ausgang der ersten verkettet werden, damit der Code richtig funktioniert.
- Optionaler Summer - Anode (+) bis 220 Ω Strombegrenzungswiderstand an Pin 10, Kathode (-) - GND.
Schritt 3: Alternative Verkabelung
Nachdem ich es platzsparend mit einem Arduino UNO verdrahtet hatte, beschloss ich, den Arduino IC vom UNO mit einem 16Mhz-Kristalloszillator und einem Paar 22pF-Kondensatoren von jeder Seite auf Masse auf das Steckbrett zu legen. Ich denke, dies war eine lohnende Änderung, da das Projekt dadurch ordentlicher und fertiger aussieht, Sie jedoch einen USB-FTDI-Programmierer verwenden müssen, um das Programm zu aktualisieren.
Schritt 4: Code + Erklärung
Um den Code zum Arduino hochzuladen, laden Sie die LedControl-Bibliothek von GitHub hier herunter, github.com/wayoda/LedControl und fügen Sie die Zip-Datei hinzu oder fügen Sie sie über den Bibliotheksmanager in der IDE hinzu. Öffnen Sie danach die beigefügte Skizze, wählen Sie Ihr Arduino in den Board- und Port-Einstellungen unter Tools aus und laden Sie es auf das Arduino hoch.
Erläuterung
Zeile 1: Fügt die Bibliothek hinzu
Zeile 5-23: Richtet alle Variablen, Konstanten und Pinnummern ein.
Zeile 25: Richtet die LED Martix ein und stellt die Steuerpins und wie viele Anzeigen ein.
Zeile 27: Richtet die Reset-Funktion ein.
Zeile 30-35: Shutdown-Funktion zum Ein-/Ausschalten aller Displays zusammen.
Zeile 38-43: SetIntensity-Funktion zum Einstellen der Helligkeit aller Displays gemeinsam.
Zeile 46-51: ClearAll-Funktion, um alle Anzeigen zusammen zu löschen.
Zeile 53-64: Joystick Funktion, um die Position der Joysticks abzurufen, sie den 7 möglichen Schlägerpositionen zum Schlagen des Balls zuzuordnen und dann den Schläger in die neue Position zu bewegen.
Zeile 67-435: Funktion, die den Ball in der angegebenen Höhe und Geschwindigkeit zum linken Spieler bewegt, prüft, ob der Spieler ihn getroffen hat und entweder weitermacht und den Crash-Status auf true setzt oder den Ball zurückprallt, 1 zum Score addiert und erhöht die Geschwindigkeit.
Zeile 438-811: Funktion, die den Ball in der angegebenen Höhe und Geschwindigkeit zum richtigen Spieler bewegt, prüft, ob der Spieler ihn getroffen hat und entweder weitermacht und den Crash-Status auf true setzt oder den Ball zurückprallt, 1 zum Score addiert und erhöht die Geschwindigkeit.
Zeile 813-823: Funktion zum Anzeigen eines Smiley-Gesichts, Häkchens, Kreuzes oder Fragezeichens auf der angegebenen Anzeige (0 rechts bis 3 links).
Zeile 861-979: Funktion zum Anzeigen der Zahlen 0-9 zum angegebenen Display.
Zeile 981-1047: Funktion zum Anzeigen des Spielstands auf jeder Spielerseite des Bildschirms.
Zeile 1049-1064: Funktion um zu prüfen ob der Player bereit ist.
Zeile 1066-1076: Setup Abschnitt des Codes für den Code, der beim Programmstart einmal ausgeführt wird.
Zeile 1078-1136: Hauptschleifenabschnitt für die Spiellogik, wo alle Funktionen verwendet werden und wo entschieden wird, wer gewinnt, und dann das Programm nach 5 Sekunden der Anzeige des Spielstands neu startet.
Schritt 5: Danke fürs Lesen
Vielen Dank für das Lesen dieses Instructable, es war ein lustiges Lockdown-Projekt, das über ein paar Tage zusammenkam, als ich mehr über die Arduino-Programmierung lernte. Wenn es Ihnen gefallen hat, können Sie im Arduino-Wettbewerb dafür stimmen.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E