Sadržaj:

Arduino Battleship Igra: 3 koraka
Arduino Battleship Igra: 3 koraka

Video: Arduino Battleship Igra: 3 koraka

Video: Arduino Battleship Igra: 3 koraka
Video: 3 Проект на arduino. Игра "Гоночки" 2024, Novembar
Anonim
Arduino Battleship igra
Arduino Battleship igra

Sjećam se da sam kao klinac igrao verziju Battleship Game -a na papiru i olovci. U stvari, to postoji otprilike od Prvog svjetskog rata. I ja sam početkom 1960 -ih imao "elektronsku" 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 prekidača 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. Uređaji 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 priključak za slušalice unutar kutije ili ih zamijenite na ploči dok proizvodite.

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

16 lokacija brodova lijepo se uklapa u zahtjeve prekidača jer omogućava matricu 4x4. Dostupne su matrice za prebacivanje matrice 4x4, ali sam odlučio koristiti pojedinačne prekidače u jednoj liniji kako bi odgovarao linearnom prikazu. Ipak sam spojio prekidače kao matricu 4x4 tako da je potrebno samo osam Arduino pinova. Za pravilne veze pogledajte dijagram ožičenja prekidača i shemu.

LCD ekran je ožičen za 4-bitno sučelje. Dodao sam i vanjsku LED diodu na iglici D13 koja označava koji igrač treba snimati. U početku igrači odlučuju tko će prvi snimiti, a zatim softver automatski kontrolira igru naprijed -nazad u igru.

Htio sam dodati jednostavne zvučne efekte za snimak, eksplozije, igru spremnu i pobjednika/gubitnika. Pokušao sam koristiti jednostavan piezo zujalicu, ali sam umjesto toga dobio mali zvučnik. Struja koju zahtijeva zvučnik premašuje onu koju Arduino može podnijeti pa je dodano jednostavno tranzistorsko pojačalo. Zvuk i dalje nije sjajan, ali je bolji nego sa zujalicom. Moj zvučnik je 4 ohma, ali ako imate 8-omski onda promijenite otpornik u shemi sa 39 ohma na 33 ohma. Ako koristite piezo zvučni signal, trebali biste ga moći pokrenuti 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 pina za "reset" na Arduinu. To pruža sredstva za ponovno pokretanje igre.

Korak 2: Softver

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

Lokacija 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 se napravi prvi snimak, softver kontrolira tko će snimiti sljedeći snimak. Prije nego što se snimak prenese, provjerava se u odnosu na lokacije prethodnih snimaka. Ako je ta lokacija već korištena, snimak se neće prenijeti. LED dioda “My_Shot” određuje čiji je red. Tu je i zvuk pucnja 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, na svakom LCD -u se prikazuje poruka - jedan kao pobjednik, a jedan kao gubitnik. Poruka također navodi da se igra može ponovo pokrenuti pritiskom na tipku za poništavanje. Postoje i zasebni zvučni efekti za pobjednika i gubitnika.

Korak 3: Snimci ekrana

Snimke ekrana
Snimke ekrana
Snimke ekrana
Snimke ekrana
Snimke ekrana
Snimke ekrana
Snimke ekrana
Snimke ekrana

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

Preporučuje se: