Čūsku spēle ir bijusi ļoti populāra kopš mobilo tālruņu darbības sākuma. Sākotnēji tas tika piegādāts melnbaltos mobilajos tālruņos, un drīz kļuva ļoti slavens. Tad, attīstoties mobilajiem telefoniem, arī šī spēle ir daudz mainījusies, un tagad ir pieejamas daudzas grafiskas un krāsainas šīs spēles versijas.
Čūsku spēle ir kļuvusi arī par ļoti populāru DIY projektu elektronikas hobijam un studentiem. Tāpēc šodien mēs demonstrēsim Arduino Snake Game ar visām tās pamatfunkcijām, vienlaikus saglabājot to vienkāršu.
Izmantotās sastāvdaļas:
- Arduino UNO
- 8x8 LED punktu matricas displejs
- Maiņu reģistrs 74HC595
- 16x2 LCD
- POT 1K
- Spiediet pogas
- Savienojošie vadi
- Maizes dēlis
- Enerģijas padeve
Darba skaidrojums:
Šī ir nedaudz sarežģīta spēle. Bet šajā apmācībā mēs to esam padarījuši jums vienkāršu. Lai izveidotu šo projektu, mēs esam izmantojuši 8x8 sarkanas krāsas Dot matricas displeju čūskas un tās pārtikas punkta parādīšanai, LCD punktu vai rezultātu parādīšanai, 5 spiedpogas, lai dotu norādījumus un sāktu spēli, un visbeidzot Arduino UNO kontrolei visā procesā. 8x8 LED Dot Matrix displeja tapas diagramma ar tā sākotnējo attēlu ir sniegta zemāk:
Ieslēdzot ķēdi, vispirms tiek parādīts sveiciena ziņojums un pēc tam LCD ekrānā redzams “Press Start To Play” mājiens. Pēc tam LCD parāda rezultātu kā nulli un punktu matricas displejā divi punkti kā čūska un viens punkts kā ēdiens.
Tagad lietotājam jānospiež vidējā poga, lai sāktu spēli, un čūska pēc noklusējuma sāk kustēties augšup. Pēc tam lietotājam jādod čūskas virziens, nospiežot virziena taustiņus ap vidējo pogu. Šeit mēs izmantojām piecus taustiņus (spiedpogas), proti, kreiso taustiņu, labo taustiņu, augšup taustiņu, lejupvērsto taustiņu un sākuma taustiņu. Ikreiz, kad čūska sasniedz pārtikas punktu vai ēd ēdienu, rezultāts katru reizi palielinās par 5 punktiem un čūskas garums katru reizi tiek palielināts par vienu punktu (LED), tāpat arī čūskas ātrums kļūst ātrāks nekā iepriekš. Un ikreiz, kad čūska uzsita pret jebkuru sienu vai sasniedza LED matricas galu, tad tā pārtrauca spēli (“Game Over”). Pēc tam lietotājam jāsāk spēle vēlreiz, nospiežot sākuma taustiņu.
Ķēdes skaidrojums:
Šī čūsku spēles projekta shēma ir maz sarežģīta. Šeit mēs esam savienojuši punktu matricas displeju, izmantojot Shift Register 74HC595. Šeit tiek izmantoti divi maiņu reģistri, viens kolonnu braukšanai un otrais rindu vadīšanai. Gan reģistru, gan kolonnu nobīdes reģistra un rindu nobīdes reģistra (SH, ST) vadības tapas ,ir tieši savienoti ar Arduino tapu numuru attiecīgi 14 un 16. Kolonnu nobīdes reģistra un rindu nobīdes reģistra DS tapa ir tieši savienota ar Arduino tapu numuriem 15 un 17. Spēles sākšanas poga ir savienota ar tapu Nr. 3, kreisā virziena poga pie tapas 4, labā virziena poga pie tapas 6, augšējā virziena poga pie tapas 6 un augšējā virziena poga pie tapas 2 un lejup vērstā poga pie tapas 5. Mūsu aparatūrā ir pievienots arī LCD rādīt rezultātu. RS un EN tapas ir tieši savienotas ar tapām 13 un 12. RW tapa ir tieši iezemēta. Datu tapas d4-d7 ir savienotas Arduino 11., 10., 9., 8. tapā. Pārējie savienojumi ir parādīti shēmā.
Programmēšanas skaidrojums:
Lai uzrakstītu šo Arduino čūskas spēles kodu, vispirms mēs iekļaujam galvenes failus un definējam LCD tapas. Pēc tam definējiet dažus tapas virziena pogām un datu tapu maiņu reģistriem.
# iekļaut
Tad mēs inicializējam visas lietas, kuras esam izmantojuši programmā. Jo iestatīšanas funkcijas mēs sāktu LCD, dodot virzienu ieejas izejas tapas, pull-up biti un parādot sveiciena ziņu LCD.
void setup () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (start, INPUT);……………
Un tad mēs sākam spēli ciklā .
void show_snake (int temp) {par (int n = 0; n
Šeit mēs izmantojām tālāk norādīto funkciju, lai nolasītu ievades virzienu no spiedpogas.
void read_button () {if (! digitalRead (pa kreisi)) {move_r = 0; pārvietoties_c! = - 1? pārvietot_c = -1: pārvietot_c = 1; kamēr (! digitalRead (pa kreisi));……………
Zemāk pārbaudiet pilnu čūsku spēles C kodu.