Kazalo:

Tenis za tenis z LED matrico, Arduinom in igralnimi palicami: 5 korakov (s slikami)
Tenis za tenis z LED matrico, Arduinom in igralnimi palicami: 5 korakov (s slikami)
Anonim
Tenis za tenis z LED matrico, Arduinom in igralnimi palicami
Tenis za tenis z LED matrico, Arduinom in igralnimi palicami

Ta projekt je namenjen tako začetnikom kot izkušenim delavcem. Na osnovni ravni je to mogoče storiti z mizo, skakalnimi žicami in zlepljenim na kos odpadnega materiala (uporabil sem les) z Blu-Tackom in brez spajkanja. Na naprednejši ravni pa ga lahko spajkate na perf ploščo ali tiskano vezje po meri.

Ker je bil to projekt zaklepanja, nisem imel dostopa do številnih orodij ali materialov, zato se je z Blu-Tackom zataknil za kos ostarelega lesa, ki je nekoliko premajhen, kljub temu pa je to zabaven projekt, ki pride skupaj hitro in je sestavljen iz običajno dostopnih delov, ki jih lahko poceni najdete na spletu.

1. korak: Deli

Za izdelavo igre Pong potrebujete;

  • 1x Arduino (katera koli vrsta bo delovala)
  • 4x LED matrice MAX7219 8x8
  • 2x igralne palice
  • 1x Piezo Zuzzer (neobvezno)
  • 15x žensko-ženskih mostičarskih žic (3x skupine po 5)
  • 15x moško-ženskih mostičkov (3x skupine po 5)
  • 18x moško-moških mostičarskih žic
  • 1x Ogledna plošča
  • 1x 220Ω upor

Namesto plošče Arduino Uno ali Nano lahko uporabite Arduino na osnovi matične plošče;

  • 1x ATmega328p 28pin IC
  • 1x 16kHz kristalni oscilator
  • 2x 22pF keramični kondenzatorji
  • 1x USB FTDI UART pretvornik
  • 1x 100uF elektrolitski kondenzator
  • 1x prekinitev mikro USB (neobvezno)

Orodja;

  • Računalnik z Arduino IDE (in knjižnico LedControl)
  • Ustrezen kabel USB za vaš Arduino
  • Power Bank za napajanje igre stran od računalnika

2. korak: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje

Ožičenje je zelo preprosto, saj potrebujete le mostične žice za povezovanje glav matric in igralnih palic z Arduinom. Edini zaplet je napajanje, saj ima Arduino Uno samo 3 povezave GND in eno povezavo 5 V. Tu prihaja matična plošča in deluje kot razdelilna tirnica za vse komponente. Če uporabljate NANO, bo plošča služila istemu namenu in vam omogočila, da vse priključite.

Za ožičenje sledite tem povezavam.

  • Leva krmilna palica - GND in 5v na ustrezne tirnice. SW - pin 9, VRx - A0, VRy - A1.
  • Desna krmilna palica - GND in 5v na ustrezne napajalne tirnice. SW - pin 8, VRx - A2, VRy - A3.
  • Skrajna desna LED matrika - GND in 5v do ustreznih napajalnih tirnic. DIN - 13, CS - 11, CLK - 12. (po vrstici 25)
  • Vse ostale LED matrike je mogoče priklopiti na izhod prve, ki poteka od desne proti levi, da koda deluje pravilno.
  • Izbirni zvočni signal - Anoda (+) do 220Ω upor za omejevanje toka na pin 10, katoda (-) - GND.

3. korak: Nadomestno ožičenje

Alternativno ožičenje
Alternativno ožičenje
Alternativno ožičenje
Alternativno ožičenje
Alternativno ožičenje
Alternativno ožičenje

Ko sem ga ožičil z Arduino UNO, da sem prihranil prostor, sem se odločil, da Arduino IC iz UNO postavim na ploščo s 16Mhz kristalnim oscilatorjem in parom 22pF kondenzatorjev z vsake strani do tal. Menim, da je bila to vredna sprememba, saj je projekt videti bolj urejen in dokončan, vendar morate za posodobitev programa uporabiti programer USB FTDI.

4. korak: Koda + razlaga

Če želite naložiti kodo v Arduino, prenesite knjižnico LedControl iz GitHub tukaj, github.com/wayoda/LedControl in dodajte datoteko Zip ali jo dodajte prek upravitelja knjižnice v IDE. Nato odprite priloženo skico, izberite svoj Arduino v nastavitvah plošče in vrat pod orodji in ga naložite v arduino.

Pojasnilo

Vrstica 1: Doda knjižnico

Vrstica 5-23: nastavi vse spremenljivke, konstante in številke pinov.

Vrstica 25: Nastavi LED Martix in nastavi kontrolne zatiče ter koliko prikazov.

Vrstica 27: nastavi funkcijo ponastavitve.

Vrstica 30-35: funkcija izklopa za vklop/izklop vseh zaslonov skupaj.

Vrstica 38-43: funkcija SetIntensity za nastavitev svetlosti vseh zaslonov skupaj.

Vrstica 46-51: funkcija ClearAll za brisanje vseh zaslonov skupaj.

Vrstica 53-64: krmilna palica Funkcija, da dobite položaj igralnih palic, jih preslikate v 7 možnih položajev palic za udarjanje žoge in nato premaknete palico na nov položaj.

Vrstica 67-435: Funkcija, ki premakne žogo na levega igralca z določeno višino in hitrostjo, preveri, ali jo je igralec zadel in bodisi nadaljuje ter nastavi stanje nesreče na true ali odbije žogo nazaj, doda 1 k rezultatu in poveča hitrost.

Vrstica 438-811: Funkcija, ki premakne žogo na desnega igralca z določeno višino in hitrostjo, preveri, ali jo je igralec zadel in bodisi nadaljuje ter nastavi stanje nesreče na resnično ali odbije žogo, doda rezultat 1 in poveča hitrost.

Vrstica 813-823: Funkcija za prikaz nasmejanega obraza, kljukice, križa ali vprašaja na določenem zaslonu (0 na desni do 3 na levi).

Vrstica 861-979: Funkcija za prikaz številk 0-9 na podanem zaslonu.

Vrstica 981-1047: funkcija za prikaz rezultata na vsaki strani igralca na zaslonu.

Vrstica 1049-1064: funkcija za preverjanje, ali je predvajalnik pripravljen.

Vrstica 1066-1076: Nastavitveni odsek kode za kodo, ki se zažene enkrat ob zagonu programa.

Vrstica 1078-1136: Odsek glavne zanke za logiko igre, kjer se uporabljajo vse funkcije in kjer se odloči, kdo zmaga, nato pa po 5 sekundah prikaza rezultata znova zažene program.

5. korak: Hvala za branje

Hvala za branje
Hvala za branje

Hvala, ker ste prebrali ta Instructable, to je bil zabaven projekt zaklepanja, ki je nastal v nekaj dneh, ko sem izvedel več o programiranju Arduino. Če vam je bilo všeč, glasujte zanj na natečaju Arduino.

Priporočena: