Gyvatės žaidimas buvo labai populiarus nuo pat mobiliųjų telefonų pradžios. Iš pradžių jis buvo pristatytas juodai baltais mobiliaisiais telefonais ir netrukus labai išgarsėjo. Tada tobulėjant „Cellphones“, šis žaidimas taip pat labai pasikeitė, o dabar yra daugybė grafinių ir spalvingų šio žaidimo versijų.
Gyvatės žaidimas taip pat tapo labai populiariu elektronikos mėgėjų ir studentų pasidaryk pats. Taigi šiandien mes parodysime „ Arduino Snake Game“ su visomis pagrindinėmis funkcijomis, tuo pačiu išlaikydami jį paprastą.
Naudoti komponentai:
- „Arduino UNO“
- 8x8 LED taškų matricos ekranas
- Pamainų registras 74HC595
- 16x2 LCD ekranas
- PODAS 1K
- Mygtukai
- Jungiamieji laidai
- Bandomoji Lenta
- Maitinimas
Darbinis paaiškinimas:
Tai yra mažai sudėtingas žaidimas. Tačiau šioje pamokoje mes jums tai padarėme paprastą. Norėdami įgyvendinti šį projektą, gyvatei ir jos taškui rodyti naudojome 8x8 raudonos spalvos taškinės matricos ekraną, taškų ar balų rodymo skystųjų kristalų ekraną, 5 mygtukus nurodymams ir žaidimo pradžiai bei galiausiai „Arduino UNO“ valdymui. viso proceso metu. Žemiau pateikiama 8x8 LED taškų matricos ekrano su originaliu vaizdu schema:
Kai įjungiame grandinę, pirmiausia parodome pasveikinimo pranešimą, o tada „Press Start To Play“ užuomina LCD. Po to LCD rodo rezultatą kaip nulį, o taškų matricos ekrane du taškai - gyvatė ir vienas taškas - kaip maistas.
Dabar vartotojas turi paspausti vidurinį mygtuką, kad pradėtų žaidimą, ir gyvatė pagal nutylėjimą pradeda judėti aukštyn. Tada vartotojas turi nurodyti gyvatės kryptį, paspausdamas „krypties klavišus“ aplink vidurinį mygtuką. Čia mes panaudojome penkis klavišus (mygtukus), būtent kairįjį, dešinįjį, aukštyn, žemyn ir pradžios klavišus. Kai gyvatė pasiekia maisto tašką arba suvalgo maistą, rezultatas kiekvieną kartą padidėja 5 taškais, o gyvatės ilgis kaskart padidėja vienu tašku (LED), taip pat gyvatės greitis tampa didesnis nei anksčiau. Ir kai gyvatė smogė į bet kurią sieną ar pasiekė LED matricos galą, tada jis baigė žaidimą („Game Over“). Tada vartotojas turi pradėti žaidimą dar kartą paspausdamas pradžios klavišą.
Grandinės paaiškinimas:
Šio gyvačių žaidimo projekto grandinė yra mažai sudėtinga. Čia mes sujungėme taškų matricos ekraną naudodami „ Shift Register“ 74HC595. Čia naudojami du pamainų registrai, vienas skirtas stulpeliams vairuoti, o antrasis - eilėms. Abiejų registrų, stulpelių poslinkių registro ir eilių poslinkių registro (SH, ST) valdymo kaiščiai ,yra tiesiogiai prijungti prie „Arduino“ kaiščių numerių 14 ir 16. Stulpelių poslinkio registro ir eilučių poslinkio registro DS kaištis yra tiesiogiai prijungtas prie „Arduino“ kaiščių 15 ir 17. Žaidimo pradžios pradžios mygtukas yra prijungtas prie kaiščio Nr. 3, kairės krypties mygtukas prie kaiščio 4, dešinės krypties mygtukas prie kaiščio 6, į viršų nukreipimo mygtukas prie kaiščio 2 ir žemyn nukreipimo mygtukas prie kaiščio 5. Taip pat mūsų aparatinėje įrangoje yra prijungtas LCD ekranas. parodyti rezultatą. RS ir EN kaiščiai yra tiesiogiai prijungti prie 13 ir 12 kaiščių. RW kaištis yra tiesiogiai įžemintas. D4-d7 duomenų kaiščiai yra sujungti „Arduino“ 11, 10, 9, 8 kaiščiuose. Likusi jungtis parodyta grandinės schemoje.
Programavimo paaiškinimas:
Norėdami parašyti šį „Arduino“ gyvatės žaidimo kodą, pirmiausia įtraukiame antraštės failus ir nustatome LCD kaiščius. Tada nustatykite keletą kaiščių krypties mygtukams ir duomenų kaištį poslinkių registrams.
# įtraukti
Tada inicijuojame visus dalykus, kuriuos naudojome programoje. Naudodamiesi sąrankos funkcija, mes inicijuojame LCD ekraną, nurodydami įvesties išvesties kaiščių kryptį, patraukdami bitus ir rodydami pasveikinimo pranešimą LCD.
negaliojanti sąranka () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (pradžia, INPUT);……………
Tada mes pradedame žaidimą ciklo funkcija.
tuštumas show_snake (int temp) {for (int n = 0; n
Čia mes naudojome žemiau pateiktą funkciją skaitydami įvesties kryptį iš mygtuko.
void read_button () {if (! digitalRead (kairėje)) {move_r = 0; judėti_c! = - 1? judėti_c = -1: judėti_c = 1; o (! digitalRead (kairėje));……………
Žemiau patikrinkite visą gyvatės žaidimo C kodą.