Sisällysluettelo:

Arduino -taistelulaivapeli: 3 vaihetta
Arduino -taistelulaivapeli: 3 vaihetta

Video: Arduino -taistelulaivapeli: 3 vaihetta

Video: Arduino -taistelulaivapeli: 3 vaihetta
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Marraskuu
Anonim
Arduinon taistelulaiva peli
Arduinon taistelulaiva peli

Muistan, että pelasin lapsena taistelulaivapelistä paperi- ja lyijykynäversiota. Itse asiassa se on ollut olemassa noin ensimmäisen maailmansodan jälkeen. Minulla oli 1960 -luvun alussa myös "elektroninen" variantti "Sonar Sub Hunt", jossa oli valoja ja ääniä ja piilotettuja miinoja. Nykypäivän videopelistandardien mukaan Battleship on melko tylsä, mutta ajattelin tehdä sellaisen joka tapauksessa vain nähdäkseni, mitä lapsenlapset ajattelevat siitä. Loppujen lopuksi retro voi joskus olla viileää.

Tästä projektista on palasia, jotka olisivat hyödyllisiä muualla, vaikka et olisikaan kiinnostunut taistelulaivapelin tekemisestä. Siinä on yksinkertainen 4-bittinen 1602 LCD-käyttöliittymä, joka sisältää rutiinin tietyn merkin sijainnin asettamiseksi. Siellä on myös käyttöliittymä 4x4 -kytkinmatriisin dekoodaamiseen. Nämä kaksi käyttöliittymää ovat saatavilla erillisinä tiedostoina, joten ne on helppo kuljettaa. Pelissä on myös erilaisia äänitehosteita ja yksinkertainen yhden transistorin äänivahvistinpiiri.

Vaihe 1: Laitteisto

Laitteisto
Laitteisto
Laitteisto
Laitteisto

Tässä esitetty kaavio koskee yhtä pelaajaa, joten kaksi yksikköä on tehtävä. Yksiköt kommunikoivat käyttämällä 3-johdinliitäntää, joka sisältää UART TX- ja RX-linjat sekä maadoitusjohdon. Päätin käyttää tavallista 1/8 tuuman stereokuulokeliitäntää ja tavallista kaapelia, jossa on urosliittimet molemmissa päissä. Toisen laatikon vastaanotto menee toisen laatikon lähetykseen ja päinvastoin. Voit tehdä sen vaihtamalla kuulokeliitäntään juotetut johdot laatikon sisällä tai vaihtamalla ne piirilevylle rakennettaessa.

Klassinen peli esitettiin matriisina, mutta päätin tehdä yksinkertaisen toteutuksen käyttämällä näytön 1602 LCD -näyttöä. Ensimmäinen rivi näyttää pelaajan aluksen sijainnin ja vastustajan laukaukset. Toinen rivi näyttää pelaajan laukaukset ja mahdolliset osumat vastustajan laivoilla. Se tarjoaa 16 mahdollista sijaintia aluksille. Alusten määrä on asetettu ohjelmistossa ja valitsin mielivaltaisesti 5.

16 aluksen sijaintia sopivat hyvin kytkinvaatimuksiin, koska se mahdollistaa 4x4 -matriisin. Saatavana on 4x4 -matriisikytkinlevyjä, mutta päätin käyttää yksittäisiä kytkimiä yhdellä rivillä lineaarisen näytön mukaan. Johdotin kuitenkin kytkimet 4x4 -matriisiksi niin, että tarvitaan vain kahdeksan Arduino -nastaa. Katso oikeat kytkennät kytkimen kytkentäkaaviosta ja kaaviosta.

LCD-näyttö on kytketty 4-bittiseen käyttöliittymään. Lisäsin myös ulkoisen merkkivalon nastaan D13 osoittamaan, kenen pelaajan pitäisi ottaa kuva. Aluksi pelaajat päättävät, kuka ottaa ensimmäisen laukauksen, ja sitten ohjelmisto ohjaa automaattisesti pelin edestakaisin.

Halusin lisätä yksinkertaisia äänitehosteita laukaukseen, räjähdyksiin, pelivalmiuteen ja voittajaan/häviäjään. Yritin käyttää yksinkertaista pietsosummeria, mutta päädyin sen sijaan pieneen kaiuttimeen. Kaiuttimen vaatima virta ylittää sen, mitä Arduino pystyy käsittelemään, joten siihen lisättiin yksinkertainen transistorivahvistin. Ääni ei edelleenkään ole loistava, mutta parempi kuin summeri. Kaiutin on 4 ohmia, mutta jos sinulla on 8 ohmin kaiutin, vaihda kaavion vastus 39 ohmista 33 ohmiin. Jos käytät pietsosummeria, sinun pitäisi pystyä ajamaan sitä suoraan Arduino -nastasta ja summerin toinen puoli on kytketty maahan.

Mukana on myös ulkoinen nollauskytkin, joka on kytketty suoraan maan ja Arduinon "nollaus" -tapin väliin. Se tarjoaa keinot pelin käynnistämiseksi uudelleen.

Vaihe 2: Ohjelmisto

Ohjelmistolla on LCD -käyttöliittymän sisällytystiedosto, ja loin myös sisällytystiedoston 4x4 -kytkinmatriisin skannausta varten. Alustus kehottaa pelaajaa valitsemaan alustensa sijainnit ja siirtyy sitten valmiustilaan. Kun molemmat pelaajat ovat valmiita, toinen heistä aloittaa pelin painamalla kytkintä.

Laukauspaikka lähetetään UART: n kautta toiselle pelaajalle ja sopiva tulos välitetään takaisin pelaajalle, joka ampui laukauksen. Kuten aiemmin mainittiin, ohjelmisto hallitsee ensimmäisen kuvan ottamisen jälkeen, kuka ottaa seuraavan kuvan. Ennen kuin laukaus lähetetään, se tarkistetaan edellisten laukausten sijaintien kanssa. Jos kyseistä sijaintia on jo käytetty, laukausta ei lähetetä. "My_Shot" -merkkivalo määrittää, kenen vuoro on. Kuuluu myös laukausääni kelvollista valintaa varten ja räjähdysääni, jos alus osuu. Äänitehosteet ovat peräisin netistä löydetyistä esimerkeistä peliin sopivilla muutoksilla.

Kun vastustajan alukset ovat osuneet, jokaisessa nestekidenäytössä näkyy viesti - yksi voittajana ja toinen häviäjänä. Viesti kertoo myös, että peli voidaan käynnistää uudelleen painamalla nollauspainiketta. Voittajalle ja häviäjälle on myös erilliset äänitehosteet.

Vaihe 3: Näyttökuvat

Kuvakaappauksia
Kuvakaappauksia
Kuvakaappauksia
Kuvakaappauksia
Kuvakaappauksia
Kuvakaappauksia
Kuvakaappauksia
Kuvakaappauksia

Tässä muutama kuvakaappaus pelistä. Siinä tämä postaus. Tutustu muihin ohjeisiini ja myös verkkosivustolleni osoitteessa: www.boomerrules.wordpress.com

Suositeltava: