Sadržaj:

Igra Arduino bojnog broda: 3 koraka
Igra Arduino bojnog broda: 3 koraka

Video: Igra Arduino bojnog broda: 3 koraka

Video: Igra Arduino bojnog broda: 3 koraka
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, Srpanj
Anonim
Igra Arduino bojni brod
Igra Arduino bojni brod

Sjećam se da sam kao klinac igrao verziju Battleship Game -a na papiru i olovci. Zapravo, to postoji otprilike od Prvog svjetskog rata. I ja sam početkom 1960 -ih imao "elektroničku" varijantu pod nazivom "Sonar Sub Hunt" koja je imala svjetla i zvukove i skrivene mine. Prema današnjim standardima video igara Battleship je prilično dosadan, ali mislio sam da ću ga ipak napraviti samo da vidim što unuci misle o tome. Uostalom, ponekad retro može biti cool.

Postoje dijelovi ovog projekta koji bi bili korisni drugdje čak i ako niste zainteresirani za izradu igre Battleship. Ima jednostavno 4-bitno 1602 LCD sučelje koje uključuje rutinu za postavljanje određene lokacije znakova. Tu je i sučelje za dekodiranje matrice sklopke 4x4. Ova dva sučelja dostupna su kao zasebne datoteke za uključivanje pa se lako mogu transportirati. Igra također ima različite rutine zvučnih efekata i jednostavno kolo s jednim tranzistorskim audio pojačalom.

Korak 1: Hardver

Hardver
Hardver
Hardver
Hardver

Shema koja je ovdje prikazana odnosi se na jednog igrača pa bi trebalo napraviti dvije jedinice. Jedinice komuniciraju pomoću trožilnog sučelja koje uključuje UART TX i RX linije i žicu za uzemljenje. Odlučio sam koristiti standardni priključak za stereo slušalice od 1/8 inča i standardni kabel s muškim utikačima na oba kraja. RX iz jedne kutije ide u TX druge kutije i obrnuto. To možete učiniti tako da zamijenite žice zalemljene na utičnicu za slušalice unutar kutije ili ih zamijenite na pločici dok je sastavljate.

Klasična igra bila je postavljena kao matrica, ali sam odlučio napraviti jednostavnu implementaciju koristeći 1602 LCD za zaslon. Prvi redak prikazuje igračeve brodove lokacije i udarce protivnika. Drugi redak prikazuje igračeve udarce i sve pogotke na protivničkim brodovima. To pruža 16 mogućih lokacija za brodove. Broj brodova je postavljen u softveru i ja sam proizvoljno odabrao 5.

16 lokacija brodova lijepo se uklapa u zahtjeve za prebacivanjem jer dopušta matricu 4x4. Dostupni su matrični prekidači s matricom 4x4, ali odlučio sam koristiti pojedinačne prekidače u jednom retku kako bi odgovarao linearnom prikazu. Ja sam ipak spojio prekidače kao matricu 4x4 tako da je potrebno samo osam Arduino pinova. Za ispravne spojeve pogledajte dijagram ožičenja sklopke i shemu.

LCD zaslon je ožičen za 4-bitno sučelje. Dodao sam i vanjsku LED diodu na pin D13 kako bi naznačio koji igrač treba snimati. U početku igrači odlučuju tko će prvi snimiti, a zatim softver automatski kontrolira naprijed -nazad igre.

Htio sam dodati jednostavne zvučne efekte za snimak, eksplozije, igru spremnu i pobjednika/gubitnika. Pokušao sam koristiti jednostavan piezo zujalicu, ali umjesto toga dobio sam mali zvučnik. Struja koju zahtijeva zvučnik premašuje onu koju Arduino može podnijeti pa je dodano jednostavno tranzistorsko pojačalo. Zvuk još uvijek nije sjajan, ali je bolji nego uz zujalicu. Moj zvučnik je 4 ohma, ali ako imate 8-ohmski tada promijenite otpornik u shemi sa 39 ohma na 33 ohma. Ako koristite piezo zvučni signal, trebali biste ga moći voziti izravno s Arduino pina s drugom stranom zujalice spojenom na masu.

Uključen je i vanjski prekidač za resetiranje koji je ožičen izravno između mase i "reset" pina na Arduinu. To pruža sredstva za ponovno pokretanje igre.

Korak 2: Softver

Softver ima datoteku include za moje LCD sučelje, a također sam stvorio datoteku include za skeniranje matrice preklopnika 4x4. Inicijalizacija od igrača traži da odabere mjesta za svoje brodove, a zatim prelazi u stanje "Spremno". Kad su oba igrača spremna, jedan od njih započinje igru pritiskom na prekidač.

Mjesto hica se prenosi putem UART -a na drugog igrača, a odgovarajući rezultat se prenosi na igrača koji je opalio hitac. Kao što je ranije spomenuto, nakon što je snimljen prvi kadar, softver kontrolira tko će snimiti sljedeći snimak. Prije nego što se snimak prenese, provjerava se u odnosu na lokacije prethodnih snimaka. Ako je to mjesto već korišteno, snimak se neće prenijeti. LED dioda “My_Shot” određuje čiji je red. Tu je i zvuk hica generiran za valjani odabir i zvuk eksplozije ako je brod pogođen. Zvučni efekti izvedeni su iz primjera pronađenih na internetu s izmjenama koje odgovaraju igri.

Nakon što su svi protivnički brodovi pogođeni, poruka se prikazuje na svakom LCD -u - jedan kao pobjednik, a jedan kao gubitnik. U poruci se također navodi da se igra može ponovno pokrenuti pritiskom na gumb za poništavanje. Postoje i zasebni zvučni efekti za pobjednika i gubitnika.

Korak 3: Snimke zaslona

Snimke zaslona
Snimke zaslona
Snimke zaslona
Snimke zaslona
Snimke zaslona
Snimke zaslona
Snimke zaslona
Snimke zaslona

Evo nekoliko snimaka zaslona iz igre. To je to za ovaj post. Pogledajte moje ostale Instructables i moju web stranicu na: www.boomerrules.wordpress.com

Preporučeni: