Sisällysluettelo:
Video: POING! - Arduino Arcade Game!: 3 vaihetta
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Rakennamme PONG-tyylistä arcade-peliä, jossa käytetään osia Elegoo Inc: n "Täydellisin aloituspakkaus UNO R3 Project" -sarjasta.
Täysi paljastaminen - Elegoo Inc. toimitti kirjoittajalle suurimman osan tähän oppaaseen toimitetuista osista.
Olen halunnut rakentaa projektin käyttämällä LED Matrix -moduulia. Perus 8x8 LED -näyttö vaatii lisäsiirtorekisterien käyttöä, jotta voidaan käsitellä matriisin yksittäisiä LED -valoja. Sen sijaan tässä projektissa käytetään MAX7219 8x8 LED -moduulia. Se on erittäin helppokäyttöinen moduuli.
Ehdotan, että tämän projektin johdotusliitäntöjen suuren määrän vuoksi sitä pidettäisiin INTERMEDIATE level Instructable.
Aloitetaan!
Tarvikkeet
Elegoon käynnistyssarjan osat (https://rebrand.ly/dvjb3w8)
- UNO R3 -mikro -ohjain
- MAX7219 8x8 LED -moduuli
- 16x2 LCD -näyttömoduuli
- 10K Trim -potentiometri ja nuppi
- Dupont -johdot
- 220R vastus
- Passiivinen pietsosummeri
- Virtalähdemoduuli
- 9V 1A -sovitin - tarvitaan, koska UNO ei voi syöttää riittävästi virtaa 8x8 LED -moduulille
- Leipälauta
Lisäosia tarvitaan
2 x 10K lineaarinen potentiometri - edullinen ja laajalti saatavilla eBayssa, AliExpressissä, Banggoodissa jne.
Vaihe 1: Piirin kytkentä
Kytke piiri kytkentäkaavion mukaisesti. Ei kiirettä. Näihin kahteen näyttöön tarvitaan PALJON liitäntöjä.
Huomaa piirin kuvassa, että virtamoduuli on kiinnitetty leipälevyn vasemmalle puolelle ja 9V 1A DC -sovitin on kytketty virtamoduuliin niin, että LED -matriisiin syötetään riittävästi virtaa. UNO: n 5V -nastan ja leipälevyn välillä EI ole yhteyttä. MUTTA UNO: n GND -nasta on kytketty leipälevyn GND: hen.
Tarkista työsi kahdesti ja kolmesti.
Vaihe 2: Arduino -koodi
Tämä opettavainen olettaa, että osaat jo ohjelmoida Arduinossa.
Lataa liitteenä oleva Arduino -luonnos. Varmista, että olet lisännyt LedControl -kirjaston Arduino -kirjastoihisi. Käytin Eberhard Fahlen versiota. Etsi MAX7219 Hallitse kirjastoja -selaimesta ja löydät sen ja asennat sen.
Varmista, että pitches.h -tiedosto on luonnoksen kansiossa. Sitä käytetään pelin äänien toistamiseen.
Vähän ajoituksesta
Koska delay () -komento keskeyttää luonnoksen suorittamisen kokonaan sen suorittamisen aikana, etsimme sen sijaan kuluneita ajanjaksoja, jotka tapahtuvat, kun haluamme suorittaa luonnoksen animaatioon liittyviä osia. Odotamme ennalta määrätyn ajan kuluvan ennen kuin suoritamme luonnoksen osia, kuten päivitämme pallon sijainnin näytöllä.
Vielä tärkeämpää on, että delay () -komento suoritetaan todella vain loop () -menetelmässä. Se ei yleensä toimi odotetusti muissa menetelmissä. Joten kaikki animaatioon liittyvät ajoitukset tehdään loop () -menetelmällä.
Esimerkki:
Määritämme joitain "pitkiä" tyyppisiä muuttujia ja pari booleania ja asetamme ne sitten asennuksen lopussa ().
bThresh = 80; // pallo päivitysten välinen aika millisekunteina
ballTime = millis (); // asetetaan järjestelmän nykyiseen aikaan
bon = epätosi; // on pallon merkkivalo päällä tai pois päältä
ballReturn = epätosi; // palautammeko pallon melon osuman jälkeen?
Silmukassa () pallon piirtämiseen meillä on:
if ((millis () - ballTime> bThresh) && bon == false) {// jos pallo on POIS PÄÄLTÄ ja tarpeeksi aikaa on kulunut ballOn (); // sytytä pallon merkkivalo
bon = totta; // pallo on nyt päällä
ballTime = millis (); // palauta ballTime nykyiseen aikaan
}
if ((millis () - ballTime> bThresh) && bon == true) {// jos pallo on päällä ja tarpeeksi aikaa on kulunut
ballOff (); // sammuta pallon LED
bon = epätosi; // pallo on nyt POIS PÄÄLTÄ
ballTime = millis (); palauta palloilmoitus nykyiseen aikaan
}
On monia tapoja tehdä tämä peli. Nämä ovat vain minun mieltymykseni.
Luonnos on täysin dokumentoitu, joten kehotan teitä lukemaan koodin nähdäksesi kuinka se toimii.
Tarkista, käännä ja lähetä koodisi.
Nauti pelaamisesta!
Vaihe 3: Johtopäätös
Kiitokset Elegoo Inc: lle tämän projektin aloituspakkauksen toimittamisesta. Se on sarja, jossa on laaja valikoima osia ja moduuleja, joiden avulla pääset hyvin Arduino Maker -maailmaan.