Përmbajtje:

Tenis Pong me Matricë LED, Arduino dhe Joysticks: 5 hapa (me fotografi)
Tenis Pong me Matricë LED, Arduino dhe Joysticks: 5 hapa (me fotografi)

Video: Tenis Pong me Matricë LED, Arduino dhe Joysticks: 5 hapa (me fotografi)

Video: Tenis Pong me Matricë LED, Arduino dhe Joysticks: 5 hapa (me fotografi)
Video: DIY Arduino 1D Pong game with WS2812 Led strip 2024, Nëntor
Anonim
Tenis Pong Me Matricë LED, Arduino dhe Joysticks
Tenis Pong Me Matricë LED, Arduino dhe Joysticks

Ky projekt ka për qëllim fillestarët dhe kallajxhinjtë me përvojë njësoj. Në një nivel bazë mund të bëhet me një dërrasë buke, tela kërcyes dhe ngjitur në një copë material skrap (kam përdorur dru) me Blu-Tack dhe pa bashkim. Sidoqoftë, në një nivel më të avancuar mund të ngjitet në pllakën e përsosur ose një PCB të personalizuar.

Meqenëse ky ishte një projekt bllokimi, unë nuk kisha qasje në shumë mjete ose materiale, prandaj është ngjitur në një copë druri të mbeturinave që është pak shumë i vogël me Blu-Tack, megjithatë pavarësisht nga ky është një projekt argëtues që bashkohet shpejt dhe përbëhet nga pjesë të zakonshme që mund të gjenden me çmim të ulët në internet.

Hapi 1: Pjesët

Për të bërë lojën Pong që ju nevojitet;

  • 1x një Arduino (çdo lloj do të funksionojë)
  • Matrica LED 4x MAX7219 8x8
  • 2x xhousticks
  • 1x Piezo Buzzer (Opsionale)
  • 15x Tela Jumper Femër-Femër (grupe 3x nga 5)
  • 15x tela kërcyes Mashkull-Femër (grupe 3x nga 5)
  • 18x Tela Jumper Mashkull-Mashkull
  • 1x Breadboard
  • Rezistencë 1x 220Ω

Në vend të një bordi Arduino Uno ose Nano ju mund të përdorni një Arduino me bazë buke;

  • 1x IC ATmega328p 28pin
  • Osilator kristal 1x 16kHz
  • Kondensatorë qeramikë 2x 22pF
  • 1x Konvertues USB FTDI UART
  • Kondensator elektrolitik 1x 100uF
  • 1x Micro USB Breakout (Opsionale)

Mjetet;

  • PC me Arduino IDE (dhe Bibliotekën LedControl)
  • Kabllo USB përkatëse për Arduino tuaj
  • Power Bank për të fuqizuar lojën larg kompjuterit tuaj

Hapi 2: Instalimet elektrike

Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike

Instalimet elektrike janë shumë të thjeshta pasi gjithçka që ju nevojitet janë telat e kërcyesit për të lidhur titujt e Matricave dhe Joysticks me Arduino. Komplikimi i vetëm është fuqia pasi Arduino Uno ka vetëm 3 lidhje GND dhe një lidhje 5v. Këtu futet bordi i bukës dhe vepron si një hekurudhë e shpërndarjes së energjisë për të gjithë përbërësit, Nëse jeni duke përdorur një NANO, bordi i bukës do të shërbejë për të njëjtin qëllim, si dhe do t'ju lejojë të lidhni gjithçka.

Për instalime elektrike ndiqni këto lidhje.

  • Joystick e majtë - GND dhe 5v në binarët e tyre përkatës të energjisë. SW - pin 9, VRx - A0, VRy - A1.
  • Xhojstik i djathtë - GND dhe 5v në binarët e tyre përkatës të energjisë. SW - pin 8, VRx - A2, VRy - A3.
  • Matriksi LED më i drejtë - GND dhe 5v në binarët e tyre përkatës të energjisë. DIN - 13, CS - 11, CLK - 12. (Sipas rreshtit 25)
  • Të gjitha matricat e tjera LED mund të jenë të lidhura me zinxhirë nga dalja e së parës duke shkuar nga e djathta në të majtë, kështu që kodi funksionon siç duhet.
  • Zile opsionale - Anodë (+) përmes rezistencës kufizuese të rrymës 220Ω në pin 10, Katodë (-) - GND.

Hapi 3: Instalimet alternative

Instalime alternative
Instalime alternative
Instalime alternative
Instalime alternative
Instalime alternative
Instalime alternative

Pasi e lidhja me një Arduino UNO për të kursyer hapësirë, vendosa ta vendosja Arduino IC nga UNO në tryezë me një oshilator kristal 16Mhz dhe një palë kondensatorë 22pF nga secila anë në tokë. Unë mendoj se ky ishte një modifikim i vlefshëm pasi e bën projektin të duket më i pastër dhe më i përfunduar megjithatë ju duhet të përdorni një programues USB FTDI për të azhurnuar programin.

Hapi 4: Kodi + Shpjegim

Për të ngarkuar kodin në Arduino shkarkoni bibliotekën LedControl nga GitHub këtu, github.com/wayoda/LedControl dhe shtoni skedarin Zip ose shtojeni atë përmes Menaxherit të Bibliotekës brenda IDE. Pas kësaj hapni skicën e bashkangjitur, zgjidhni Arduino -n tuaj në cilësimet e tabelës dhe portit nën mjetet dhe ngarkojeni atë në arduino.

Shpjegim

Linja 1: Shton bibliotekën

Linja 5-23: Vendos të gjitha variablat, konstantet dhe numrat pin.

Linja 25: Vendos LED Martix dhe vendos kunjat e kontrollit dhe sa ekrane.

Linja 27: Vendos funksionin e rivendosjes.

Linja 30-35: Funksioni i fikjes për të ndezur/fikur të gjitha ekranet së bashku.

Linja 38-43: Funksioni SetIntensity për të vendosur shkëlqimin e të gjitha ekraneve së bashku.

Linja 46-51: Funksioni ClearAll për të fshirë të gjitha ekranet së bashku.

Linja 53-64: levë Funksioni për të marrë pozicionin e levave, hartëzojini ato në 7 pozicionet e mundshme të lakuriqëve për goditjen e topit dhe më pas lëviz shkopin në pozicionin e ri.

Linja 67-435: Funksioni që lëviz topin te lojtari i majtë në lartësinë dhe shpejtësinë e caktuar, kontrollon nëse lojtari e goditi atë ose vazhdon dhe vendos statusin e rrëzimit në të vërtetë ose e kthen topin mbrapsht, shton 1 në rezultat dhe rrit shpejtësinë.

Linja 438-811: Funksioni që lëviz topin te lojtari i djathtë në lartësinë dhe shpejtësinë e caktuar, kontrollon nëse lojtari e goditi atë ose vazhdon dhe e vendos statusin e përplasjes në të vërtetë ose e kthen topin mbrapsht, shton 1 në rezultat dhe rrit shpejtësinë.

Linja 813-823: Funksioni për shfaqjen e një fytyre buzëqeshëse, shënimi, kryqi ose pyetësori në ekranin e specifikuar (0 në të djathtë në 3 në të majtë).

Linja 861-979: Funksioni për shfaqjen e numrave 0-9 në ekranin e specifikuar.

Linja 981-1047: Funksioni për shfaqjen e rezultatit në secilën anë të lojtarëve të ekranit.

Linja 1049-1064: Funksioni për të kontrolluar nëse luajtësi është gati.

Linja 1066-1076: Konfigurimi Seksioni i kodit për kodin që ekzekutohet një herë kur fillon programi.

Linja 1078-1136: Seksioni i Loop-it kryesor për logjikën e lojës ku përdoren të gjitha funksionet dhe ku vendoset kush fiton dhe pastaj rifillon programin pas 5 sekondash të shfaqjes së rezultatit.

Hapi 5: Faleminderit për Leximin

Faleminderit per leximin
Faleminderit per leximin

Faleminderit që lexuat këtë Instructable ishte një projekt mbyllës argëtues që u bashkua gjatë disa ditëve ndërsa mësova më shumë rreth programimit Arduino. Nëse ju pëlqeu mos ngurroni ta votoni në konkursin Arduino.

Recommended: