Sisällysluettelo:
Video: Pongitennis LED -matriisilla, Arduinolla ja ohjaussauvoilla: 5 vaihetta (kuvilla)
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tämä projekti on suunnattu niin aloittelijoille kuin kokeneillekin. Perustasolla se voidaan tehdä leipälevyllä, hyppyjohtimilla ja kiinnittää romumateriaaliin (käytin puuta) Blu-Tackilla ilman juottamista. Kuitenkin kehittyneemmällä tasolla se voidaan juottaa perf -levyyn tai mukautettuun piirilevyyn.
Koska tämä oli lukitusprojekti, minulla ei ollut pääsyä moniin työkaluihin tai materiaaleihin, joten miksi se on juuttunut puunpalaan, joka on hieman liian pieni Blu-Tackilla, mutta tästä huolimatta se on hauska projekti, joka tulee yhteen nopeasti ja koostuu yleisesti saatavilla olevista osista, jotka löytyvät edullisesti verkosta.
Vaihe 1: Osat
Tarvitset Pong -pelin;
- 1x Arduino (mikä tahansa toimii)
- 4x MAX7219 8x8 LED -matriisit
- 2x ohjaussauvat
- 1x pietsosummeri (valinnainen)
- 15x naaras-naarasliitin (3x 5 kpl ryhmää)
- 15x uros-naarasliitin (3x 5 kpl ryhmää)
- 18x uros-uros-hyppyjohdot
- 1x leipälauta
- 1x 220Ω vastus
Arduino Uno- tai Nano -levyn sijasta voit käyttää Arduino -leipäpohjaista leipää;
- 1x ATmega328p 28pin IC
- 1x 16kHz kideoskillaattori
- 2x 22pF keraamiset kondensaattorit
- 1x USB FTDI UART -muunnin
- 1x 100uF elektrolyyttikondensaattori
- 1x Micro USB Breakout (valinnainen)
Työkalut;
- PC, jossa on Arduino IDE (ja LedControl Library)
- Asiaankuuluva USB -kaapeli Arduinollesi
- Virtapankki tehostaaksesi peliä tietokoneeltasi
Vaihe 2: Johdotus
Johdotus on hyvin yksinkertaista, koska tarvitset vain hyppyjohdot matriisien ja ohjaussauvojen otsikoiden liittämiseksi Arduinoon. Ainoa komplikaatio on virta, koska Arduino Unossa on vain 3 GND -liitäntää ja yksi 5 voltin liitäntä. Täällä leipälauta tulee sisään ja toimii kaikkien komponenttien virranjakelukiskona. Jos käytät NANO -laitetta, leipälauta palvelee samaa tarkoitusta ja mahdollistaa kaiken kytkemisen.
Johdotusta varten noudata näitä kytkentöjä.
- Vasen ohjaussauva - GND ja 5v omille virtakiskoilleen. SW - nasta 9, VRx - A0, VRy - A1.
- Oikea ohjaussauva - GND ja 5v omiin voimakiskoihinsa. SW - nasta 8, VRx - A2, VRy - A3.
- Oikein päin oleva LED -matriisi - GND ja 5v vastaaviin virtakiskoihinsa. DIN - 13, CS - 11, CLK - 12. (rivin 25 mukaisesti)
- Kaikki muut LED -matriisit voidaan ketjuttaa ensimmäisen ensimmäisen ulostulosta oikealta vasemmalle, joten koodi toimii oikein.
- Valinnainen summeri - anodi (+) - 220 Ω: n virranrajoitusvastus nastaan 10, katodi (-) - GND.
Vaihe 3: Vaihtoehtoinen johdotus
Johdotuksen jälkeen Arduino UNO: lla tilan säästämiseksi päätin laittaa UNO: n Arduino IC: n leipälevylle, jossa on 16 MHz: n kristallioskillaattori ja pari 22pF: n kondensaattoria kummaltakin puolelta maahan. Mielestäni tämä oli kannattava muutos, koska se saa projektin näyttämään siistimmältä ja valmiimmalta, mutta sinun on käytettävä USB FTDI -ohjelmoijaa ohjelman päivittämiseen.
Vaihe 4: Koodi + Selitys
Jos haluat ladata koodin Arduinolle, lataa LedControl -kirjasto GitHubista täältä, github.com/wayoda/LedControl ja lisää Zip -tiedosto tai lisää se IDE: n kirjastonhallinnan kautta. Avaa tämän jälkeen liitteenä oleva luonnos, valitse Arduino -levysi ja porttiasetukset työkalujen alta ja lataa se arduinoon.
Selitys
Rivi 1: Lisää kirjaston
Rivi 5-23: Asettaa kaikki muuttujat, vakiot ja pin-numerot.
Rivi 25: Asettaa Martix -LEDin ja asettaa ohjaustapit ja kuinka monta näyttöä.
Rivi 27: Asettaa nollaustoiminnon.
Rivi 30-35: Sammutustoiminto kaikkien näyttöjen kytkemiseksi päälle/pois.
Rivi 38-43: SetIntensity-toiminto kaikkien näyttöjen kirkkauden asettamiseksi yhdessä.
Rivi 46-51: ClearAll-toiminto pyyhkii kaikki näytöt yhteen.
Rivi 53-64: ohjaussauva Toiminto, jolla saat ohjaussauvojen asennon, kartoitetaan ne seitsemään mahdolliseen mailan asentoon pallon lyömiseksi ja siirretään sitten maila uuteen asentoon.
Rivi 67-435: Toiminto, joka siirtää pallon vasemmalle pelaajalle määrätyllä korkeudella ja nopeudella, tarkistaa, osuiko pelaaja siihen ja joko jatkaa ja asettaa törmäystilan tosi-asentoon tai palauttaa pallon takaisin, lisää pisteeseen 1 ja lisää nopeutta.
Rivi 438-811: Toiminto, joka siirtää pallon oikealle pelaajalle määrätyllä korkeudella ja nopeudella, tarkistaa, osuiko pelaaja siihen ja joko jatkaa ja asettaa törmäyksen tilaksi tosi tai palauttaa pallon takaisin, lisää pistemäärään 1 ja lisää nopeutta.
Rivi 813-823: Toiminto, jolla voidaan näyttää hymiö, kasvot, rasti, risti tai kysymysmerkki määritettyyn näyttöön (0 oikealta 3 vasemmalle).
Rivi 861-979: Toiminto näyttää numerot 0-9 määritettyyn näyttöön.
Rivi 981-1047: Toiminto, joka näyttää pisteet näytön jokaiselle pelaajapuolelle.
Rivi 1049-1064: Toiminto, jolla voit tarkistaa, onko soitin valmis.
Rivi 1066-1076: Asetukset Koodin koodiosa, joka suoritetaan kerran, kun ohjelma käynnistyy.
Rivi 1078-1136: Pääsilmukka-osa pelilogiikalle, jossa kaikkia toimintoja käytetään ja missä voittaja päätetään ja sitten se käynnistää ohjelman uudelleen 5 sekunnin pisteytyksen jälkeen.
Vaihe 5: Kiitos, että luit
Kiitos, että luit tämän Instructable -ohjelman, se oli hauska lukitusprojekti, joka kokoontui parin päivän aikana, kun opin lisää Arduinon ohjelmoinnista. Jos pidit siitä, voit äänestää sitä Arduino -kilpailussa.