Sisällysluettelo:

Pongitennis LED -matriisilla, Arduinolla ja ohjaussauvoilla: 5 vaihetta (kuvilla)
Pongitennis LED -matriisilla, Arduinolla ja ohjaussauvoilla: 5 vaihetta (kuvilla)

Video: Pongitennis LED -matriisilla, Arduinolla ja ohjaussauvoilla: 5 vaihetta (kuvilla)

Video: Pongitennis LED -matriisilla, Arduinolla ja ohjaussauvoilla: 5 vaihetta (kuvilla)
Video: Arduino Opas 10 - 8x8-LED matriisi ja 74HC595 siirtorekisteri 2024, Marraskuu
Anonim
Pongitennis, jossa LED -matriisi, Arduino ja ohjaussauvat
Pongitennis, jossa LED -matriisi, Arduino ja ohjaussauvat

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
Johdotus
Johdotus
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

Vaihtoehtoinen johdotus
Vaihtoehtoinen johdotus
Vaihtoehtoinen johdotus
Vaihtoehtoinen johdotus
Vaihtoehtoinen johdotus
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 lukemisesta
Kiitos lukemisesta

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.

Suositeltava: