Obsah:
Video: Strieľačka Arduino V3: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-31 10:24
Táto hra je pre vás, kto používa airsoft alebo co2 na streľbu na ciele. Je to hra
Aktuálne informácie o hre a podpore:
www.facebook.com/arduinoshooting/
Moja blogová stránka o hre:
shootinggameblog.wordpress.com
Pre kódy o hre:
github.com/shootinggame82/Shooting-game-v3
Strieľačka je x terčov, ktoré sú bezdrôtové. Každý terč má vibračný senzor, ktorý sníma vibrácie, ktoré sa dostanú pri zásahu. Bezdrôtové senzory sú čip Atmega328 (čip Arduino Uno) a majú nabíjaciu batériu Li-Po.
Hlavný ovládač pre túto hru je ovládaný Arduinom a je sériovo ovládaný z Raspberry Pi.
Ako teda táto hra funguje? Sú to tri herné režimy:
Quicktime: Hrajte X kôl a strieľajte tak rýchlo, ako môžete na každý cieľ.
Časový režim: Vystreľte čo najviac cieľov na X sekúnd.
Rapidfire: Nasnímajte X záberov v najrýchlejšom čase.
Systém používa vysielače NRF24L01 na získanie dobrých vzdialeností od hlavného ovládača. Pracujú na frekvencii 2,6 GHz (to isté ako WiFi)
V mojich minulých projektoch som používal Piezo na vibrácie, ale teraz sa používa spínač vibračného senzora. Piezo však môžete stále používať, ak ste vytvorili moju starú verziu tejto hry.
Hra má 7 dotykový displej Raspberry Pi, ktorý drží webový systém, pomocou ktorého môžete hru ovládať. Výsledky vytlačí terminálová tlačiareň.
Zásoby
Pre vysielače:
- X Atmega328 s bootloaderom Arduino (v závislosti od počtu cieľov)
- X Spínač snímača vibrácií
- X modrá LED
- X Zelená LED
- X červená LED
- X 3,7 V Li-Po batéria
- X FC-75 Li-Po nabíjací modul (alebo iný model)
- X 100 uF kondenzátor
- X Puzdrá na senzory
- X LD1117V33 (robí bezpečný vysielač 3,3 V)
- X Moduly NRF24L01
- X x 3 220 ohmové odpory (na jeden cieľ sú potrebné 3)
- X 16 MHz kryštál
- X x 2 nepreskúmané kondenzátory 22 pF (na jeden cieľ sú potrebné 2)
Pre hlavné Arduino:
- 1 Arduino (odporúča sa Nano alebo Uno, musí mať USB)
- 1 modul NRF24L01
- 1 10 uF kondenzátor
Pre malinový Pi:
- Raspberry Pi (použil som 3B)
- 7 "dotykový displej
- ATXRaspi (voliteľné, ale dobrý modul tlačidla napájania)
- RTCRaspi (voliteľný, ale dobrý modul RTC na uchovávanie času a dátumu)
- Terminálová tlačiareň (voliteľné, ale potrebné na tlač)
- Skener čiarových kódov (verzia USB, ktorá funguje ako klávesnica, voliteľné)
- Dobrý výkon 5 V (použil som staré 12 V USB s výkonom 2,5 A)
Ostatné veci:
- Napájanie 12 V (jedno mám pri 12 Ah)
- Sieťová zásuvka (uľahčuje pripojenie k sieti)
- Káble
Krok 1: Bezdrôtové senzory
Začnime s výrobou senzorov. Na túto hru používam 4 senzory. Môžete však pridať ďalšie senzory. Senzory komunikujú pomocou 4 -číselného kódu, keď hlavný systém odošle kód, pomocou ktorej funkcie sa senzor so správnym kódom rozsvieti a bude pripravený na cieľ. Modré svetlo má informovať, že je to cieľ, na ktorý sa chystáte zasiahnuť.
Máme tiež zelenú a červenú LED. Zelená sa vždy rozsvieti, aby informovala, že senzor je zapnutý. Červená sa rozsvieti iba vtedy, keď je batéria menej ako 3,1 V (na základe výpočtu vstavanej funkcie v čipu vypočíta, koľko je v batérii k dispozícii.
Senzor vibrácií je pripojený k analógovému kolíku a číta jeho hodnotu. Keď hodnota klesá, senzor zaznamená vibrácie a práve tam zaregistrujeme prístup.
Cieľ má funkciu zabezpečenú proti zlyhaniu, ktorá zapríčiní, že netrafíte za X sekúnd (predvolené je 15 sekúnd) alebo ak sa prenos nedá vykonať, vrátia sa do východiskovej polohy.
Nebudem vysvetľovať, ako sa chystáte zapojiť, skontrolujte elektrický list, aby ste zistili, ako to urobíte. Jedna vec, ktorá na ňom nie je, je batéria, vypínač a nabíjačka. Je na vás, aby ste sa rozhodli, ako to chcete.
DÔLEŽITÝ O Module NRF24L+:
Môže to byť bolesť v … dosiahnuť ich stabilitu v kombinácii s dobrou silou a izoláciou okolo nich a kódom, s ktorým ich prinútite pracovať. Mne 10 uF kondenzátor poskytne stabilné a dobré pripojenie, ale najskôr vyskúšajte, či potrebujete napríklad 100 uF kondenzátor. Tiež ich zabaľte najskôr plastovou fóliou a potom hliníkovou fóliou, aby ste ich chránili pred rušením
V kóde tiež nie je potrebný dátový tok viac ako 250 kB, takže s tým nebude problém. Ale PA: myRadio.setPALevel (RF24_PA_MIN);
V kóde, ktorý som nastavil na MIN (Toto je počas testu), je najnižší a nespotrebuje toľko energie, ale dosah nebude taký dlhý. Ak k nim máte stabilný a dobrý výkon, môžete ísť až na RF24_PA_MAX, aby ste získali najdlhší dosah, ALE na to potrebujú stabilný výkon GOOOOOD. Skúste tiež NÍZKE A VYSOKÉ (Zmeňte iba MAX text), aby ste zistili, či sa vám dobre komunikuje. Tiež budete mať dobrý dosah na NÍZKU a VYSOKÚ, pokiaľ nebudete sniperom
Udržujte vysielače najmenej jeden meter od seba, pretože pri zatvorení môže dôjsť k zlému signálu
Vyskúšajte komunikáciu pomocou nejakého príkladu ping v knižnici NRF24 (odkaz na GitHub)
V kóde musíte nastaviť jedinečné identifikačné číslo pre tento cieľ:
int targID = 3401; // Toto je ID cieľa
int sendID = 2401; // Toto je ID odpovede
K dispozícii sú tiež 3 DEFINE funkcie:
#define DEBUG
#definujte BATÉRIU
#define SHAKE // AK SA POUŽÍVA SHAKE SWITCH NAMIESTO STARÉHO PIEZA
DEBUG:
Počas testu je dobré to definovať. Keď ich však sprístupníte, neaktivujte ich.
BATÉRIA:
Ak nechcete mať pre ciele kontrolu batérie, musíte túto definíciu odstrániť.
TRIASŤ:
Ak ste vytvorili moju starú verziu, máte piezo senzory, odstráňte ich a získajte k nim správny kód.
Čip ATMEGA328
Namiesto Arduino nano som sa rozhodol použiť čip ATMEGA328 (s bootloaderom Uno), programovanie je jednoduché, stačí odstrániť čip z Arduino Uno a pridať tento čip a nahrať kód. Pozrite sa na elektrickú schému, ako stavať ciele.
Kód
Kód som napísal s PlatformIO namiesto Arduino IDE. Je to lepší softvér na programovanie. Kód je teda trochu iný. Odporúčam namiesto toho použiť tento softvér.
Cieľový a vysielačový box
Na cieľ som pripevnil snímač a modrú diódu a pomocou 3,5 mm phono kábla na 2 m ho spojím dohromady v skrini vysielača, v ktorej je umiestnený čip atmega, nabíjačka batérií a zelená a červená dióda. To je tak, aby bol chránený pred nárazom do oceľových striel.
Krok 2: Ovládač hry
Ďalšia vec, ktorú musíme urobiť, je vytvoriť ovládač pre senzory. Je to Arduino, ktoré na komunikáciu so senzormi používa modul NRF24L01. Nič viac. Arduino je potom do Raspberry Pi zapojené pomocou USB a funguje.
Takto to bude fungovať. Používa sériové číslo, aby vedelo, čo má robiť. Pi vyšle sériové príkazy. Najprv počas nastavenia odošle, koľko cieľov ste pridali, a identifikačné čísla cieľov. Potom vykoná testovaciu funkciu a informuje malinový pi, ak spolu komunikujú.
Keď budete hrať hru, odošle vám z pi aký typ hry a koľko kôl/zásahov použijete. To je všetko.
Moduly NRF24L01 je možné použiť v malinovom pi, ale pre mňa je Arduino lepšou možnosťou, pretože ich nikdy nepoužívam v malinách, takže neviem, ako dobre fungujú z dlhodobého hľadiska
Existuje napájací modul, ktorý používa 5 V na zaistenie správneho stabilného napájania vysielačov. Môžete ich použiť so sebou Arduino (pozri obrázok), názov je Socket Adapter Module Board
Keď budete hrať, ciele budú náhodne aktivované jeden po druhom. Keď je zasiahnutý jeden, aktivuje sa ďalší.
Počas testu môžete mať aktivovaný #DEFINE DEBUG, aby ste videli, ako funguje, ale nie keď ho použijete v počítači pi, potom to nebude fungovať.
Stiahnite si kód na stránku GitHub.
Krok 3: Raspberry Pi
Teraz sme sa dostali k Raspberry Pi.
Pridal som niekoľko ďalších funkcií, aby som mohol mať tlačidlo napájania. ATXRaspi 3 je skvelý modul, ktorý môžete zapnúť, vypnúť a reštartovať pi pomocou tlačidla. Tiež RTCRaspi, aby bol čas a dátum na pí. Tiež mi umožnilo jednoducho zapojiť sieťový kábel, pretože musím v systéme vykonať niekoľko aktualizácií. Nájdete ich na Lowpowerlab
Termálna tlačiareň, ktorú nájdete na sparkfun a čítačka čiarových kódov je k dispozícii na amazone.
Počítač Pi beží v kioskovom režime, takže prehliadač sa otvorí na začiatku. Najprv musíte mať na počítači pi webový server s PHP 7 a mysql. (Na tento účel je na internete veľa sprievodcov.)
UPOZORNENIE: Ak budete používať termálnu tlačiareň s malinovým pi, ktorá má vstavaný bluetooth, musíte ju najskôr vypnúť
Skript python potrebuje pyserial a nainštalujete ho: sudo apt-get install python-serial
Aby mysql fungoval, nainštalujte nasledujúce:
sudo apt-get install mysql-python sudo apt-get install python-mysql.connector
suso apt-get install pymysql
Teraz môžete ovládať svoje Arduino cez sériové číslo a tiež aktualizovať databázu mysql.
Ďalším krokom je vytvorenie skriptu pythonu na pripojenie k mysql.
Vo všetkých troch skriptoch pythonu zmeňte pripojenie k vašej databáze mysql.
Ďalším krokom je spustenie skriptu python na začiatku.
Existujú tri python script.game.py je zo všetkých najdôležitejší. Jeden z nich má hernú funkciu.print.py, je to potrebné iba vtedy, ak na tlač budete používať termálnu tlačiareň.ean.py je potrebný iba vtedy, ak ste použijete skener čiarových kódov.
Aby sa mohli automaticky spustiť, upravím:
sudo nano /etc/rc.local
a v spodnej časti pred výjazdom 0 pridajte nasledujúce:
sudo python /home/pi/Gamefiles/game.py & sudo python /home/pi/Gamefiles/print.py & sudo python /home/pi/Gamefiles/ean.py &
Zmeňte prosím na správne miesto pre svoj skript python a nezabudnite na & podpísať na konci
Teraz musíme pre webový prehliadač vytvoriť kioskový režim, najskôr odstráňte kurzor:
sudo apt-get install unclutter
sudo nano/etc/xdg/lxsession/LXDE-pi/automatické spustenie
teraz v tomto súbore nájdite a komentujte:
@xscreensaver -no -splash # komentujte tento riadok a deaktivujte šetrič obrazovky
K tomu sa pridáva:
@xset je vypnutý @xset -dpms @xset s noblank @chromium-browser --noerrdialogs --force-device-scale-factor = 1,25 --kiosk https:// localhost
Ďalším krokom k odstráneniu všetkých zavádzacích textov a vecí a pridaniu vlastnej bootovacej obrazovky je rýchly sprievodca:
sudo nano /boot/config.txt a v spodnej časti adddisable_splash = 1
Odstrániť textovú správu pod úvodným obrázkom:
sudo nano /usr/share/plymouth/themes/pix/pix.script
Nájdite a odstráňte (alebo komentujte):
message_sprite = Sprite (); message_sprite. SetPosition (šírka obrazovky * 0,1, výška obrazovky * 0,9, 10 000);
a:
my_image = Image. Text (text, 1, 1, 1); message_sprite. SetImage (my_image);
Teraz odstránime bootovacie správy:
sudo nano /boot/cmdline.txt
nahradiť „console = tty1“za „console = tty3“
a na koniec riadku pridajte:
splash ticho plymouth.ignore-serial-konzoly logo.nologo vt.global_cursor_default = 0
A nahraďte pi splash svojim vlastným:
sudo cp ~/my_splash-p.webp" />
Teraz máte k hre vlastnú vlastnú bootovaciu obrazovku. Váš počítač pi je teraz pripravený zvládnuť hru. Prejdite na ďalší krok!
Krok 4: Nastavte hru
V tomto mieste ste teraz vytvorili hru.
Najprv musíte nastaviť webový systém. Odošlite databázu na server mysql. Súbor je v priečinku includes a má názov database.sql
Ďalším krokom je úprava konfiguračného súboru, ktorý nájdete v zahrnutom názve priečinka config.phpZmeňte prihlasovacie údaje do databázy, aby skript fungoval.
Webový systém je založený na viacerých jazykoch a je napísaný v angličtine. K dispozícii je preklad do švédčiny. Na rozšírenie jazyka potrebujete softvér s názvom Poedit.
Ak chcete do webového systému pridať ďalší jazyk, musíte upraviť i18n_setup.php a pridať do poľa:
return in_array ($ locale, ['en_US', 'sv_SE']); (Riadok 23)
Na zmenu predvoleného jazyka je tiež potrebné zmeniť riadok 27: $ lang = 'en_US'; zmeňte en_US na váš jazyk.
jazykové súbory musia byť umiestnené v miestnych jazykoch/LANGCODE/LC_MESSAGES/a musia mať názov main.mo (Zmeniť jazyk na váš jazyk)
na zmenu klávesnice v súbore selectplayers.php zmeníte jazyk: "en", // en pre angličtinu sv pre švédske rozloženie: 'qwerty', // qwerty pre angličtinu švédsky-qwerty pre švédčinu
Nájdete ich na linkách 218 a 219
Dostupné jazyky sú v priečinku: assets/js/keyboard/languages & layouts are in assets/js/keyboard/layouts and add the correct files to line 118 and 119 (replace the one you find there now)
Pridajte ciele
Ak chcete pridať ciele, choďte na localhost/ admin/ a kliknite na pridať ciele.
Musíte zadať názov cieľa a jedinečné ID cieľa a ID odoslania a pridať toľko cieľov, koľko máte.
Pridajte hry
Musíte tiež pridať niekoľko hier. Choďte na localhost/ admin/ a kliknite na pridať hru
Musíte pridať názov hry, popis, minimálny a maximálny počet hráčov, aký typ hry, ako aj náročná hra od 1 do 5. A aká je hra, takže pre hru s rýchlym ohňom pridajte, koľko zásahov (príklad 30) pre quickdraw, koľko kôl (napríklad 8) a pre časové obdobie, ako dlho sa budú hrať (napríklad 60 pre jednu minútu)
Spustite hru
Keď hru zapnete, vykoná testovanie cieľa. Ciele teda musia byť zapnuté predtým, ako spustíte hlavný systém. Ak všetky prejdú testom, môžete použiť systém, ale ak nie, nemôžete ho použiť. Pokúsi sa komunikovať, kým nedostanú odpoveď.
Veľa štastia
Tak to je asi všetko. Podporu a informácie o aktualizácii kódu nájdete na mojej facebookovej stránke tejto hry, aby som vám mohol rýchlo odpovedať. Tu nájdete odkazy hore.
Odporúča:
Strieľačka ARDUINO + SCRATCH: 6 krokov
Strieľačka ARDUINO + SCRATCH: Zachráňte svoj koláč !!! Je v nebezpečenstve. K nemu sa priblížia štyri muchy. Máte iba 30 sekúnd na to, aby ste muchy vystrelili a zachránili svoj koláč
Laserová strieľačka (Hviezdne vojny): 5 krokov
Laserová strieľačka (Hviezdne vojny): V tomto článku sa podelím o projekt hviezdnych vojen založený na arduine, ktorý môžete urobiť s rozpočtom. Tento projekt je laserová strieľačka, ktorá vám bude vyhovovať ako domáci výrobok. Tento projekt pozostáva z 2 čiastkových projektov: výroba blasteru z lepenky
2D strieľačka so strieľačkami: 11 krokov
Scratch hra 2D strieľačka: V tomto návode vám ukážem, ako vytvoriť stíhaciu hru 2D strieľačky. Jeho výroba je veľmi jednoduchá, ale dúfajme, že sa počas neho naučíte niekoľko vecí a čoskoro si vytvoríte vlastné stieracie hry
Punch Aktivovaná vodná strieľačka: 5 krokov
Punch Activated Water Shooter: Ak ste fanúšikom jedného kusu. Musíte poznať Jinbe. Jinbe je postava zo série One Piece, ktorú vytvoril Eiichiro Oda. Jinbe je mimoriadne silný majster Fishman Karate. Jednou z jeho techník je Five Thousand Brick Fist. To je
Strieľačka na ping-pong: 4 kroky
Streľba na ping-pong: (1) Malý projekt na ovládanie LED svetla pomocou Arduino Uno. (2) Pomocou 2 LED diód s rôznymi farbami môžete zmeniť všetky farby, ktoré sa vám páčia. (3) Na napájanie môžete použiť linku USB light. (4) Cieľom je trénovať vaše strelecké schopnosti