Video: POiNG! - Arkádová hra Arduino !: 3 kroky
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Postavíme arkádovú hru v štýle PONG, ktorá používa diely zo súpravy „The Most Complete Starter Kit UNO R3 Project“od spoločnosti Elegoo Inc.
Úplné zverejnenie - väčšinu častí dodaných s týmto návodom poskytla autorovi spoločnosť Elegoo Inc.
Chcel som vytvoriť projekt pomocou modulu LED Matrix. Základný LED displej 8x8 vyžaduje použitie ďalších posuvných registrov, aby bolo možné adresovať jednotlivé LED diódy v matici. Namiesto toho tento projekt používa LED modul MAX7219 8x8. Je to veľmi jednoduchý modul na použitie.
Navrhoval by som, aby bol vzhľadom na veľký počet zapojení elektroinštalácií v tomto projekte považovaný za INTERMEDIATICKÚ úroveň, ktorú je možné inštruovať.
Začnime!
Zásoby
Použité diely štartovacej súpravy Elegoo (https://rebrand.ly/dvjb3w8)
- Mikrokontrolér UNO R3
- LED modul MAX7219 8x8
- Modul displeja LCD 16x2
- 10K trimovací potenciometer a gombík
- Dupont Wires
- Rezistor 220R
- Pasívny piezoelektrický bzučiak
- Modul napájania
- Adaptér 9V 1A - potrebný, pretože UNO nemôže dodávať dostatočný prúd pre modul LED 8x8
- Breadboard
Potrebné ďalšie diely
2 x 10K lineárny potenciometer - lacný a široko dostupný na eBay, AliExpress, Banggood atď.
Krok 1: Zapojenie obvodu
Zapojte obvod podľa schémy zapojenia. Neponáhľaj sa. Pre tieto dva displeje je potrebných VEĽA pripojení.
Všimnite si na fotografii obvodu, že napájací modul je pripevnený k ľavej strane dosky a 9V 1A DC adaptér je zapojený do napájacieho modulu tak, aby bol do matice LED dodávaný dostatočný prúd. Medzi 5V kolíkom na UNO a doskou neprebieha ŽIADNE spojenie. ALE, pin GND na UNO je spojený s GND na doske.
Dvakrát a trikrát skontrolujte svoju prácu.
Krok 2: Arduino kód
Tento návod predpokladá, že už viete, ako programovať v Arduine.
Stiahnite si priloženú skicu Arduino. Uistite sa, že ste pridali knižnicu LedControl do svojich knižníc Arduino. Použil som verziu od Eberharda Fahleho. Stačí vyhľadať MAX7219 v prehliadači Spravovať knižnice a nájdete ho a nainštalujete.
Uistite sa, že súbor pitches.h je v priečinku vašej skice. Slúži na prehrávanie zvukov v hre.
Trochu o načasovaní
Pretože príkaz delay () úplne pozastaví spustenie vašej skice, keď je spustená, namiesto toho hľadáme uplynulé časové obdobia, keď chceme vykonať časti skice súvisiace s animáciou. Pred vykonaním častí náčrtu, ako je napríklad aktualizácia umiestnenia lopty na displeji, hľadáme prednastavený čas.
Ešte dôležitejšie je, že príkaz delay () sa skutočne vykonáva iba metódou loop (). Obvykle sa nepracuje tak, ako sa očakáva v iných metódach. Všetky načasovania súvisiace s animáciami sa teda vykonávajú metódou loop ().
Príklad:
Definujeme niekoľko „dlhých“typových premenných a niekoľko booleov a potom ich nastavíme na konci nastavenia ().
bThresh = 80; // čas v milisekundách medzi aktualizáciami lopty
ballTime = millis (); // nastavený na aktuálny systémový čas
bon = nepravda; // je guľová LED zapnutá alebo vypnutá
ballReturn = nepravda; // vraciame loptičku po údere pádlom?
V slučke () na kreslenie lopty máme:
if ((millis () - ballTime> bThresh) && bon == false) {// ak je loptička VYPNUTÁ a uplynul dostatok času ballOn (); // zapnite LED diódu
bon = pravda; // lopta je teraz ZAPNUTÁ
ballTime = millis (); // reset ballTime na aktuálny čas
}
if ((millis () - ballTime> bThresh) && bon == true) {// ak je lopta zapnutá a uplynul dostatok času
ballOff (); // vypnutie LED gule
bon = nepravda; // lopta je teraz vypnutá
ballTime = millis (); resetujte loptičku na aktuálny čas
}
Existuje mnoho spôsobov, ako vytvoriť túto hru. Toto sú len moje preferencie.
Skica je plne zdokumentovaná, preto vás pozývam, aby ste si prečítali kód a zistili, ako funguje.
Skontrolujte, skompilovajte a nahrajte svoj kód.
Užite si hranie svojej hry!
Krok 3: Záver
Moje poďakovanie patrí spoločnosti Elegoo Inc za poskytnutie štartovacej sady použitej v tomto projekte. Je to súprava s veľkým počtom rôznych dielov a modulov, ktoré vás zavedú do sveta Arduino Maker.