Indholdsfortegnelse:

Pong Tennis Med LED Matrix, Arduino og Joysticks: 5 trin (med billeder)
Pong Tennis Med LED Matrix, Arduino og Joysticks: 5 trin (med billeder)

Video: Pong Tennis Med LED Matrix, Arduino og Joysticks: 5 trin (med billeder)

Video: Pong Tennis Med LED Matrix, Arduino og Joysticks: 5 trin (med billeder)
Video: PING PONG Game With ARDUINO UNO & P10 LED Matrix 16X32 DIY by Electruino 2024, November
Anonim
Pong Tennis Med LED Matrix, Arduino og Joysticks
Pong Tennis Med LED Matrix, Arduino og Joysticks

Dette projekt er tiltænkt både begyndere og erfarne tinkerere. På et grundlæggende niveau kan det gøres med et brødbræt, jumperwires og fastgjort til et stykke skrotmateriale (jeg brugte træ) med Blu-Tack og uden lodning. På et mere avanceret niveau kan det imidlertid loddes til perf board eller et brugerdefineret printkort.

Da dette var et lockdown-projekt, havde jeg ikke adgang til mange værktøjer eller materialer, hvorfor det sad fast på et stykke skrot, der er lidt for lille med Blu-Tack, men på trods af dette er det et sjovt projekt, der kommer sammen hurtigt og består af almindeligt tilgængelige dele, der kan findes billigt online.

Trin 1: Dele

For at lave Pong -spillet skal du bruge;

  • 1x en Arduino (enhver type vil fungere)
  • 4x MAX7219 8x8 LED -matricer
  • 2x joysticks
  • 1x Piezo -summer (valgfrit)
  • 15x hun-hun jumpertråde (3x grupper på 5)
  • 15x man-hun-jumperwire (3x grupper på 5)
  • 18x man-han jumperwire
  • 1x brødbræt
  • 1x 220Ω modstand

I stedet for et Arduino Uno eller Nano board kan du bruge et breadboard baseret Arduino med;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz krystaloscillator
  • 2x 22pF keramiske kondensatorer
  • 1x USB FTDI UART -konverter
  • 1x 100uF elektrolytisk kondensator
  • 1x Micro USB Breakout (valgfrit)

Værktøj;

  • PC med Arduino IDE (og LedControl Library)
  • Relevant USB -kabel til din Arduino
  • Power Bank til at drive spillet væk fra din computer

Trin 2: Ledningsføring

Ledninger
Ledninger
Ledninger
Ledninger

Ledningerne er meget enkle, da alt du behøver er jumperwires til at forbinde overskrifterne på matricerne og joysticks til Arduino. Den eneste komplikation er strøm, da Arduino Uno kun har 3 GND -forbindelser og en 5v -forbindelse. Det er her, brødbrættet kommer ind og fungerer som en strømfordelingsskinne for alle komponenterne. Hvis du bruger en NANO, vil brødbrættet tjene det samme formål samt give dig mulighed for at tilslutte alt.

Følg disse forbindelser for ledninger.

  • Venstre joystick - GND og 5v til deres respektive strømskinner. SW - pin 9, VRx - A0, VRy - A1.
  • Højre joystick - GND og 5v til deres respektive strømskinner. SW - pin 8, VRx - A2, VRy - A3.
  • LED Matrix til højre - GND og 5v til deres respektive strømskinner. DIN - 13, CS - 11, CLK - 12. (I henhold til linje 25)
  • Alle de andre LED -matricer kan daisy kobles fra output fra den første, der går fra højre til venstre, så koden fungerer korrekt.
  • Valgfri summer - Anode (+) gennem 220Ω strømbegrænsende modstand til pin 10, katode (-) - GND.

Trin 3: Alternativ ledningsføring

Alternativ ledningsføring
Alternativ ledningsføring
Alternativ ledningsføring
Alternativ ledningsføring
Alternativ ledningsføring
Alternativ ledningsføring

Efter at have tilsluttet den med en Arduino UNO for at spare plads besluttede jeg at sætte Arduino IC fra UNO på brødbrættet med en 16Mhz Crystal Oscillator og et par 22pF kondensatorer fra hver side til jorden. Jeg synes, at dette var en værdifuld ændring, da det får projektet til at se pænere og mere færdigt ud, men du skal bruge en USB FTDI -programmerer til at opdatere programmet.

Trin 4: Kode + forklaring

For at uploade koden til Arduino skal du downloade LedControl -biblioteket fra GitHub her, github.com/wayoda/LedControl, og tilføj Zip -filen, eller tilføj den via Library Manager i IDE. Efter det skal du åbne den vedhæftede skitse, skal du vælge din Arduino i tavlen og portindstillingerne under værktøjer og uploade den til arduinoen.

Forklaring

Linje 1: Tilføjer biblioteket

Linje 5-23: Konfigurerer alle variabler, konstanter og pin-numre.

Linje 25: Konfigurerer LED Martix og indstiller kontrolstifterne og hvor mange skærme.

Linje 27: Konfigurerer nulstillingsfunktionen.

Linje 30-35: Afbrydelsesfunktion for at tænde/slukke alle skærme sammen.

Linje 38-43: SetIntensity-funktion til at indstille lysstyrken på alle skærme sammen.

Linje 46-51: ClearAll-funktion for at tørre alle skærme sammen.

Linje 53-64: joystick Funktion for at få joysticks position, kortlæg dem til de 7 mulige flagermuspositioner for at ramme bolden og flyt derefter flagermus til den nye position.

Linje 67-435: Funktion, der flytter bolden til venstre spiller i den angivne højde og hastighed, kontrollerer, om spilleren ramte den og enten fortsætter og sætter crash-status til sand eller kugler bolden tilbage, tilføjer 1 til scoren og øger hastigheden.

Linje 438-811: Funktion, der flytter bolden til den rigtige spiller i den angivne højde og hastighed, kontrollerer, om spilleren ramte den og enten fortsætter og sætter crashstatus til sand eller kugler bolden tilbage, tilføjer 1 til scoren og øger hastigheden.

Linje 813-823: Funktion til visning af et smiley, kryds, kryds eller spørgsmålstegn til det angivne display (0 til højre til 3 til venstre).

Linje 861-979: Funktion til visning af tallene 0-9 til det angivne display.

Linje 981-1047: Funktion til visning af partituret for hver spillers side af skærmen.

Linje 1049-1064: Funktion til at kontrollere, om afspilleren er klar.

Linje 1066-1076: Opsætning Afsnit af koden for koden, der køres en gang, når programmet starter.

Linje 1078-1136: Main Loop-sektion til spillogik, hvor alle funktionerne bruges, og hvor der vinder, afgøres, og derefter genstarter programmet efter 5 sekunder med at vise scoren.

Trin 5: Tak fordi du læste

Tak fordi du læste
Tak fordi du læste

Tak fordi du læste denne Instructable det var et sjovt lockdown -projekt, der kom sammen i løbet af et par dage, da jeg lærte mere om Arduino -programmering. Hvis du nød det, er du velkommen til at stemme på det i Arduino -konkurrencen.

Anbefalede: