Käärmepeli on ollut erittäin suosittu matkapuhelinten alusta lähtien. Alun perin se tuli mustavalkoisissa matkapuhelimissa, ja siitä tuli pian hyvin kuuluisa. Sitten matkapuhelinten kehittyessä tämä peli on myös muuttunut paljon, ja nyt on saatavilla monia graafisia ja värikkäitä versioita pelistä.
Käärmepelistä on tullut myös erittäin suosittu DIY-projekti elektroniikan harrastajille ja opiskelijoille. Joten tänään aiomme esitellä Arduino Snake -peliä kaikilla perustoiminnoilla pitäen sen samalla yksinkertaisena.
Käytetyt komponentit:
- Arduino UNO
- 8x8 LED Dot Matrix -näyttö
- Vaihtorekisteri 74HC595
- 16x2 LCD
- POT 1K
- Painikkeet
- Johtojen liittäminen
- Leipälauta
- Virtalähde
Työselitys:
Tämä on vähän monimutkainen peli rakentaa. Mutta tässä opetusohjelmassa olemme tehneet siitä yksinkertaisen sinulle. Tämän projektin toteuttamiseksi olemme käyttäneet 8x8 punaista piste-matriisinäyttöä käärmeen ja sen ruokapisteen näyttämiseen, LCD-pistettä pisteiden tai pisteiden näyttämiseen, 5 painiketta ohjeiden antamiseen ja pelin aloittamiseen ja lopuksi Arduino UNO -ohjelmaa ohjaamiseen koko prosessin ajan. 8x8 LED Dot Matrix -näytön pin-kaavio alkuperäisellä kuvallaan on annettu alla:
Kun kytket virran virtapiiriin, näytämme ensin tervetuloviestin ja sitten LCD-näytöllä vihjeen “Paina Start To Play”. Tämän jälkeen LCD näyttää pistemäärän nollana ja pistematriisinäytössä kaksi pistettä käärmenä ja yksi piste ruokana.
Nyt käyttäjän on painettava keskipainiketta aloittaaksesi pelin ja käärme alkaa liikkua ylöspäin oletuksena. Sitten käyttäjän on annettava käärmeensuunta painamalla keskipainikkeen ympärillä olevia suuntanäppäimiä. Tässä olemme käyttäneet viittä näppäintä (painonappia), nimittäin Vasen, Oikea, Ylös, Alas ja Aloita. Aina kun käärme saavuttaa ruokapisteen tai syö ruokaa, pisteet kasvavat joka kerta 5 pisteellä ja käärmeen pituus kasvaa yhdellä pisteellä (LED) joka kerta, myös käärmeen nopeus kasvaa nopeammin kuin ennen. Ja aina, kun käärme iski mihin tahansa seinään tai ulottui LED-matriisin päähän, se lopetti pelin ("Game Over"). Sitten käyttäjän on aloitettava peli uudelleen painamalla käynnistysnäppäintä.
Piirin selitys:
Tämän käärmepeliprojektin piiri on vähän monimutkainen. Tässä olemme yhdistäneet pistematriisinäytön vaihtorekisterillä 74HC595. Tässä käytetään kahta siirtorekisteriä, toista sarakkeiden ajamiseksi ja toista rivien ajamiseksi. Sekä rekisterien, sarakkeen siirtorekisterin että rivinvaihtorekisterin (SH, ST) ohjaustapit ,ovat suoraan kytketty Arduinon tapinumeroon 14 ja 16. Ja sarakkeensiirtorekisterin DS-tappi ja rivinsiirtorekisteri on kytketty suoraan Arduinon tapiin numeroihin 15 ja 17. Pelin käynnistyspainike on kytketty nastaan numero 3, vasen suuntapainike nastassa 4, oikea suuntapainike nastassa 6, ylöspäin suuntautuva painike nastassa 2 ja alaspäin suuntautuva painike nastassa 5. LCD-näyttö on kytketty myös laitteeseemme näytä pisteet. RS- ja EN-nastat on kytketty suoraan napoihin 13 ja 12. RW-nasta on suoraan maadoitettu. Ja datanastat d4-d7 on kytketty Arduinon napoihin 11, 10, 9, 8. Loput liitännät on esitetty piirikaaviossa.
Ohjelmoinnin selitys:
Tämän Arduino-käärmepelikoodin kirjoittamiseksi sisällytämme ensin otsikkotiedostot ja määrittelemme nastat LCD: lle. Ja sitten määritä joitain nastoja suuntapainikkeille ja datanappia siirtorekistereille.
#sisältää
Sitten alustamme kaikki ohjelmassa käytetyt asiat. Että asennus toiminto me alustaa LCD, jolloin suunta on syötettävä tuotos nastat, pull-up bittiä ja näytetään tervetuloviestin LCD.
void setup () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (alku, INPUT);……………
Ja sitten aloitamme pelin silmukka- toiminnossa.
void show_snake (int temp) {varten (int n = 0; n
Tässä olemme käyttäneet alla olevaa toimintoa lukeaksesi syöttösuunnan painikkeesta.
void read_button () {if (! digitalRead (vasen)) {move_r = 0; liikkua_c! = - 1? siirto_c = -1: siirto_c = 1; while (! digitalRead (vasen));……………
Tarkista alla oleva käärmepelin koko C-koodi.