Snake Game har vært veldig populært siden begynnelsen av mobiltelefoner. Opprinnelig kom den i svart-hvite mobiltelefoner, og ble snart veldig kjent. Så med fremgangen til mobiltelefonene, har dette spillet også endret seg mye, og nå er mange grafiske og fargerike versjoner av dette spillet tilgjengelig.
Slangespill har også blitt et veldig populært DIY-prosjekt for elektronikkhobbyister og studenter. Så i dag skal vi demonstrere, Arduino Snake Game, med alle sine grunnleggende funksjoner, mens vi holder det enkelt samtidig.
Komponenter som brukes:
- Arduino UNO
- 8x8 LED Dot Matrix Display
- Skiftregister 74HC595
- 16x2 LCD
- POTTE 1K
- Trykke knapper
- Koble ledninger
- Brødtavle
- Strømforsyning
Arbeidsforklaring:
Dette er lite komplisert spill å bygge. Men i denne veiledningen har vi gjort det enkelt for deg. For å lage dette prosjektet har vi brukt en 8x8 rød fargeprikkematrisevisning for å vise slangen og dens matpunkt, en LCD for å vise poeng eller poengsum, 5 trykknapper for å gi veibeskrivelse og starte spillet og til slutt en Arduino UNO for å kontrollere hele prosessen. Pin diagram av 8x8 LED Dot Matrix Display med sitt originale bilde er gitt nedenfor:
Når vi slår på kretsen, viser vi først en velkomstmelding og deretter et “Trykk Start for å spille” -hint på LCD-skjermen. Etter dette viser LCD poengsummen som null, og matrisevisning viser to prikker som slange og en enkelt prikk som mat.
Nå må brukeren trykke på den midterste knappen for å starte spillet, og slangen begynner å bevege seg oppover som standard. Da må brukeren gi retning for slangen ved å trykke på 'Retningstastene' rundt den midterste knappen. Her har vi brukt fem taster (trykknapper) nemlig Venstre-tast, Høyre-tast, Opp-tast, Ned-tast og Start-tast. Hver gang slangen når til matpunktet eller spiser maten, øker poengsummen med 5 poeng hver gang, og slangelengden økes med en prikk (LED) hver gang, også blir slangehastigheten raskere enn før. Og hver gang slange slo mot en vegg eller nådde slutten av LED-matrisen, ville den avslutte spillet ("Game Over"). Da må brukeren starte spillet igjen ved å trykke på starttasten.
Kretsforklaring:
Kretsløpet for dette Snake Game Project er lite komplekst. Her har vi koblet punktmatrisevisning ved å bruke Shift Register 74HC595. Her brukes to skiftregistre, ett for å kjøre kolonnene og det andre for å kjøre radene. Kontrollpinner til både registerene, kolonneskiftregisteret og radskiftregisteret (SH, ST),er direkte koblet til Arduinos pin-nummer henholdsvis 14 og 16. Og DS-pin av kolonneskiftregister og radskiftregister er direkte koblet til pin nummer 15 og 17 i Arduino. Start-knappen for å starte spillet er koblet til pin nummer 3, venstre retningsknapp på pin 4, høyre retning knapp på pin 6, opp retningsknapp på pin 2 og ned retningsknapp på pin 5. En LCD er også koblet til i maskinvaren vår til Vis poengsum. RS- og EN-pinner er direkte koblet til pinne 13 og 12. RW-pinnen er direkte jordet. Og datapinnene d4-d7 er koblet til pinne 11, 10, 9, 8 i Arduino. Resten av tilkoblingen er vist i kretsskjemaet.
Programmeringsforklaring:
For å skrive denne Arduino slangespillkoden inkluderer vi først headerfiler og definerer pins for LCD. Og definer deretter noen pinner for retningsknapper og datapinne for skiftregistre.
#inkludere
Deretter initialiserer vi alle tingene vi har brukt i programmet. I oppsettfunksjonen initialiserer vi LCD, gir retning til inngangsutgangspinner, trekker opp bitene og viser velkomstmelding på LCD.
ugyldig oppsett () {lcd.begin (16,2); pinMode (ds_col, OUTPUT); pinMode (sh_col, OUTPUT); pinMode (st_col, OUTPUT); pinMode (ds_row, OUTPUT); pinMode (start, INPUT);……………
Og så starter vi spillet i loop- funksjon.
ugyldig show_snake (int temp) {for (int n = 0; n
Her har vi brukt funksjonen nedenfor for å lese inngangsretningen fra trykknappen.
ugyldig read_button () {if (! digitalRead (venstre)) {move_r = 0; move_c! = - 1? move_c = -1: move_c = 1; mens (! digitalRead (venstre));……………
Sjekk hele C-koden for slangespill nedenfor.