Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Langattomat anturit
- Vaihe 2: Pelin ohjain
- Vaihe 3: Raspberry Pi
- Vaihe 4: Asenna peli
Video: Arduino -ammuntapeli V3: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-31 10:19
Tämä peli on sinulle, joka käyttää airsoftia tai co2: ta ampuaksesi kohteisiin. Se on peli.
Ajantasaista tietoa pelistä ja tuesta:
www.facebook.com/arduinoshooting/
Blogini sivulle pelistä:
shootinggameblog.wordpress.com
Pelin koodit:
github.com/shootinggame82/Shooting-game-v3
Ammuntapeli on x langatonta kohdetta, ja jokaisessa kohteessa on tärinäanturi, joka tunnistaa tärinän, joka saa osuman. Langattomat anturit ovat Atmega328-siru (Arduino Uno-siru) ja niissä on ladattava Li-Po-akku.
Tämän pelin pääohjainta ohjaa Arduino, ja sitä ohjataan sarjaan Raspberry Pi -laitteesta.
Joten miten tämä peli toimii? Siinä on 3 pelitilaa:
Pika -aika: Pelaa X kierrosta ja ammu niin nopeasti kuin voit jokaiseen kohteeseen.
Aikatapa: Ammu niin monta kohdetta kuin mahdollista X sekunnissa.
Rapidfire: Ota X -laukauksia nopeimmin.
Järjestelmämme on NRF24L01 -lähettimet, jotta pääset kaukana pääohjaimesta. Ne toimivat 2,6 GHz: llä (sama kuin WiFi toimii)
Aiemmissa projekteissani olen käyttänyt Piezoa värähtelyyn, mutta nyt tärinäanturikytkintä käytetään, mutta voit silti käyttää Piezoa, jos olet tehnyt vanhan versioni tästä pelistä.
Pelissä on 7 Raspberry Pi -kosketusnäyttö, joka pitää pelin hallitsemasi verkkojärjestelmän. Terminaalitulostin tulostaa tulokset.
Tarvikkeet
Lähettimet:
- X Atmega328 ja Arduino Bootloader (riippuen siitä, kuinka monta kohdetta)
- X Värähtelyanturikytkin
- X Sininen LED
- X Vihreä LED
- X Punainen Led
- X 3,7v Li-Po-akku
- X FC-75 Li-Po -laturimoduuli (tai muu malli)
- X 100 uF kondensaattori
- X Kotelot antureille
- X LD1117V33 (Tekee turvallisen 3,3 V: n lähettimen)
- X NRF24L01 -moduulit
- X x 3220 ohmin vastukset (3 tarvitaan yhteen kohteeseen)
- X 16 MHz kide
- X x 2 Unplorized kondensaattorit 22 pF (2 tarvitaan yhteen kohteeseen)
Tärkein Arduino:
- 1 Arduino (Nano tai Uno on suositeltavaa, vaatii USB: n)
- 1 NRF24L01 -moduuli
- 1 10 uF kondensaattori
Vadelma Pi: lle:
- Raspberry Pi (käytin 3B: tä)
- 7 "kosketusnäyttö
- ATXRaspi (valinnainen mutta hyvä virtapainike)
- RTCRaspi (valinnainen, mutta hyvä RTC -moduuli kellonajan ja päivämäärän säilyttämiseksi)
- Terminaalitulostin (valinnainen, mutta tarvitaan tulostamiseen)
- Viivakoodinlukija (USB -versio, joka toimii näppäimistön tavoin, valinnainen)
- Hyvä 5 V: n teho (käytin vanhaa 12 V: n USB: tä, jonka teho oli 2,5 A)
Muu tavara:
- 12v teho (minulla on yksi 12 Ah)
- Verkkoliitäntä (helpottaa yhteyden muodostamista verkkoon)
- Kaapelit
Vaihe 1: Langattomat anturit
Aloitetaan antureiden tekeminen. Käytän tähän peliin 4 anturia. Mutta voit helposti lisätä lisää antureita. Anturit kommunikoivat 4 -numeroisen koodin kanssa, kun pääjärjestelmä lähettää koodin, jolla toiminnolla oikean koodin anturi syttyy ja on valmis kohteeseen. Sininen valo ilmoittaa, että se on se tavoite, johon aiot osua.
Meillä on myös vihreä ja punainen led. Vihreä valo palaa aina ilmoittaakseen, että anturi on päällä. Punainen palaa vain, kun akun varaus on alle 3,1 V (se käyttää sirun sisäänrakennettua toimintoa laskeakseen, kuinka paljon akussa on.
Tärinäanturi on kytketty analogiseen nastaan ja lukee sen arvon. Kun arvo uppoaa, anturi havaitsee tärinän ja rekisteröimme osuman.
Kohteessa on vikaturvallisuustoiminto, joka tarkoittaa sitä, että et osu X sekunnissa (oletus on 15 sekuntia) tai jos lähetystä ei voida suorittaa, se palaa aloitusasentoon.
En aio selittää, miten aiot johdottaa, tarkista sähkölevy nähdäksesi, kuinka aiot tehdä sen. Yksi asia, joka ei ole siinä, on akku, virtakytkin ja laturi. Sinä päätät miten haluat sen.
TÄRKEÄÄ NRF24L+ -moduulista:
Voi olla tuskallista saada ne vakaiksi yhdistettynä hyvään voimaan ja eristyneisyyteen sen ympärillä, ja saat koodin toimimaan. Minulle 10 uF kondensaattori antaa minulle vakaan ja hyvän yhteyden, mutta kokeile ensin, jos tarvitset esimerkiksi 100 uF kondensaattoria. Kääri ne myös ensin muovikalvolla ja sitten alumiinifoliolla, jotta ne eivät häiritse
Myös koodissa tiedonsiirtonopeus ei tarvitse yli 250 Kb, joten se ei ole ongelma. Mutta PA: myRadio.setPALevel (RF24_PA_MIN);
Koodissa, jonka olen asettanut MIN: ksi (tämä on testin aikana), se on alin eikä käytä niin paljon virtaa, mutta kantama ei ole niin pitkä. Jos sinulla on vakaa ja hyvä teho, voit siirtyä RF24_PA_MAX -porttiin saadaksesi pisimmän kantaman, MUTTA he tarvitsevat GOOOOOD -vakaata virtaa siihen. Kokeile myös MATALA JA KORKEA (Vaihda vain MAX -teksti) nähdäksesi, saatko hyvän viestinnän. Lisäksi saat hyvän kantaman matalalla ja korkealla, ellet ole ampuja
Pidä myös lähettimet vähintään metrin etäisyydellä toisistaan, koska sulkeminen voi tehdä signaalin huonoksi
Testaa kommunikaatio jollakin ping -esimerkillä NRF24 -kirjastossa (linkki GitHubissa)
Koodissa sinun on asetettava kohteen yksilöllinen tunnistenumero:
int targID = 3401; // Tämä on kohdetunnus
int sendID = 2401; // Tämä on vastaustunnus
Siinä on myös 3 DEFINE -toimintoa:
#define DEBUG
#määritä AKKU
#define SHAKE // JOS RAKKAUSKYTKINTÄ KÄYTETÄÄN VANHAN PIEZON PAIKALLA
VIANETSINTÄ:
Testin aikana tämä on hyvä määritellä. Mutta kun asetat ne saataville, älä aktivoi niitä.
AKKU:
Jos et halua käyttää akun tarkistajaa kohteille, sinun on poistettava tämä määritelmä.
Ravista:
Jos olet rakentanut vanhan versioni, sinulla on pietsosensorit ja poista tämä saadaksesi oikean koodin heille.
ATMEGA328 -siru
Arduino -nanon sijaan päätin käyttää ATMEGA328 -sirua (Uno -käynnistyslataimen kanssa), ne on helppo ohjelmoida vain poistamalla siru Arduino Unosta ja lisäämällä tämä siru ja lähettämällä koodi. Tarkista sähköjärjestelmä, miten tavoitteet rakennetaan.
Koodi
Olen kirjoittanut koodin PlatformIO: lla Arduino IDE: n sijaan. Se on parempi ohjelmisto ohjelmoida sisään. Joten koodi on hieman erilainen. Suosittelen käyttämään tätä ohjelmistoa.
Kohde- ja lähetinlaatikko
Olen kiinnittänyt anturin ja sinisen ledin kohteeseen, ja 3, 5 mm: n phono -kaapelilla 2 m: llä liitän sen yhteen lähettimen laatikkoon, jossa on atmega -siru, akkulaturi ja vihreä ja punainen led. Näin suojataan sitä teräsluoteilta.
Vaihe 2: Pelin ohjain
Seuraavaksi meidän on tehtävä antureiden ohjain. Se on Arduino, joka käyttää NRF24L01 -moduulia kommunikoidakseen antureiden kanssa. Ei mitään muuta. Arduino kytketään sitten vadelmapi: n USB: llä toimimaan.
Näin se toimii. Se käyttää sarjaa tietääkseen mitä tehdä. Pi lähettää sarjakomentoja. Aluksi se lähettää asennuksen aikana, kuinka monta kohdetta olet lisännyt, ja kohteiden tunnistenumerot. Sitten se suorittaa testitoiminnon ja ilmoittaa vadelmapiille, jos he kommunikoivat keskenään.
Kun pelaat peliä, se lähettää pi: ltä minkä tyyppisen pelin ja kuinka monta kierrosta/osumaa käyttää. Se siitä.
On mahdollista käyttää NRF24L01 -moduuleja vadelmapi: ssä, mutta minulle Arduino on parempi vaihtoehto, en koskaan käytä niitä vadelmissa, joten en tiedä kuinka hyvin ne toimivat pitkällä aikavälillä
Siellä on tehomoduuli, joka käyttää 5 V: tä saadakseen oikean vakaan virran lähettimiin. Voit käyttää niitä kanssasi Arduino (katso kuva) nimi on Socket Adapter Module Board
Kun pelaat, kohteet aktivoituvat satunnaisesti yksi kerrallaan. Kun yksi osuu, toinen aktivoituu.
Testin aikana voit ottaa #DEFINE DEBUG -toiminnon käyttöön nähdäksesi, miten se toimii, mutta ei silloin, kun käytät sitä pi -tietokoneessa, se ei toimi silloin.
Lataa koodi GitHub -sivulta.
Vaihe 3: Raspberry Pi
Olemme nyt tulleet Raspberry Pi: hen.
Olen lisännyt joitain lisätoimintoja, jotta minulla voi olla virtapainike. ATXRaspi 3 on loistava moduuli, voit käynnistää, sammuttaa ja käynnistää pi uudelleen painikkeella. Myös RTCRaspi pitää kellonaika ja päivämäärä pi. Se mahdollisti myös vain verkkokaapelin liittämisen, jos minun on päivitettävä järjestelmä. Löydät ne Lowpowerlabista
Lämpötulostin, jonka löydät sparkfunista, ja viivakoodinlukija on saatavana Amazonista.
Pi -tietokone toimii kioskitilassa, joten selain avautuu käynnistyksen yhteydessä. Ensinnäkin pi -tietokoneessa on oltava PHP 7- ja mysql -verkkopalvelin. (Internetissä on paljon oppaita tähän)
HUOM: jos aiot käyttää lämpötulostinta, jossa on vadelma pi, jossa on sisäänrakennettu bluetooth, sinun on ensin poistettava se käytöstä
Python-komentosarja tarvitsee pyserialin ja asennat sen: sudo apt-get install python-serial
Asenna mysql toimimalla seuraavasti:
sudo apt-get install mysql-python sudo apt-get install python-mysql.connector
suso apt-get install pymysql
Nyt voit hallita Arduinoa sarjaliikenteen kautta ja myös päivittää mysql -tietokannan.
Seuraava vaihe on luoda python -komentosarja mysql -yhteyden muodostamiseksi.
Muuta kaikissa kolmessa python -komentosarjassa yhteys mysql -tietokantaan.
Seuraava askel on saada python -komentosarja käynnistymään.
On olemassa kolme python -käsikirjoitusta. Game.py on kaikista tärkein, jossa pelitoiminto on. Print.py tätä tarvitaan vain, jos aiot käyttää terminaalitulostinta. Ean.py tarvitaan vain, jos olet aiot käyttää viivakoodinlukijaa.
Voit tehdä niistä automaattisen käynnistyksen muokkaamalla:
sudo nano /etc/rc.local
ja lisää seuraava alareunaan ennen poistumista 0:
sudo python /home/pi/Gamefiles/game.py & sudo python /home/pi/Gamefiles/print.py & sudo python /home/pi/Gamefiles/ean.py &
Muuta oikea paikka python -skriptillesi ja älä unohda & -merkkiä lopussa
Nyt meidän on tehtävä verkkoselaimelle kioskitila, poista ensin kohdistin:
sudo apt-get install unclutter
sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Etsi ja kommentoi tuosta tiedostosta:
@xscreensaver -no -splash # poista näytönsäästäjä kommentoimalla tämä rivi
Alla vielä lisäys:
@xset s pois päältä @xset -dpms @xset s noblank @chromium-browser --noerrdialogs --force-device-scale-factor = 1,25 --kiosk https:// localhost
Seuraava vaihe poistaa kaikki käynnistystekstit ja tavarat lisäämällä myös oman käynnistysnäytön täältä on pikaopas:
sudo nano /boot/config.txt ja alareunassa adddisable_splash = 1
Poista tekstiviesti roiskekuvan alla:
sudo nano /usr/share/plymouth/themes/pix/pix.script
Etsi ja poista (tai kommentoi):
message_sprite = Sprite (); message_sprite. SetPosition (näytön leveys * 0,1, näytön korkeus * 0,9, 10000);
ja:
my_image = Image. Text (teksti, 1, 1, 1); message_sprite. SetImage (my_image);
Poistamme nyt käynnistysviestit:
sudo nano /boot/cmdline.txt
korvaa "konsoli = tty1" sanalla "konsoli = tty3"
ja lisää rivin loppuun:
tilkka hiljainen plymouth.ignore-serial-consoles logo.nologo vt.global_cursor_default = 0
Ja korvaa pi splash omalla:
sudo cp ~/my_splash-p.webp" />
Nyt sinulla on oma mukautettu käynnistysnäyttö pelillesi. Pi -tietokoneesi on nyt valmis käsittelemään peliä, joten siirry seuraavaan vaiheeseen!
Vaihe 4: Asenna peli
Tässä vaiheessa olet luonut pelin.
Ensin sinun on määritettävä verkkojärjestelmä. Lataa tietokanta mysql -palvelimellesi. Tiedosto on include -kansiossa ja sen nimi on database.sql
Seuraava askel on muokata määritystiedostoa, joka löytyy kansion nimestä config.php Muuta tietokannan kirjautumistietoja, jotta komentosarja toimii.
Web -järjestelmä on monikielinen ja kirjoitettu englanniksi. Saatavilla on myös ruotsinkielinen käännös. Kielen lisäämiseksi tarvitset Poedit -nimisen ohjelmiston.
Jos haluat lisätä kieliä verkkojärjestelmään, sinun on muokattava i18n_setup.php ja lisättävä taulukkoon:
return in_array ($ locale, ['en_US', 'sv_SE']); (Rivi 23)
Myös oletuskielen vaihtamiseksi sinun on muutettava rivi 27: $ lang = 'en_US'; vaihda en_US -kieli.
kielitiedostot on sijoitettava alueille/LANGCODE/LC_MESSAGES/ja niiden on oltava nimellä main.mo (Vaihda kielikoodiksi oma kielesi)
vaihtaaksesi näppäimistön tiedostoissa selectplayers.php vaihdat kieltä: "en", // en for english sv for swedish layout: 'qwerty', // qwerty for english swedish-qwerty for swedish
Löydät ne linjoilta 218 ja 219
Käytettävissä olevat kielet ovat kansiossa: ištekit/js/näppäimistö/kielet ja asettelut ovat resursseissa/js/näppäimistö/asettelut ja lisäävät oikeat tiedostot riveille 118 ja 119 (korvaa siellä oleva kieli)
Lisää kohteita
Voit lisätä kohteita siirtymällä localhost/ admin/ -kohtaan ja napsauttamalla Lisää kohteita.
Sinun on lisättävä kohteen nimi ja yksilöllinen kohdetunnus ja lähetettävä tunnus, lisättävä niin monta kohdetta kuin sinulla on.
Lisää pelejä
Sinun on myös lisättävä joitain pelejä. Siirry localhost/ admin/ -kohtaan ja napsauta Lisää peli
Sinun on lisättävä pelille nimi, kuvaus, minimi- ja enimmäispelaajat, minkä tyyppinen peli, kuinka kova peli on välillä 1–5. Ja miten peli on, joten lisää pikapelipelissä kuinka monta osumaa (esimerkki 30) kuinka monta kierrosta (esimerkiksi 8) ja kuinka kauan he aikovat pelata (esimerkiksi 60 minuutin ajan)
Aloita peli
Kun käynnistät pelin, se suorittaa kohdetestauksen. Joten tavoitteiden on oltava päällä ennen pääjärjestelmän käynnistämistä. Jos kaikki läpäisevät testin, voit käyttää järjestelmää, mutta jos eivät, et voi käyttää sitä. Se yrittää kommunikoida, kunnes he saavat vastauksen.
Onnea
No siitä on kyse, jos haluat tukea ja tietoa koodin päivityksestä, seuraa tämän pelin Facebook -sivua, jotta voin vastata sinulle nopeasti. Linkit löydät ylhäältä täältä.
Suositeltava:
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen
Halvin Arduino -- Pienin Arduino -- Arduino Pro Mini -- Ohjelmointi -- Arduino Neno: 6 vaihetta (kuvilla)
Halvin Arduino || Pienin Arduino || Arduino Pro Mini || Ohjelmointi || Arduino Neno: …………………………. Tilaa YouTube -kanavani saadaksesi lisää videoita ……. Tässä projektissa keskitytään kaikkien aikojen pienimpään ja halvinan arduinoon. Pienin ja halvin arduino on arduino pro mini. Se muistuttaa arduinoa