Kazalo:
Video: Igra Arduino Battleship: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Spomnim se, da sem kot otrok igral različico Battleship Game na papirju in svinčniku. Pravzaprav obstaja že od prve svetovne vojne. V začetku šestdesetih let sem imel tudi "elektronsko" različico, imenovano "Sonar Sub Hunt", ki je imela luči in zvoke ter skrite mine. Po današnjih standardih video iger je Battleship precej dolgočasna, vendar sem mislil, da bi jo vseeno naredil samo zato, da vidim, kaj si vnuki mislijo o tem. Konec koncev je včasih retro lahko kul.
Obstajajo delci tega projekta, ki bi bili uporabni drugje, tudi če vas ne zanima izdelava igre Battleship. Ima preprost 4-bitni 1602 LCD vmesnik, ki vključuje rutino za nastavitev določene lokacije znakov. Obstaja tudi vmesnik za dekodiranje stikalne matrice 4x4. Ta dva vmesnika sta na voljo kot ločeni datoteki za vključitev, zato ju je enostavno prenašati. Igra ima tudi različne rutine zvočnih učinkov in preprosto vezje zvočnega ojačevalnika z enim tranzistorjem.
1. korak: Strojna oprema
Shema, predstavljena tukaj, je za enega igralca, zato bi morali izdelati dve enoti. Enote komunicirajo prek 3-žičnega vmesnika, ki vključuje linije UART TX in RX ter ozemljitveno žico. Odločil sem se, da bom uporabil standardni 1/8 -palčni stereo priključek za slušalke in standardni kabel z moškimi vtiči na obeh koncih. RX iz ene škatle gre v TX druge škatle in obratno. To lahko storite tako, da zamenjate žice, spajane v vtičnico za slušalke v škatli, ali pa jih zamenjate na vezju, ko ga gradite.
Klasična igra je bila postavljena kot matrika, vendar sem se odločil za preprosto izvedbo s pomočjo zaslona 1602 za zaslon. Prva vrstica prikazuje lokacije ladij igralca in strele nasprotnika. Druga vrstica prikazuje igralčeve strele in morebitne zadetke na nasprotnikovih ladjah. To zagotavlja 16 možnih lokacij za ladje. Število ladij je nastavljeno v programski opremi in sem poljubno izbral 5.
16 lokacij ladij se lepo prilega zahtevam stikala, saj omogoča matriko 4x4. Na voljo so matrične stikalne ploščice 4x4, vendar sem se odločil uporabiti posamezna stikala v eni vrstici, da se ujemajo z linearnim prikazom. Vseeno sem stikala povezal kot matriko 4x4, tako da je potrebnih le osem zatičev Arduino. Za pravilne povezave glejte shemo ožičenja stikala in shemo.
LCD zaslon je priključen na 4-bitni vmesnik. Na pin D13 sem dodal tudi zunanjo LED, ki označuje, kateri igralec naj strelja. Igralci se najprej odločijo, kdo bo prvi strel, nato pa programska oprema samodejno nadzira naprej in nazaj v igri.
Želel sem dodati preproste zvočne učinke za posnetek, eksplozije, pripravljeno igro in zmagovalca/poraženca. Poskušal sem uporabiti preprost piezo brenčalec, vendar sem namesto tega dobil majhen zvočnik. Tok, ki ga zahteva zvočnik, presega tisto, kar zmore Arduino, zato je bil dodan preprost tranzistorski ojačevalnik. Zvok še vedno ni odličen, vendar je boljši kot pri zvočniku. Moj zvočnik je 4 ohmov, če pa imate 8-ohmskega, spremenite shematski upor s 39 ohmov na 33 ohmov. Če uporabljate piezo -zvočni signal, bi ga morali zagnati neposredno iz zatiča Arduino z drugo stranjo zvočnika, priključeno na tla.
Priloženo je tudi zunanje stikalo za ponastavitev, ki je ožičeno neposredno med maso in zatičem za ponastavitev na Arduinu. To zagotavlja sredstva za ponovni zagon igre.
2. korak: Programska oprema
Programska oprema ima datoteko include za moj LCD vmesnik, ustvaril pa sem tudi datoteko include za skeniranje matrike stikala 4x4. Inicializacija pozove igralca, da izbere lokacije za svoje ladje, nato pa preide v stanje "pripravljen". Ko sta oba igralca pripravljena, eden od njiju začne igro s pritiskom na stikalo.
Mesto strela se prek UART posreduje drugemu igralcu, ustrezen rezultat pa nazaj igralcu, ki je sprožil strel. Kot smo že omenili, programska oprema ob prvem posnetku nadzira, kdo bo naredil naslednji posnetek. Pred prenosom posnetka se preveri glede na lokacije prejšnjih posnetkov. Če je bila ta lokacija že uporabljena, posnetek ne bo prenesen. LED »My_Shot« določa, kdo je na vrsti. Za veljavno izbiro se ustvari tudi zvok strela in zvok eksplozije, če je zadeta ladja. Zvočni učinki izhajajo iz primerov na spletu s spremembami, ki ustrezajo igri.
Ko so zadete vse nasprotnikove ladje, se na vsakem LCD -prikazovalniku prikaže sporočilo - eno kot zmagovalca in eno kot poraženega. Sporočilo določa tudi, da se lahko igro znova zažene s pritiskom na gumb za ponastavitev. Za zmagovalca in poraženca obstajajo tudi ločeni zvočni učinki.
3. korak: Posnetki zaslona
Tukaj je nekaj posnetkov zaslona iz igre. To je to za to objavo. Oglejte si moje druge Instructables in tudi mojo spletno stran na: www.boomerrules.wordpress.com
Priporočena:
Igra Arduino Sorta Sudoku: 3 koraki (s slikami)
Igra Arduino Sorta Sudoku: Veliko ljudi se rad igra Sudoku in vnuki radi ugibajo, zato sem se odločil za prenosno igro "Sorta Sudoku". V moji različici je igra 4x4, vendar je navedena samo ena številka. Ideja je uganiti preostale številke v
POiNG! - Arduino arkadna igra!: 3 koraki
POiNG! - Arduino Arcade Game !: Zgradili bomo arkadno igro v slogu PONG, ki uporablja dele iz " Najbolj popolnega začetnega kompleta UNO R3 Project " komplet iz Elegoo Inc. Popolno razkritje - Večino delov, ki so bili priloženi temu navodilu, je avtorju priskrbel Elegoo
Arduino LCD žoga igra: 3 koraki
Arduino LCD Ball Game: Pozdravljeni, to je Arduino LCD Ball igra, ki sem jo ustvaril med karanteno, imam majhen videoposnetek o tem, kako ta igra deluje, in ta video najdete na (https://youtu.be/ccc4AkOJKhM)
Igra Rocker Arduino: 4 koraki
Arduino Rocker Game: To je igra Arduino, obstaja 11 LED luči, LED luči bodo svetile v vzorcu. Ko zasveti srednja LED, pritisnite gumb. Imate tri življenja, vsakič, ko pritisnete gumb, ko lučka ni na sredini, izgubite življenje. Po
Igra Arduino Buzz Wire: 4 koraki
Arduino Buzz Wire Game: To je navodilo za izdelavo žične igre Buzz z uporabo Arduina. Ta projekt Arduino je spremenjen s https://www.instructables.com/id/Buzz-Wire-Scavenger-Hunt-Clue/. Na LCD -prikazovalnik dodam tablo, ki prikazuje čas, ki ga porabite za dokončanje