Sisukord:

Arduino lahingulaeva mäng: 3 sammu
Arduino lahingulaeva mäng: 3 sammu

Video: Arduino lahingulaeva mäng: 3 sammu

Video: Arduino lahingulaeva mäng: 3 sammu
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, Juuli
Anonim
Arduino lahingulaeva mäng
Arduino lahingulaeva mäng

Mäletan, et mängisin lapsena lahingulaevamängu paber- ja pliiatsiversiooni. Tegelikult on see olnud umbes 1. maailmasõja ajast. Mul oli ka 1960ndate alguses „elektrooniline” variant nimega „Sonar Sub Hunt”, millel olid tuled ja helid ning varjatud miinid. Tänapäeva videomängude standardite järgi on lahingulaev päris igav, kuid mõtlesin, et teen selle ikkagi, et näha, mida lapselapsed sellest arvavad. Lõppude lõpuks võib mõnikord retro olla lahe.

Sellest projektist on killukesi, mis oleksid mujal kasulikud, isegi kui te pole huvitatud lahingulaeva mängust. Sellel on lihtne 4-bitine 1602 LCD-liides, mis sisaldab rutiini konkreetse märgi asukoha määramiseks. Samuti on olemas liides 4x4 lülitusmaatriksi dekodeerimiseks. Need kaks liidest on saadaval eraldi kaasamisfailidena, nii et neid on lihtne teisaldada. Mängul on ka erinevad heliefektide rutiinid ja lihtne ühe transistoriga helivõimendusahel.

Samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara

Siin esitatud skeem on mõeldud ühele mängijale, nii et oleks vaja teha kaks ühikut. Seadmed suhtlevad 3-juhtmelise liidese abil, mis sisaldab UART TX- ja RX-liine ning maandusjuhet. Valisin tavalise 1/8 tollise stereokõrvaklappide pesa ja standardkaabli, mille mõlemas otsas olid isased pistikud. RX ühest kastist läheb teise kasti TX-sse ja vastupidi. Seda saate teha, vahetades karbi sees olevate kõrvaklappide pesasse joodetud juhtmed või vahetades need trükkplaadil selle ehitamisel.

Klassikaline mäng esitati maatriksina, kuid otsustasin teha lihtsa teostuse, kasutades ekraani jaoks 1602 LCD -ekraani. Esimene rida näitab mängija laeva asukohti ja vastase lööke. Teine rida näitab mängija lööke ja kõiki tabamusi vastase laevadel. See pakub laevadele 16 võimalikku asukohta. Laevade arv on tarkvaras paika pandud ja valisin meelevaldselt 5.

16 laeva asukohta sobivad kenasti lülitusnõuetega, kuna see võimaldab 4x4 maatriksit. Saadaval on 4x4 maatrikslüliti padjad, kuid valisin lineaarse kuva sobitamiseks üksikute lülitite kasutamise ühes reas. Siiski ühendasin lülitid 4x4 maatriksina, nii et vaja oleks ainult kaheksat Arduino tihvti. Õigete ühenduste saamiseks vaadake lülitite ühendusskeemi ja skeemi.

LCD-ekraan on ühendatud 4-bitise liidesega. Lisasin ka tihvti D13 välise LED -i, et näidata, milline mängija peaks pildistama. Esialgu otsustavad mängijad, kes teeb esimese löögi ja seejärel kontrollib tarkvara automaatselt mängu edasi -tagasi.

Tahtsin lisada võttele lihtsaid heliefekte, plahvatusi, mängu valmisolekut ja võitjat/kaotajat. Proovisin kasutada lihtsat piesosummerit, kuid lõpuks sain selle asemel väikese kõlari. Kõlari nõutav vool ületab Arduino suutlikkust, nii et lisati lihtne transistorvõimendi. Heli pole endiselt suurepärane, kuid see on parem kui sumin. Minu kõlar on 4 oomi, kuid kui teil on 8 oomi, siis vahetage skeemil olev takisti 39 oomi asemel 33 oomini. Kui kasutate piesosummerit, peaksite saama seda juhtida otse Arduino tihvtist, samal ajal kui summeri teine pool on maapinnaga ühendatud.

Komplekti kuulub ka väline lähtestuslüliti, mis on ühendatud otse maanduse ja Arduino nullimispoldi vahele. See annab võimaluse mängu taaskäivitamiseks.

Samm 2: Tarkvara

Tarkvaral on minu LCD -liidese kaasamisfail ja lõin ka kaasamisfaili 4x4 lülitusmaatriksi skannimiseks. Initsialiseerimine palub mängijal valida oma laevade asukohad ja läheb seejärel olekusse „Valmis”. Kui mõlemad mängijad on valmis, alustab üks neist mängu, vajutades lülitit.

Löögi asukoht edastatakse UART -i kaudu teisele mängijale ja sobiv tulemus edastatakse tagasi lasku teinud mängijale. Nagu varem mainitud, kontrollib tarkvara pärast esimese võtte tegemist, kes teeb järgmise võtte. Enne võtte edastamist kontrollitakse seda eelmiste võtete asukohtade suhtes. Kui seda asukohta on juba kasutatud, siis võtet ei edastata. LED “My_Shot” määrab, kelle kord on. Samuti esitatakse kehtiva valiku jaoks löögiheli ja laeva tabamisel plahvatusheli. Heliefektid on tuletatud veebist leitud näidetest koos mängule sobivate muudatustega.

Kui vastase laevad on kõik pihta saanud, kuvatakse igal LCD -l teade - üks võitja ja teine kaotaja. Sõnum täpsustab ka, et mängu saab taaskäivitada, vajutades lähtestamisnuppu. Samuti on võitjale ja kaotajale eraldi heliefektid.

3. samm: ekraanipildid

Ekraanipildid
Ekraanipildid
Ekraanipildid
Ekraanipildid
Ekraanipildid
Ekraanipildid
Ekraanipildid
Ekraanipildid

Siin on mõned ekraanipildid mängust. See on selle postituse jaoks. Vaadake minu teisi juhendeid ja ka minu veebisaiti aadressil: www.boomerrules.wordpress.com

Soovitan: