Talaan ng mga Nilalaman:

Laro ng Arduino Battleship: 3 Mga Hakbang
Laro ng Arduino Battleship: 3 Mga Hakbang

Video: Laro ng Arduino Battleship: 3 Mga Hakbang

Video: Laro ng Arduino Battleship: 3 Mga Hakbang
Video: I Made a LEGO Robot, to Cheat on Mobile Games... 2024, Nobyembre
Anonim
Arduino Battleship Game
Arduino Battleship Game

Naalala ko ang paglalaro ng isang bersyon ng papel at lapis ng Battleship Game bilang isang bata. Sa katunayan, ito ay nasa paligid mula noong tungkol sa World War 1. Nagkaroon din ako ng isang "elektronikong" variant noong unang bahagi ng 1960 na tinawag na "Sonar Sub Hunt" na may mga ilaw at tunog at mga nakatagong mga mina. Sa mga pamantayan ng video game ngayon ang Battleship ay medyo nakakainip ngunit naisip kong gagawa pa rin ako upang makita lamang kung ano ang naisip ng mga apo tungkol dito. Pagkatapos ng lahat, kung minsan ang retro ay maaaring maging cool.

Mayroong mga piraso at piraso ng proyektong ito na magiging kapaki-pakinabang sa ibang lugar kahit na hindi ka interesado na gawin ang laro ng Battleship. Mayroon itong isang simpleng 4-bit 1602 LCD interface na may kasamang isang gawain para sa pagtatakda ng isang tukoy na lokasyon ng character. Mayroon ding isang interface para sa pag-decode ng isang 4x4 switch matrix. Ang dalawang mga interface na ito ay magagamit bilang magkahiwalay na isama ang mga file upang madali silang madala. Ang laro ay mayroon ding iba't ibang mga regular na epekto ng tunog at isang simpleng isang-transistor audio amplifier circuit.

Hakbang 1: Hardware

Hardware
Hardware
Hardware
Hardware

Ang eskematiko na ipinakita dito ay para sa isang solong manlalaro kaya't kailangang gawin ang dalawang mga yunit. Ang mga yunit ay nakikipag-usap gamit ang isang 3-wire interface na may kasamang mga linya ng UART TX at RX at isang ground wire. Pinili kong gumamit ng isang standard na 1/8 pulgadang stereo headphone jack at isang karaniwang cable na may mga male plug sa magkabilang dulo. Ang RX mula sa isang kahon ay papunta sa TX ng iba pang kahon at kabaliktaran. Maaari mong gawin iyon sa pamamagitan ng pagpapalit ng mga wire na solder sa headphone jack sa loob ng kahon o pagpapalit nito sa circuit board kapag itinayo mo ito.

Ang klasikong laro ay inilatag bilang isang matrix ngunit nagpasya akong gumawa ng isang simpleng pagpapatupad gamit ang isang 1602 LCD para sa display. Ipinapakita ng unang linya ang mga lokasyon ng barko ng manlalaro at mga pag-shot ng kalaban. Ipinapakita ng pangalawang linya ang mga pag-shot ng manlalaro at anumang mga hit sa mga barko ng kalaban. Nagbibigay iyon ng 16 posibleng lokasyon para sa mga barko. Ang bilang ng mga barko ay nakatakda sa software at arbitraryong pinili ko ang 5.

Ang 16 na lokasyon ng barko ay umaangkop nang maayos sa mga kinakailangan sa switch dahil pinapayagan nito ang isang 4x4 matrix. May magagamit na 4x4 matrix switch pad ngunit pinili kong gumamit ng mga indibidwal na switch sa isang solong linya upang tumugma sa linear display. Gayunpaman, ginawa ko, ang mga switch bilang isang 4x4 matrix upang walong Arduino pins lamang ang kailangan. Sumangguni sa diagram ng switch ng mga kable at ang eskematiko para sa wastong mga koneksyon.

Ang LCD display ay wired para sa isang 4-bit na interface. Nagdagdag din ako ng isang panlabas na LED sa pin D13 upang ipahiwatig kung aling manlalaro ang dapat na kunan ng larawan. Sa una, magpasya ang mga manlalaro kung sino ang kukuha ng unang shot at pagkatapos ay awtomatikong kinokontrol ng software ang pabalik-balik ng laro.

Nais kong magdagdag ng simpleng mga sound effects para sa pagbaril, mga pagsabog, handa na ang laro, at ang nagwagi / natalo. Sinubukan kong gumamit ng isang simpleng piezo buzzer ngunit napunta sa isang maliit na speaker sa halip. Ang kasalukuyang kinakailangan ng nagsasalita ay lumampas sa kung ano ang maaaring hawakan ng Arduino kaya idinagdag ang isang simpleng amplifier ng transistor. Ang tunog ay hindi pa rin maganda ngunit mas mahusay ito kaysa sa buzzer. Ang aking speaker ay 4 ohms ngunit kung mayroon kang isang 8-ohm isa pagkatapos ay baguhin ang risistor sa eskematiko mula 39 ohms hanggang 33 ohms. Kung gumagamit ka ng isang piezo buzzer dapat mong ma-drive ito nang direkta mula sa Arduino pin na may kabilang panig ng buzzer na nakakonekta sa lupa.

Ang isang panlabas na switch ng pag-reset ay kasama rin at direktang wired sa pagitan ng lupa at ang "reset" na pin sa Arduino. Nagbibigay iyon ng mga paraan para sa pag-restart ng laro.

Hakbang 2: Software

Ang software ay may kasamang file para sa aking interface ng LCD at lumikha din ako ng isang isama na file para sa pag-scan ng 4x4 switch matrix. Ang pagpapasimuno ay mag-uudyok sa manlalaro na piliin ang mga lokasyon para sa kanyang mga barko at pagkatapos ay pumunta sa isang "Handa" na estado. Kapag ang parehong mga manlalaro ay handa na ang isa sa kanila ay nagsisimula sa laro sa pamamagitan ng pagpindot sa isang switch.

Ang lokasyon ng pagbaril ay ipinadala sa pamamagitan ng UART sa iba pang manlalaro at ang naaangkop na resulta ay naihatid pabalik sa manlalaro na nagpaputok ng shot. Tulad ng nabanggit kanina, kapag nakuha ang unang kuha, kinokontrol ng software kung sino ang kumukuha ng susunod na shot. Bago mailipat ang isang pagbaril, nasuri ito laban sa mga lokasyon ng mga nakaraang pag-shot. Kung ang lokasyon na iyon ay nagamit na, kung gayon ang shot ay hindi maililipat. Tinutukoy ng "My_Shot" LED kung kaninong turn ito. Mayroon ding tunog ng pagbaril na nabuo para sa isang wastong pagpipilian at isang tunog ng pagsabog kung ang isang barko ay na-hit. Ang mga sound effects ay nagmula sa mga halimbawang nahanap sa online na may mga pagbabago upang umangkop sa laro.

Kapag ang mga barko ng kalaban ay na-hit lahat, isang mensahe ang ipinapakita sa bawat LCD - isa bilang nagwagi, at isa bilang natalo. Tinutukoy din ng mensahe na ang laro ay maaaring i-restart sa pamamagitan ng pagpindot sa pindutan ng pag-reset. Mayroon ding magkakahiwalay na mga sound effects para sa nagwagi at natalo.

Hakbang 3: Mga Screen Shot

Mga Screen Shot
Mga Screen Shot
Mga Screen Shot
Mga Screen Shot
Mga Screen Shot
Mga Screen Shot
Mga Screen Shot
Mga Screen Shot

Narito ang ilang mga screen shot mula sa laro. Iyon lang para sa post na ito. Suriin ang aking iba pang mga Instructable at pati na rin ang aking website sa: www.boomerrules.wordpress.com

Inirerekumendang: