Obsah:
Video: Střílečka Arduino V3: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-31 10:18
Tato hra je pro vás, kdo používá airsoft nebo co2 ke střelbě na cíle. Je to hra.
Aktuální informace o hře a podpoře:
www.facebook.com/arduinoshooting/
Moje blogová stránka o hře:
shootinggameblog.wordpress.com
Pro kódy o hře:
github.com/shootinggame82/Shooting-game-v3
Střílečka je x cílů, které jsou bezdrátové, každý cíl má vibrační senzor, který snímá vibrace, které se dostanou při zásahu. Bezdrátové senzory jsou čip Atmega328 (čip Arduino Uno) a mají dobíjecí Li-Po baterii.
Hlavní ovladač pro tuto hru je řízen Arduinem a je sériově ovládán z Raspberry Pi.
Jak tedy tato hra funguje? Jsou to 3 herní režimy:
Quicktime: Hrajte X kol a střílejte tak rychle, jak můžete na každý cíl.
Časový režim: Střílejte co nejvíce cílů na X sekund.
Rapidfire: Pořiďte X snímků v nejrychlejším čase.
Systém používá vysílače NRF24L01, abychom získali dobrou vzdálenost od hlavního ovladače. Pracují na frekvenci 2,6 GHz (stejné jako WiFi běží)
V mých minulých projektech jsem používal Piezo pro vibrace, ale nyní se používá spínač vibračního senzoru, ale Piezo můžete stále používat, pokud jste vytvořili moji starou verzi této hry.
Tato hra má 7 dotykový displej Raspberry Pi, který drží webový systém, který hru ovládáte. Výsledky vám vytiskne terminálová tiskárna.
Zásoby
Pro vysílače:
- X Atmega328 s bootloaderem Arduino (v závislosti na počtu cílů)
- X Přepínač snímače vibrací
- X modrá LED
- X Zelená LED
- X červená LED
- X 3,7 V Li-Po baterie
- X FC-75 Li-Po nabíjecí modul (nebo jiný model)
- X 100 uF kondenzátor
- X Pouzdra pro senzory
- X LD1117V33 (zajišťuje bezpečný vysílač 3,3 V)
- X Moduly NRF24L01
- X x 3 220 ohmové odpory (pro jeden cíl jsou potřeba 3)
- X 16 MHz Krystal
- X x 2 neprobádané kondenzátory 22 pF (pro jeden cíl jsou potřeba 2)
Pro hlavní Arduino:
- 1 Arduino (doporučuje se Nano nebo Uno, potřebujete USB)
- 1 modul NRF24L01
- 1 10 uF kondenzátor
Pro malinový Pi:
- Raspberry Pi (použil jsem 3B)
- 7 "dotykový displej
- ATXRaspi (volitelný, ale dobrý modul tlačítka napájení)
- RTCRaspi (volitelný, ale dobrý modul RTC pro uchování času a data)
- Terminálová tiskárna (volitelná, ale potřebná pro tisk)
- Skener čárových kódů (verze USB, která funguje jako klávesnice, volitelně)
- Dobrý 5V výkon (použil jsem staré 12v USB s 2,5 A napájením)
Jiné věci:
- Napájení 12 V (jedno mám na 12 Ah)
- Síťová zásuvka (usnadňuje připojení k síti)
- Kabely
Krok 1: Bezdrátové senzory
Začněme vyrábět senzory. Pro tuto hru používám 4 senzory. Můžete ale snadno přidat další senzory. Senzory komunikují pomocí čtyřčíselného kódu, když hlavní systém odešle kód, s jakou funkcí se senzor se správným kódem rozsvítí a bude připraven na cíl. Modré světlo má informovat, že je to cíl, na který se chystáte zasáhnout.
Máme také zelenou a červenou LED. Zelená se vždy rozsvítí, aby informovala, že je senzor zapnutý. Červená se rozsvítí, pouze když je baterie nižší než 3,1 V (pomocí vestavěné funkce v čipu vypočítá, kolik je v baterii.
Senzor vibrací je připojen k analogovému kolíku a čte jeho hodnotu. Když hodnota klesá, senzor zaznamenává vibrace a právě tam registrujeme zásah.
Cíl má funkci zabezpečenou proti selhání, pokud nezapadnete za X sekund (výchozí je 15 sekund) nebo pokud přenos nelze provést, vrátí se do výchozí polohy.
Nebudu vysvětlovat, jak budete drátovat, zkontrolujte elektrický list, abyste zjistili, jak to uděláte. Jedna věc, která na něm není, je baterie, vypínač a nabíječka. To je na vás, abyste se rozhodli, jak to chcete.
DŮLEŽITÉ INFORMACE O modulu NRF24L+:
Může to být bolest… aby byly stabilní, v kombinaci s dobrou silou a izolací kolem nich a kódem, který jim umožníte pracovat. Pro mě 10 uF kondenzátor mi poskytne stabilní a dobré připojení, ale zkuste nejprve zapsat třeba 100 uF kondenzátor. Také je zabalte nejprve plastovou fólií a poté hliníkovou fólií, abyste je chránili před rušením
Také v kódu není rychlost přenosu dat větší než 250 Kb, takže to nebude problém. Ale PA: myRadio.setPALevel (RF24_PA_MIN);
V kódu, který jsem nastavil na MIN (This is during test), je nejnižší a nespotřebuje tolik energie, ale dosah nebude tak dlouhý. Pokud k nim máte stabilní a dobrou energii, můžete jít až na RF24_PA_MAX, abyste získali nejdelší dosah, ALE k tomu potřebují stabilní výkon GOOOOOD. Zkuste také NÍZKÝ A VYSOKÝ (změňte pouze MAX text), abyste zjistili, zda se vám daří dobře komunikovat. Rovněž získáte dobrý dosah na NÍZKÉ a VYSOKÉ, pokud nebudete sniperem
Také udržujte vysílače alespoň jeden metr od sebe, zavření může způsobit špatný signál
Otestujte komunikaci s některým příkladem pingu v knihovně NRF24 (odkaz na GitHub)
V kódu musíte nastavit jedinečné identifikační číslo pro tento cíl:
int targID = 3401; // Toto je ID cíle
int sendID = 2401; // Toto je ID odpovědi
K dispozici jsou také 3 DEFINE funkce:
#define DEBUG
#definovat BATERII
#define SHAKE // POKUD SE POUŽÍVÁ SHAKE SWITCH MÍSTO STARÉHO PIEZO
LADIT:
Během testu je dobré to definovat. Když je ale zpřístupníte, neaktivujte je.
BATERIE:
Pokud nechcete mít pro cíle kontrolu baterie, musíte tuto definici odebrat.
OTŘÁST:
Pokud jste vytvořili moji starou verzi, máte piezo senzory, pak je odeberte, abyste pro ně získali správný kód.
Čip ATMEGA328
Namísto Arduino nano jsem se rozhodl použít čip ATMEGA328 (s zavaděčem Uno), jsou snadno programovatelné, stačí odebrat čip z Arduino Uno a přidat tento čip a nahrát kód. Podívejte se na elektrické schéma, jak stavět cíle.
Kód
Napsal jsem kód pomocí PlatformIO místo Arduino IDE. Je to lepší software pro programování. Kód je tedy trochu jiný. Doporučuji místo toho použít tento software.
Box terče a vysílače
Připojil jsem senzor a modrou diodu na cíl a pomocí 3,5mm phono kabelu na 2 m ho spojil dohromady v krabici vysílače, která drží čip atmega, nabíječku baterií a zelenou a červenou diodu. To je proto, aby bylo chráněno před zasažením ocelovými kulkami.
Krok 2: Herní ovladač
Další věc, kterou musíme udělat, je vytvořit ovladač pro senzory. Je to Arduino, které ke komunikaci se senzory využívá modul NRF24L01. Nic jiného. Arduino je pak připojeno pomocí USB v Raspberry Pi, aby fungovalo.
Takhle to bude fungovat. Pomocí sériového čísla ví, co má dělat. Pi odešle sériové příkazy. Nejprve během instalace odešle, kolik cílů jste přidali a identifikační čísla cílů. Poté provede testovací funkci a informuje malinový pi, pokud spolu komunikují.
Když hrajete hru, odešle vám z pi jaký typ hry a kolik kol/zásahů použijete. A je to.
V Raspberry Pi je možné použít moduly NRF24L01, ale pro mě je Arduino lepší volbou, protože je nikdy nepoužívám v malinách, takže nevím, jak dobře fungují dlouhodobě
Existuje napájecí modul, který pomocí 5 V zajišťuje správné stabilní napájení vysílačů. Můžete je použít s sebou Arduino (viz obrázek) název je Socket Adapter Module Board
Když budete hrát, cíle budou náhodně aktivovány jeden po druhém. Když je zasažen jeden, aktivuje se další.
Během testu můžete mít aktivovaný #DEFINE DEBUG, abyste viděli, jak to funguje, ale ne, když to používáte v počítači pi, pak to nebude fungovat.
Stáhněte si kód na stránce GitHub.
Krok 3: Raspberry Pi
Nyní jsme se dostali k Raspberry Pi.
Přidal jsem několik dalších funkcí, abych mohl mít tlačítko napájení. ATXRaspi 3 je skvělý modul, který můžete zapnout, vypnout a restartovat pi pomocí tlačítka. Také RTCRaspi pro udržení času a data na pí. Také to umožnilo jednoduše zapojit síťový kabel, protože potřebuji provést nějaké aktualizace v systému. Najdete je na Lowpowerlab
Termální tiskárna, kterou najdete na Sparkfunu a čtečka čárových kódů je k dispozici na Amazonu.
Počítač Pi běží v režimu kiosku, takže se prohlížeč otevře při startu. Nejprve musíte mít na počítači pi webový server s PHP 7 a mysql. (Na to je na webu spousta průvodců)
UPOZORNĚNÍ: Pokud budete používat termální tiskárnu s malinovým pi, která má vestavěný bluetooth, musíte ji nejprve deaktivovat
Skript python potřebuje pyserial a nainstalujete jej: sudo apt-get install python-serial
Aby mysql fungoval, nainstalujte následující:
sudo apt-get install mysql-python sudo apt-get install python-mysql.connector
suso apt-get install pymysql
Nyní můžete ovládat svůj Arduino prostřednictvím sériového připojení a také aktualizovat databázi mysql.
Dalším krokem je vytvoření skriptu pythonu pro připojení k mysql.
Ve všech třech skriptech pythonu změňte připojení k vaší databázi mysql.
Dalším krokem je spuštění skriptu pythonu na začátku.
Existují tři python script.game.py je nejdůležitější ze všech, z nichž jeden má funkci hry.print.py to je potřeba pouze v případě, že k tisku budete používat termální tiskárnu.ean.py je potřeba pouze pokud jste bude používat skener čárových kódů.
Abych je spustil automaticky, upravím:
sudo nano /etc/rc.local
a dole před ukončením 0 přidejte následující:
sudo python /home/pi/Gamefiles/game.py & sudo python /home/pi/Gamefiles/print.py & sudo python /home/pi/Gamefiles/ean.py &
Změňte prosím správné místo pro skript pythonu a nezapomeňte na konec & podepsat
Nyní musíme pro webový prohlížeč vytvořit kioskový režim, nejprve odeberte kurzor:
sudo apt-get install unclutter
sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
nyní v tomto souboru najděte a komentujte:
@xscreensaver -no -splash # zakažte tento řádek a deaktivujte spořič obrazovky
Níže přidáme:
@xset s vypnutý @xset -dpms @xset s noblank @chromium-browser --noerrdialogs --force-device-scale-factor = 1,25-kiosk https:// localhost
Dalším krokem k odstranění všech spouštěcích textů a věcí a přidání vlastní spouštěcí obrazovky je rychlý průvodce:
sudo nano /boot/config.txt a dole adddisable_splash = 1
Odstranit textovou zprávu pod úvodním obrázkem:
sudo nano /usr/share/plymouth/themes/pix/pix.script
Najděte a odeberte (nebo okomentujte):
message_sprite = Sprite (); message_sprite. SetPosition (šířka obrazovky * 0,1, výška obrazovky * 0,9, 10 000);
a:
my_image = Image. Text (text, 1, 1, 1); message_sprite. SetImage (my_image);
Nyní odstraníme zaváděcí zprávy:
sudo nano /boot/cmdline.txt
nahradit „console = tty1“za „console = tty3“
a na konec řádku přidejte:
úvodní tichý plymouth.ignore-serial-konzole logo.nologo vt.global_cursor_default = 0
A nahraďte pi splash svým vlastním:
sudo cp ~/my_splash-p.webp" />
Nyní máte svoji vlastní spouštěcí obrazovku vaší hry. Váš počítač pi je nyní připraven zvládnout hru. Přejděte tedy k dalšímu kroku!
Krok 4: Nastavení hry
V tuto chvíli jste hru vytvořili.
Nejprve musíte nastavit webbsystem. Nahrajte databázi na server mysql. Soubor je ve složce includes s názvem database.sql
Dalším krokem je úprava konfiguračního souboru, který najdete v zahrnutém názvu složky config.phpZměňte přihlašovací údaje k databázi, aby skript fungoval.
Webový systém je založen na více jazycích a je napsán v angličtině. K dispozici je překlad do švédštiny. Chcete -li rozšířit jazyk, potřebujete software s názvem Poedit.
Chcete -li do webového systému přidat další jazyk, musíte upravit i18n_setup.php a přidat pole:
return in_array ($ locale, ['en_US', 'sv_SE']); (Řádek 23)
Také pro změnu výchozího jazyka musíte změnit v řádku 27: $ lang = 'en_US'; změňte en_US na váš jazyk.
jazykové soubory musí být umístěny v národních prostředích/LANGCODE/LC_MESSAGES/a musí být pojmenovány main.mo (Změnit langcode na váš jazyk)
pro změnu klávesnice v souboru selectplayers.php změníte jazyk: "en", // en pro angličtinu sv pro švédské rozložení: 'qwerty', // qwerty pro angličtinu swedish-qwerty pro švédštinu
Najdete je na lince 218 a 219
Dostupné jazyky jsou ve složce: 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)
Přidejte cíle
Chcete -li přidat cíle, přejděte na localhost/ admin/ a klikněte na Přidat cíle.
Musíte přidat název cíle a jedinečné ID cíle a odeslat ID, přidat tolik cílů, jaké máte.
Přidejte hry
Musíte také přidat nějaké hry. Přejděte na localhost/ admin/ a klikněte na přidat hru
Musíte přidat název hry, popis, minimální a maximální počet hráčů, jaký typ hry, také jak těžká hra je mezi 1 a 5. A jak hra vypadá, takže pro hru rapidfire přidáte kolik zásahů (příklad 30) pro quickdraw kolik kol (například 8) a pro načasované, jak dlouho budou hrát (například 60 po dobu jedné minuty)
Spustit hru
Když hru zapnete, provede cílové testování. Cíle tedy musí být zapnuty, než spustíte hlavní systém. Pokud test projde všemi, můžete systém použít, ale pokud ne, nemůžete jej použít. Pokusí se komunikovat, dokud nedostanou odpověď.
Hodně štěstí
Tak to je asi vše, pro podporu a informace o aktualizaci v kódu prosím sledujte moji stránku na Facebooku pro tuto hru, abych vám mohl rychle odpovědět. Zde najdete odkazy nahoře.
Doporučuje:
Střílečka ARDUINO + SCRATCH: 6 kroků
Střílečka ARDUINO + SCRATCH: Zachraňte svůj dort !!! Je v nebezpečí. Přistupují k němu čtyři mouchy. Máte jen 30 sekund na to, abyste mouchy vystřelili a zachránili svůj dort
2D střílečka Scratch Game: 11 kroků
Scratch hra 2D Shooter: V tomto instruktážním návodu vám ukážu, jak vytvořit scratchovací hru 2D střílečky. Je to docela jednoduché, ale doufejme, že se naučíte některé věci na cestě a brzy si vytvoříte vlastní stírací hry
Punch Aktivovaná vodní střílečka: 5 kroků
Punch Activated Water Shooter: Pokud jste fanouškem jednoho kusu. Musíte znát Jinbe. Jinbe je postava ze série One Piece, kterou vytvořil Eiichiro Oda. Jinbe je mimořádně silný mistr Fishman Karate. Jednou z jeho technik je Five Thousand Brick Fist. To je
Ruční strunová střílečka: 5 kroků
Handheld String Shooter: Tento rychlý a zábavný projekt pohání strunu v nekonečné smyčce s ručním zařízením. Vyžaduje to několik 3D tištěných dílů, baterii, dva malé motory a vypínač
Jednoduchá a snadná webová střílečka Spider-Man: 12 kroků
Jednoduchý a snadný webový střelec Spider-Man: Viděli jste film o Spider-Manovi? Komiks Spider-Man? Něco, co vágně souvisí se Spider-Manem? Spider-Man je zdánlivě všude. Proč nevytvořit jednoduchou webovou střílečku? Po troše praxe jsem vytvořil design z domácích materiálů, který by se dal vytvořit