Sisukord:
- Tarvikud
- Samm: traadita andurid
- 2. samm: mängukontroller
- 3. samm: Raspberry Pi
- Samm: seadistage mäng
Video: Arduino tulistamismäng V3: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-31 10:18
See mäng on teile, kes kasutab sihtmärkide laskmiseks airsofti või CO2. See on mäng.
Mängu ja toe ajakohast teavet saate:
www.facebook.com/arduinoshooting/
Minu ajaveebi leht mängu kohta:
shootinggameblog.wordpress.com
Mängu koodid:
github.com/shootinggame82/Shooting-game-v3
Tulistamismäng on x juhtmeta sihtmärki, igal sihtmärgil on vibratsiooniandur, mis tuvastab löögi korral tekkiva vibratsiooni. Traadita andurid on Atmega328 kiip (Arduino Uno kiip) ja neil on Li-Po aku.
Selle mängu peamist kontrollerit juhib Arduino ja seda juhitakse seeriaviisiliselt Raspberry Pi kaudu.
Kuidas see mäng töötab? See on 3 mängurežiimi:
Kiire aeg: mängige X ringi ja tulistage nii kiiresti kui võimalik igale sihtmärgile.
Ajarežiim: tulistage X sekundiga nii palju sihtmärke kui võimalik.
Kiire tulekahju: tehke X -võtet kiireimal ajal.
Süsteem on meie NRF24L01 saatjad, et saada põhikontrollerist hea kaugus. Nad töötavad sagedusel 2,6 GHz (sama mis WiFi töötab)
Varasemates projektides kasutasin vibratsiooni jaoks Piezot, kuid nüüd kasutatakse vibratsioonianduri lülitit. Kuid kui olete teinud selle mängu vana versiooni, saate Piezot siiski kasutada.
Mängul on Raspberry Pi 7 -tolline puutetundlik ekraan, mis hoiab veebisüsteemi, mida saate mängu kaudu juhtida. Terminalprinter prindib tulemused välja.
Tarvikud
Saatjate jaoks:
- X Atmega328 koos Arduino alglaaduriga (sõltuvalt sihtmärkide arvust)
- X Vibratsioonianduri lüliti
- X Sinine LED
- X roheline LED
- X Punane LED
- X 3,7v Li-Po aku
- X FC-75 Li-Po laadimismoodul (või mõni muu mudel)
- X 100 uF kondensaator
- X Andurite korpused
- X LD1117V33 (teeb saatjale ohutuks 3,3 V)
- X NRF24L01 moodulid
- X x 3 220 oomi takistid (ühe sihtmärgi jaoks on vaja 3)
- X 16 MHz kristall
- X x 2 rikkumata kondensaatorit 22 pF (ühe sihtmärgi jaoks on vaja 2)
Peamine Arduino:
- 1 Arduino (soovitatav on Nano või Uno, peab olema USB)
- 1 NRF24L01 moodul
- 1 10 uF kondensaator
Vaarika Pi jaoks:
- Vaarika Pi (kasutasin 3B)
- 7 "puutetundlik ekraan
- ATXRaspi (valikuline, kuid hea toitenupumoodul)
- RTCRaspi (valikuline, kuid hea RTC -moodul kellaaja ja kuupäeva hoidmiseks)
- Terminalprinter (valikuline, kuid vajalik printimiseks)
- Vöötkoodiskanner (USB -versioon, mis töötab nagu klaviatuur, valikuline)
- Hea 5 V toide (kasutasin vana 12 V USB -d, mille võimsus oli 2,5 A)
Teised asjad:
- 12v võimsus (mul on üks 12 Ah juures)
- Võrgupesa (hõlbustage võrguga ühendamist)
- Kaablid
Samm: traadita andurid
Alustame andurite valmistamist. Selle mängu jaoks kasutan 4 andurit. Kuid saate hõlpsalt lisada rohkem andureid. Andurid suhtlevad nelja numbrikoodiga, kui põhisüsteem saadab välja koodi, millise funktsiooniga õige koodiga andur süttib ja on sihtmärgiks valmis. Sinine tuli teatab, et tabate sihtmärgi.
Meil on ka roheline ja punane LED. Roheline süttib alati, andes teada, et andur on sisse lülitatud. Punane süttib ainult siis, kui aku on alla 3,1 V (see kasutab kiibis sisseehitatud funktsiooni, et arvutada, kui palju akus on.
Vibratsiooniandur on ühendatud analoogpistikuga ja loeb selle väärtust. Kui väärtus langeb, annab andur vibratsiooni ja seal registreerime tabamuse.
Sihtmärgil on tõrkekindel funktsioon, mis ei taba X sekundi jooksul (vaikimisi on 15 sekundit) või kui edastamist ei saa teha, lähevad nad tagasi algasendisse.
Ma ei hakka selgitama, kuidas te juhtmeid ühendate, kontrollige elektrilist lehte, et näha, kuidas te seda teete. Üks asi, mida sellel pole, on aku, toitelüliti ja laadija. See on teie otsustada, kuidas seda soovite.
TÄHTIS NRF24L+ moodulist:
See võib olla valus…, kui need muutuvad stabiilseks, koos hea võimsuse ja eraldatusega, ning kood, mille abil need tööle saavad. Minu jaoks annab 10 uF kondensaator mulle stabiilse ja hea ühenduse, kuid palun proovige kõigepealt, kui vajate näiteks 100 uF kondensaatorit. Samuti mähkige need esmalt kilega ja seejärel alumiiniumfooliumiga, et kaitsta neid segamise eest
Ka koodis pole andmeedastuskiirust vaja rohkem kui 250 Kb, nii et see pole probleem. Kuid PA: myRadio.setPALevel (RF24_PA_MIN);
Koodis, mille olen määranud MIN (see on testi ajal), on see madalaim ja ei kasuta nii palju energiat, kuid vahemik ei ole nii pikk. Kui teil on stabiilne ja hea võimsus, saate pikima tööulatuse saamiseks minna RF24_PA_MAX -i, AGA nad vajavad selleks GOOOOOD stabiilset energiat. Proovige ka madalat ja kõrget (muutke ainult MAX -teksti), et näha, kas teil on hea side. Samuti saate hea kauguse madalatel ja kõrgetel, kui te ei saa snaipriks
Samuti hoidke saatjaid vähemalt meetri kaugusel, sest sulgemine võib signaali halvaks teha
Kontrollige suhtlust mõne pinginäitega NRF24 raamatukogus (link GitHubis)
Koodis peate määrama selle sihtmärgi kordumatu identifitseerimisnumbri:
int targID = 3401; // See on sihtkoha ID
int sendID = 2401; // See on vastuse ID
Samuti on 3 DEFINE funktsiooni:
#define DEBUG
#määratle AKU
#define SHAKE // KUI LÖÖGILÜLITIT KASUTATAKSE VANA PIEZO SISSE
DEBUG:
Katse ajal on see hea määratleda. Kuid kui need kättesaadavaks muudate, ärge seda aktiveerige.
AKU:
Kui te ei soovi sihtmärkide jaoks aku kontrollijat kasutada, peate selle määratluse eemaldama.
RAPUTAMA:
Kui olete minu vana versiooni ehitanud, on teil piesoandurid, seejärel eemaldage see, et saada neile õige kood.
ATMEGA328 kiip
Arduino nano asemel otsustasin kasutada ATMEGA328 kiipi (Uno alglaaduriga), neid on lihtne programmeerida, lihtsalt eemaldage kiip Arduino Unost ja lisage see kiip ning laadige üles kood. Kontrollige elektriskeemi, kuidas sihtmärke üles ehitada.
Kood
Olen koodi kirjutanud Arduino IDE asemel PlatformIO -ga. See on parem tarkvara programmeerimiseks. Seega on kood pisut erinev. Soovitan selle tarkvara asemel kasutada.
Siht- ja saatjakast
Mul on andur ja sinine valgusdiood sihtmärgile kinnitatud ning 3 m, 5 mm fonokaabliga 2 m, ühendage see saatekarbis, mis hoiab atmega kiipi, akulaadijat ning rohelist ja punast LED -i. Seda selleks, et kaitsta seda teraskuulide eest löögi eest.
2. samm: mängukontroller
Järgmine asi, mida peame tegema, on teha anduritele kontroller. See on Arduino, mis kasutab anduritega suhtlemiseks NRF24L01 moodulit. Mitte midagi muud. Seejärel ühendatakse Arduino vaarika pi -ga USB -ga töötamiseks.
See toimib nii. See kasutab seeriat, et teada saada, mida teha. Pi saadab jadakäsklusi. Esmalt saadab see seadistamise ajal välja, kui palju sihtmärke olete lisanud, ja sihtmärkide identifitseerimisnumbrid. Seejärel täidab see testfunktsiooni ja teavitab vaarika pi, kui nad omavahel suhtlevad.
Mängu mängides saadab see pi -lt üle, millist tüüpi mängu ja mitu vooru/tabamust kasutada. See on see.
Vaarika pi -s on võimalik kasutada NRF24L01 mooduleid, kuid minu jaoks on Arduino parem variant, mida ma kunagi vaarikas ei kasuta, nii et ma ei tea, kui hästi need pikas perspektiivis töötavad
Seal on toite moodul, mis kasutab saatjaid õige stabiilse toite saamiseks 5 v abil. Saate neid kasutada koos teiega Arduino (vt pilti), nimi on Socket Adapter Module Board
Mängides aktiveeritakse sihtmärgid ükshaaval juhuslikult. Kui ühte tabatakse, aktiveeritakse teine.
Testi ajal saate aktiveerida #DEFINE DEBUG, et näha, kuidas see töötab, kuid mitte siis, kui kasutate seda pi arvutis, siis see ei tööta.
Laadige kood alla GitHubi lehelt.
3. samm: Raspberry Pi
Nüüd oleme jõudnud Raspberry Pi juurde.
Olen lisanud mõned lisafunktsioonid, et mul oleks toitenupp. ATXRaspi 3 on suurepärane moodul, saate nupu nupuga sisse, välja lülitada ja taaskäivitada. Samuti RTCRaspi, et kella ja kuupäeva pi peal hoida. Samuti võimaldas võrgukaabli lihtsalt ühendada, kui pean süsteemis värskendusi tegema. Need leiate Lowpowerlabist
Termoprinter, mille leiate saidilt sparkfun, ja vöötkoodilugeja on saadaval Amazonist.
Pi -arvuti töötab kioskirežiimis, nii et brauser avaneb alguses. Kõigepealt peab pi -arvutis olema PHP 7 ja mysql -ga veebiserver. (Selle jaoks on veebis palju juhendeid)
TÄHELEPANU: kui kavatsete kasutada Bluetoothi sisseehitatud vaarika pi termoprinterit, peate selle kõigepealt keelama
Pythoni skript vajab püsialust ja te installite selle: sudo apt-get install python-serial
Selleks, et mysql töötaks, installige järgmine:
sudo apt-get install mysql-python sudo apt-get install python-mysql.connector
suso apt-get install pymysql
Nüüd saate oma Arduino jada kaudu juhtida ja ka mysqli andmebaasi värskendada.
Järgmine samm on luua pythoni skript mysql -iga ühenduse loomiseks.
Kõigis kolmes pythoni skriptis muutke ühendus oma mysql andmebaasiga.
Järgmine samm on panna pythoni skript käivitama.
Seal on kolm pythoni skripti.game.py on kõige olulisem, millest üks omab mängufunktsiooni.print.py seda on vaja ainult siis, kui kavatsete printimiseks kasutada terminaalset printerit. hakkate kasutama vöötkoodiskannerit.
Nende automaatse käivitamise muutmiseks toimige järgmiselt.
sudo nano /etc/rc.local
ja lisage enne väljumist 0 allservas järgmine:
sudo python /home/pi/Gamefiles/game.py & sudo python /home/pi/Gamefiles/print.py & sudo python /home/pi/Gamefiles/ean.py &
Muutke oma pythoni skripti jaoks õige koht ja ärge unustage lõpus & märki
Nüüd peame veebibrauseri jaoks tegema kioskirežiimi, eemaldage kõigepealt kursor:
sudo apt-get install unclutter
sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Nüüd leidke ja kommenteerige selles failis:
@xscreensaver -no -splash # kommenteerige seda rida ekraanisäästja keelamiseks
Selle alla lisage:
@xset s välja lülitatud @xset -dpms @xset s noblank @chromium-browser --noerrdialogs --force-device-scale-factor = 1,25 --kiosk https:// localhost
Järgmine samm kõigi algtekstide ja muu eemaldamiseks, samuti oma alglaadimisekraani lisamiseks, on siin lühijuhend:
sudo nano /boot/config.txt ja allosas adddisable_splash = 1
Eemaldage tekstisõnum pritsmepildi alt:
sudo nano /usr/share/plymouth/themes/pix/pix.script
Leidke ja eemaldage (või kommenteerige):
message_sprite = Sprite (); message_sprite. SetPosition (ekraani laius * 0,1, ekraani kõrgus * 0,9, 10000);
ja:
my_image = Image. Text (tekst, 1, 1, 1); message_sprite. SetImage (my_image);
Nüüd eemaldame alglaadimissõnumid:
sudo nano /boot/cmdline.txt
asendage “konsool = tty1” tekstiga “konsool = tty3”
ja lisage rea lõppu:
pritsima vaikne plymouth.ignore-serial-consoles logo.nologo vt.global_cursor_default = 0
Ja asendage pi splash omaga:
sudo cp ~/my_splash-p.webp" />
Nüüd on teie mängu jaoks kohandatud alglaadimisekraan. Teie pi arvuti on nüüd mängu käsitsemiseks valmis. Nii et järgmise sammu juurde!
Samm: seadistage mäng
Sel hetkel olete mängu loonud.
Kõigepealt peate seadistama veebisüsteemi. Laadige andmebaas üles oma mysql -serverisse. Fail asub kaustas sisaldab nimega database.sql
Järgmine samm on konfiguratsioonifaili muutmine, mille leiate kausta nimega config.php Muutke andmebaasi sisselogimisteavet, et skript töötaks.
Veebisüsteem on mitmekeelne ja kirjutatud inglise keeles. Saadaval on ka rootsi tõlge. Keele lisamiseks on vaja tarkvara nimega Poedit.
Veebisüsteemi keele lisamiseks peate muutma i18n_setup.php ja lisama massiivi:
return in_array ($ locale, ['en_US', 'sv_SE']); (23. rida)
Ka vaikekeele muutmiseks tuleb muuta rida 27: $ lang = 'en_US'; muutke en_US teie keeleks.
keelefailid tuleb paigutada lokaatidesse/LANGCODE/LC_MESSAGES/ja nende nimi on main.mo (muutke keele kood teie keeleks)
failide selectplayers.php klaviatuuri vahetamiseks muudate keelt: "en", // en inglise keeles sv rootsi paigutuse jaoks: 'qwerty', // qwerty inglise keeles rootsi-qwerty rootsi jaoks
Leiate need liinid 218 ja 219
Saadaolevad keeled on kaustas: Varad/js/klaviatuur/keeled ja paigutused on varades/js/klaviatuur/paigutused ning lisavad reale 118 ja 119 õiged failid (asendage sealt leitud keel)
Lisa sihtmärke
Sihtmärkide lisamiseks minge saidile localhost/ admin/ ja klõpsake nuppu Lisa sihtmärgid.
Peate lisama sihtmärgile nime ja kordumatu sihtmärgi ID ning saatma ID, lisama nii palju sihtmärke, kui teil on.
Lisage mänge
Samuti peate lisama mõned mängud. Minge saidile localhost/ admin/ ja klõpsake nuppu Lisa mäng
Peate lisama mängule nime, kirjelduse, minimaalsed ja maksimaalsed mängijad, millist tüüpi mängu, samuti selle, kui raske mäng on vahemikus 1 kuni 5. Ja kuidas mäng on, seega lisage kiirtulemängu jaoks mitu tabamust (näide 30) kiirvõistluse jaoks mitu vooru (näiteks 8) ja ajastatud, kui kaua nad mängivad (näiteks 60 minuti jooksul)
Alustage mängu
Mängu sisselülitamisel teeb see sihttesti. Seega peavad eesmärgid olema enne põhisüsteemi käivitamist seatud. Kui kõik läbivad testi, saate süsteemi kasutada, aga kui mitte, ei saa te seda kasutada. See proovib suhelda, kuni nad vastuse saavad.
Edu
Noh, see on kõik, koodi saamiseks ja toetuse saamiseks järgige minu mängu Facebooki lehte, et saaksin teile kiiresti vastata. Siit leiate ülevalt lingid.
Soovitan:
ARDUINO + SCRATCH Tulistamismäng: 6 sammu
ARDUINO + SCRATCH tulistamismäng: salvestage oma kook !!! see on ohus. Sellele on lähenenud neli kärbest. Kärbeste laskmiseks ja koogi salvestamiseks on teil aega vaid 30 sekundit
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Akustiline levitatsioon Arduino Unoga samm-sammult (8 sammu): 8 sammu
Akustiline levitatsioon Arduino Uno abil samm-sammult (8 sammu): ultraheliheli muundurid L298N DC-naissoost adapteri toiteallikas isase alalisvoolupistikuga Arduino UNOBreadboard ja analoogpordid koodi teisendamiseks (C ++)
Tulekahjusignalisatsioon Arduino abil [paar lihtsat sammu]: 3 sammu
Arduino kasutav tulekahjusignalisatsioon [paar lihtsat sammu]: Kas soovite Arduinoga teha lihtsa ja huvitava projekti, mis võiks samal ajal olla tõesti kasulik ja potentsiaalselt elupäästev? Kui jah, siis olete jõudnud õigesse kohta õppima midagi uut ja uuenduslikku. Selles postituses läheme
Odavaim Arduino -- Väikseim Arduino -- Arduino Pro Mini -- Programmeerimine -- Arduino Neno: 6 sammu (piltidega)
Odavaim Arduino || Väikseim Arduino || Arduino Pro Mini || Programmeerimine || Arduino Neno: …………………………. Palun TELLI minu YouTube'i kanalile, et saada rohkem videoid ……. .See projekt käsitleb kõigi aegade väikseima ja odavaima arduino liidestamist. Väikseim ja odavaim arduino on arduino pro mini. See sarnaneb arduinoga