Inhaltsverzeichnis:

Pong Tennis mit LED-Matrix, Arduino und Joysticks - Gunook
Pong Tennis mit LED-Matrix, Arduino und Joysticks - Gunook

Video: Pong Tennis mit LED-Matrix, Arduino und Joysticks - Gunook

Video: Pong Tennis mit LED-Matrix, Arduino und Joysticks - Gunook
Video: 🕹️ Build an Arduino LED Pong Game | DIY Project #shorts 2024, November
Anonim
Pong-Tennis mit LED-Matrix, Arduino und Joysticks
Pong-Tennis mit LED-Matrix, Arduino und Joysticks

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

Verdrahtung
Verdrahtung
Verdrahtung
Verdrahtung

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

Alternative Verkabelung
Alternative Verkabelung
Alternative Verkabelung
Alternative Verkabelung
Alternative Verkabelung
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

Danke fürs Lesen
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: