Video: POiNG! - Arduino arkadna igra!: 3 koraki
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Gradili bomo arkadno igro v slogu PONG, ki uporablja dele iz kompleta "Najbolj popoln začetni komplet projekta UNO R3" podjetja Elegoo Inc.
Popolno razkritje - Večino delov, priloženih temu navodilu, je avtorju posredoval Elegoo Inc.
Želel sem zgraditi projekt z uporabo LED matričnega modula. Osnovni LED zaslon 8x8 zahteva uporabo dodatnih registrov premikov, da lahko obravnava posamezne LED v matriki. Namesto tega ta projekt uporablja LED modul MAX7219 8x8. To je zelo enostaven za uporabo modul.
Predlagam, da bi se zaradi velikega števila kabelskih povezav v tem projektu štelo za vmesno raven Instructable.
Začnimo!
Zaloge
Rabljeni deli začetnega kompleta Elegoo (https://rebrand.ly/dvjb3w8)
- UNO R3 mikrokrmilnik
- MAX7219 8x8 LED modul
- Zaslonski modul LCD 16x2
- 10K trim potenciometer in gumb
- Dupont žice
- 220R upor
- Pasivni zvočni signal Piezo
- Napajalni modul
- 9V 1A adapter - potreben, ker UNO ne more zagotoviti zadostnega toka za 8x8 LED modul
- Ogledna plošča
Potrebni dodatni deli
2 x 10K linearni potenciometer - poceni in široko dostopen na eBayu, AliExpressu, Banggoodu itd.
1. korak: Ožičenje vezja
Ožičite vezje v skladu s shemo ožičenja. Vzemi si čas. Za oba zaslona je potrebno veliko povezav.
Na fotografiji vezja opazite, da je napajalni modul pritrjen na levo stran plošče in da je napajalni modul 9V 1A priključen v napajalni modul, tako da se v matriko LED dovaja dovolj toka. Nima povezave med 5V zatičem na UNO in ploščo. Vendar je pin GND na UNO povezan z GND na plošči.
Dvakrat in trikrat preverite svoje delo.
2. korak: Arduino koda
Ta pouk predvideva, da že znate programirati v Arduinu.
Prenesite priloženo skico Arduino. Poskrbite, da ste v knjižnico Arduino dodali knjižnico LedControl. Uporabil sem različico Eberharda Fahleja. Samo poiščite MAX7219 v brskalniku Manage Libraries in ga boste našli in namestili.
Prepričajte se, da je datoteka pitches.h v mapi skice. Uporablja se za predvajanje zvokov v igri.
Nekaj o času
Ker ukaz delay () v celoti zaustavi izvajanje skice, ko se zažene, namesto tega iščemo pretekla časovna obdobja, ki se pojavijo, ko želimo izvesti dele skice, povezane z animacijo. Iščemo vnaprej določeno časovno obdobje, preden izvedemo dele skice, na primer posodobitev lokacije žoge na zaslonu.
Še pomembneje je, da se ukaz delay () v resnici izvede samo v metodi loop (). Pri drugih metodah se običajno ne izvaja po pričakovanjih. Tako se ves čas, povezan z animacijo, izvede v metodi loop ().
Primer:
Opredelimo nekaj spremenljivk tipa "long" in nekaj logičnih vrednosti, nato pa jih nastavimo na koncu setup ().
bThresh = 80; // čas v milisekundah med posodobitvami kroglic
ballTime = millis (); // nastavljeno na trenutni sistemski čas
bon = napačno; // je LED za kroglo vklopljen ali izklopljen
ballReturn = false; // vračamo žogo po udarcu z veslom?
V zanki () za risanje žoge imamo:
if ((millis () - ballTime> bThresh) && bon == false) {// če je žoga IZKLOPLJENA in je minilo dovolj časa ballOn (); // vklopi LED za žogo
bon = res; // žoga je zdaj ON
ballTime = millis (); // ponastavimo ballTime na trenutni čas
}
if ((millis () - ballTime> bThresh) && bon == true) {// če je žoga vklopljena in je minilo dovolj časa
ballOff (); // izklopite LED za kroglo
bon = napačno; // žoga je zdaj OFF
ballTime = millis (); ponastavite žogo na trenutni čas
}
Obstaja veliko načinov za izdelavo te igre. To so le moje preference.
Skica je v celoti dokumentirana, zato vas vabim, da preberete kodo, da vidite, kako deluje.
Preverite, sestavite in naložite kodo.
Uživajte v svoji igri!
3. korak: Zaključek
Zahvaljujem se Elegoo Inc za zagon začetnega kompleta, uporabljenega v tem projektu. To je komplet z veliko raznolikimi deli in moduli, ki vas bodo popeljali v svet Arduino Makerja.