Cuprins:

Tenis Pong cu LED Matrix, Arduino și Joysticks: 5 pași (cu imagini)
Tenis Pong cu LED Matrix, Arduino și Joysticks: 5 pași (cu imagini)

Video: Tenis Pong cu LED Matrix, Arduino și Joysticks: 5 pași (cu imagini)

Video: Tenis Pong cu LED Matrix, Arduino și Joysticks: 5 pași (cu imagini)
Video: මගෙ චන්ඩියාට ඒකාලෙ first time flower bouquet 💐 එකක් දුන්න දවස😂🤪❤️ #sinhala #srilanka #couple 2024, Noiembrie
Anonim
Tenis Pong cu LED Matrix, Arduino și Joysticks
Tenis Pong cu LED Matrix, Arduino și Joysticks

Acest proiect este destinat atât începătorilor, cât și jucătorilor cu experiență. La un nivel de bază, se poate face cu o placă de prindere, fire jumper și lipit de o bucată de material rezidual (am folosit lemn) cu Blu-Tack și fără lipire. Cu toate acestea, la un nivel mai avansat, poate fi lipit pe o placă de perfecționare sau pe un PCB personalizat.

Deoarece acesta a fost un proiect de blocare, nu am avut acces la multe instrumente sau materiale, de aceea este lipit de o bucată de resturi de lemn care este puțin prea mică cu Blu-Tack, cu toate acestea, în ciuda acestui fapt, este un proiect distractiv care vine împreună rapid și este alcătuit din piese disponibile în mod obișnuit, care pot fi găsite ieftin online.

Pasul 1: Piese

Pentru a crea jocul Pong ai nevoie;

  • 1x Un Arduino (orice tip va funcționa)
  • 4x MAX7219 Matrici LED 8x8
  • 2x Joysticks
  • 1x Piezo Buzzer (opțional)
  • 15x fire jumper feminin-feminin (3x grupuri de 5)
  • 15x fire jumper masculin-feminin (3x grupuri de 5)
  • 18x fire jumper masculin-masculin
  • 1x placă de pâine
  • 1x rezistor de 220Ω

În loc de o placă Arduino Uno sau Nano puteți utiliza o placă de calcul Arduino pe bază de;

  • 1x ATmega328p 28pin IC
  • 1x Oscilator de cristal de 16 kHz
  • Condensatori ceramici 2x 22pF
  • 1x USB FTDI UART Converter
  • 1x condensator electrolitic 100uF
  • 1x Micro USB Breakout (Opțional)

Unelte;

  • PC cu Arduino IDE (și LedControl Library)
  • Cablu USB relevant pentru Arduino
  • Power Bank pentru a alimenta jocul departe de computer

Pasul 2: Cablare

Cablare
Cablare
Cablare
Cablare

Cablarea este foarte simplă, deoarece nu aveți nevoie decât de fire jumper pentru a conecta anteturile Matricelor și Joystick-urilor la Arduino. Singura complicație este puterea, deoarece Arduino Uno are doar 3 conexiuni GND și o conexiune de 5v. În cazul în care panoul de intrare intră și acționează ca o șină de distribuție a energiei pentru toate componentele, dacă folosiți un NANO, placa de pană va avea același scop și vă va permite să conectați totul.

Pentru cablare, urmați aceste conexiuni.

  • Joystick stâng - GND și 5v la șinele de alimentare respective. SW - pinul 9, VRx - A0, VRy - A1.
  • Joystick dreapta - GND și 5v la șinele de alimentare respective. SW - pinul 8, VRx - A2, VRy - A3.
  • Matricea LED din dreapta - GND și 5v la șinele de alimentare respective. DIN - 13, CS - 11, CLK - 12. (Conform liniei 25)
  • Toate celelalte matrici cu LED-uri pot fi înlănțuite pe ieșirea primei, mergând de la dreapta la stânga, astfel încât codul să funcționeze corect.
  • Buzzer opțional - Anod (+) prin rezistor de limitare a curentului de 220Ω la pinul 10, catod (-) - GND.

Pasul 3: Cablare alternativă

Cablare alternativă
Cablare alternativă
Cablare alternativă
Cablare alternativă
Cablare alternativă
Cablare alternativă

După ce l-am conectat cu un Arduino UNO pentru a economisi spațiu, am decis să pun Arduino IC de la UNO pe panou cu un oscilator de cristal de 16 MHz și o pereche de condensatori de 22 pF de la fiecare parte la masă. Cred că a fost o modificare care merită, deoarece face ca proiectul să pară mai ordonat și mai finalizat, totuși trebuie să utilizați un programator USB FTDI pentru a actualiza programul.

Pasul 4: Cod + Explicație

Pentru a încărca codul în Arduino descărcați biblioteca LedControl de pe GitHub aici, github.com/wayoda/LedControl și adăugați fișierul Zip sau adăugați-l prin Managerul de bibliotecă din IDE. După aceea deschideți schița atașată, selectați Arduino în setările de bord și port sub instrumente și încărcați-l pe arduino.

Explicaţie

Linia 1: adaugă biblioteca

Linia 5-23: Setează toate variabilele, constantele și numerele de pin.

Linia 25: Setează LED-ul Martix și setează pinii de control și câte afișaje.

Linia 27: Setează funcția de resetare.

Linia 30-35: Funcția de oprire pentru a porni / opri toate afișajele împreună.

Linia 38-43: funcția SetIntensity pentru a seta luminozitatea tuturor afișajelor împreună.

Linia 46-51: funcția ClearAll pentru a șterge toate afișajele împreună.

Linia 53-64: joystick Funcție pentru a obține poziția joystick-urilor, le mapează la cele 7 poziții posibile ale liliacului pentru lovirea mingii și apoi mută liliacul în noua poziție.

Linia 67-435: Funcție care mută mingea către jucătorul stâng la înălțimea și viteza specificate, verifică dacă jucătorul a lovit-o și fie continuă și stabilește starea de blocare la adevărat sau rotește mingea înapoi, adaugă 1 la scor și crește viteza.

Linia 438-811: Funcție care mută mingea către jucătorul potrivit la înălțimea și viteza specificate, verifică dacă jucătorul a lovit-o și fie continuă și stabilește starea de blocare la adevărat sau rotește mingea înapoi, adaugă 1 la scor și crește viteza.

Linia 813-823: Funcție pentru afișarea unui Smiley Face, Tick, Cross sau Question Mark pe afișajul specificat (0 în dreapta până la 3 în stânga).

Linia 861-979: Funcție pentru afișarea numerelor 0-9 pe afișajul specificat.

Linia 981-1047: Funcție pentru afișarea scorului pe fiecare parte a jucătorilor de pe ecran.

Linia 1049-1064: Funcție pentru a verifica dacă playerul este pregătit.

Linia 1066-1076: Secțiunea de configurare a codului pentru codul care se execută o dată când pornește programul.

Linia 1078-1136: Secțiunea Buclă principală pentru logica jocului în care sunt utilizate toate funcțiile și unde se decide cine câștigă și apoi repornește programul după 5 secunde de afișare a scorului.

Pasul 5: Vă mulțumim pentru lectură

Mulțumesc pentru lectură
Mulțumesc pentru lectură

Vă mulțumim că ați citit acest Instructable, a fost un proiect distractiv de blocare care s-a reunit în câteva zile, pe măsură ce am aflat mai multe despre programarea Arduino. Dacă v-a plăcut, nu ezitați să o votați la concursul Arduino.

Recomandat: