Innholdsfortegnelse:

Pongtennis med LED -matrise, Arduino og joysticks: 5 trinn (med bilder)
Pongtennis med LED -matrise, Arduino og joysticks: 5 trinn (med bilder)

Video: Pongtennis med LED -matrise, Arduino og joysticks: 5 trinn (med bilder)

Video: Pongtennis med LED -matrise, Arduino og joysticks: 5 trinn (med bilder)
Video: Fastest 100 meters by a bipedal robot - 24.73 seconds 🤖 2024, November
Anonim
Pongtennis med LED Matrix, Arduino og joysticks
Pongtennis med LED Matrix, Arduino og joysticks

Dette prosjektet er beregnet på både nybegynnere og erfarne tinkerere. På et grunnleggende nivå kan det gjøres med et brødbrett, hoppetråder og festes til et stykke skrapmateriale (jeg brukte tre) med Blu-Tack og uten lodding. På et mer avansert nivå kan det imidlertid loddes til perf -bord eller et tilpasset PCB.

Siden dette var et låseprosjekt, hadde jeg ikke tilgang til mange verktøy eller materialer, og derfor festet det seg til et stykke tre som er litt for lite med Blu-Tack, men til tross for dette er det et morsomt prosjekt som kommer sammen raskt og består av allment tilgjengelige deler som kan finnes billig online.

Trinn 1: Deler

For å lage Pong -spillet trenger du;

  • 1x En Arduino (hvilken som helst type vil fungere)
  • 4x MAX7219 8x8 LED -matriser
  • 2x styrespaker
  • 1x Piezo -summer (valgfritt)
  • 15x hun-ledninger for kvinner og kvinner (3x grupper på 5)
  • 15x stikkontakter til menn og kvinner (3x grupper på 5)
  • 18x mann-hann jumper ledninger
  • 1x brødbrett
  • 1x 220Ω motstand

I stedet for et Arduino Uno- eller Nano -brett kan du bruke et brødbrettbasert Arduino med;

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

Verktøy;

  • PC med Arduino IDE (og LedControl Library)
  • Relevant USB -kabel for din Arduino
  • Power Bank for å drive spillet vekk fra datamaskinen

Trinn 2: Kabling

Kabling
Kabling
Kabling
Kabling

Ledningene er veldig enkle, ettersom alt du trenger er jumper -ledninger for å koble overskriftene til matrisene og joystickene til Arduino. Den eneste komplikasjonen er strøm, ettersom Arduino Uno bare har 3 GND -tilkoblinger og en 5v -tilkobling. Det er her brødbrettet kommer inn og fungerer som en strømfordelingsskinne for alle komponentene. Hvis du bruker en NANO, vil brødbrettet tjene samme formål, så vel som at du kan koble alt til.

Følg disse tilkoblingene for ledninger.

  • Venstre joystick - GND og 5v til sine respektive strømskinner. SW - pin 9, VRx - A0, VRy - A1.
  • Høyre joystick - GND og 5v til sine respektive strømskinner. SW - pin 8, VRx - A2, VRy - A3.
  • Høyre LED -matrise - GND og 5v til sine respektive strømskinner. DIN - 13, CS - 11, CLK - 12. (I henhold til linje 25)
  • Alle de andre LED -matrisene kan være daisy chained av utgangen til den første som går fra høyre til venstre, slik at koden fungerer som den skal.
  • Valgfri summer - Anode (+) gjennom 220Ω strømbegrensende motstand til pinne 10, katode (-) - GND.

Trinn 3: Alternativ ledning

Alternativ ledning
Alternativ ledning
Alternativ ledning
Alternativ ledning
Alternativ ledning
Alternativ ledning

Etter å ha koblet den til en Arduino UNO for å spare plass, bestemte jeg meg for å sette Arduino IC fra UNO på brødbrettet med en 16Mhz krystalloscillator og et par 22pF kondensatorer fra hver side til bakken. Jeg synes dette var en verdig modifikasjon ettersom det får prosjektet til å se penere og mer ferdig ut, men du må bruke en USB FTDI -programmerer for å oppdatere programmet.

Trinn 4: Kode + Forklaring

For å laste opp koden til Arduino, last ned LedControl -biblioteket fra GitHub her, github.com/wayoda/LedControl og legg til Zip -filen eller legg den til via Library Manager i IDE. Etter at du har åpnet den vedlagte skissen, velger du Arduino i brettet og portinnstillingene under verktøy og laster den opp til arduinoen.

Forklaring

Linje 1: Legger til biblioteket

Linje 5-23: Setter opp alle variablene, konstantene og pin-tallene.

Linje 25: Setter opp LED Martix og angir kontrollpinnene og hvor mange skjermer.

Linje 27: Konfigurerer tilbakestillingsfunksjonen.

Linje 30-35: Avstengningsfunksjon for å slå av/på alle skjermene sammen.

Linje 38-43: SetIntensity-funksjon for å stille lysstyrken til alle displayene sammen.

Linje 46-51: ClearAll-funksjon for å tørke alle skjermene sammen.

Linje 53-64: joystick Funksjon for å få posisjonen til styrespakene, kartlegg dem til de 7 mulige flaggermusposisjonene for å slå ballen og flytt deretter flaggermusen til den nye posisjonen.

Linje 67-435: Funksjon som flytter ballen til venstre spiller i angitt høyde og hastighet, kontrollerer om spilleren traff den og enten fortsetter og setter krasjstatusen til sann eller spretter ballen tilbake, legger 1 til poengsummen og øker farten.

Linje 438-811: Funksjon som flytter ballen til riktig spiller i angitt høyde og hastighet, kontrollerer om spilleren traff den og enten fortsetter og setter krasjstatusen til sann eller spretter ballen tilbake, legger 1 til poengsummen og øker farten.

Linje 813-823: Funksjon for visning av et smilefjes, kryss, kryss eller spørsmålstegn til det angitte displayet (0 til høyre til 3 til venstre).

Linje 861-979: Funksjon for visning av tallene 0-9 til det angitte displayet.

Linje 981-1047: Funksjon for å vise poengsummen til hver spillers side av skjermen.

Linje 1049-1064: Funksjon for å sjekke om spilleren er klar.

Linje 1066-1076: Oppsett Seksjon av koden for koden som kjøres en gang når programmet starter.

Linje 1078-1136: Main Loop-seksjon for spilllogikk der alle funksjonene brukes og hvor som vinner avgjøres, og deretter starter programmet på nytt etter 5 sekunder med å vise poengsummen.

Trinn 5: Takk for at du leste

Takk for at du leste
Takk for at du leste

Takk for at du leste dette Instructable. Det var et morsomt lockdown -prosjekt som kom sammen i løpet av et par dager etter hvert som jeg lærte mer om Arduino -programmering. Hvis du likte det, kan du stemme på det i Arduino -konkurransen.

Anbefalt: