Vyhledat témata bez odpovědí | Zobrazit aktivní témata Právě je 21 říj 2019, 19:03




Odpovědět na téma  [ Příspěvků: 5 ] 
 Capture points (DOMINATION) - Arduino + WiFi 
Autor Zpráva
Desátník
Desátník

Registrován: 14 čer 2018, 11:18
Příspěvky: 5
Nový příspěvek Capture points (DOMINATION) - Arduino + WiFi
Airsoft je outdoor hra radiacia sa k extrémnym športom. Hra je veľmi populárna a tak si vyslúžila postupom času aj rôzne štýly hrania, teda herné módy. Väčšina z nich je postavená na populárnych FPS tituloch ako Counter Strike či Call of Duty. Od útočných a obranných módov až po Free-for-all. Jedným veľmi obľúbených módom je aj Capture points, respektíve DOMINATION. V tomto hernom móde ide o minimálne dve lokácie, o ktoré tímy bojujú.

Cieľom hry je obsadiť a udržať oba body jedným tímom. Body sú umiestnené v neutrálnej lokácii, napríklad na úrovni stredu mapy po stranách, alebo každý v sídle druhého tímu. Aby bola hra dostatočne rýchla, stačí ak tím obsadí oba body. Ak je zapísaný na oboch bodoch (nemusí ho udržať po x sekúnd), hra sa končí a tím vyhral. Aby som hru urobil zaujímavejšou, vyhotovil som takéto dva body.
Každý bod obsahoval po hardvérovej stránke:
    Arduino Nano/Uno
    buzzer (typu active/passive) pre ohlásenie konca hry
    wifi modul nRF24l01 + PA + LNA
    dvojica tlačidiel - pushbuttonov
    LED diódy s farbami tímov
    *doplnkové relé pre zopnutie silnejších svetiel na 12V/24V/230V]

Ako funguje systém po stránke funkčnosti?
Jedno tlačidlo je pre Tím 1 (žltý tím) a druhé pre Tím 2 (červený tím). Tím pri obsadení stlačí svoje tlačidlo, čo zmení farbu bodu podľa ich tímu. Ak jeden tím obsadí oba body, rozuzvučia sa hlásiče na oboch bodoch (hra sa skončí, alebo pokračuje ďalej podľa pravidiel organizátora akcie, napr. do posledného muža pre druhý bod za hru). Hra nie je časovo ohraničená limitom.

V reálnom čase medzi sebou obe Arduiná komunikujú s modulmi nRF24l01 + PA + LNA. Odozva medzi oboma Arduinami je na úrovni 1-5ms.Vďaka modulom nRF24l01 je možné komunikovať medzi Arduinami na obrovské vzdialenosti na stovky metrov v nezarušenom prostredí (nRF24l01 ponúka vyše 120 kanálov pre komunikáciu na 2,4Ghz.)

Pri využití externého 5v/3.3v zdroja je možné komunikovať až na 1,1 kilometra v nezarušenom prostredí najnižšou prenosou rýchlosťou (250kb/s). V programe pre Arduino sa určuje komunikačný kanál, výkon nRF modulu, prenosová rýchlosť (250kb/s až 2Mbps). Čím je vyššia rýchlosť zvolená, tým náchylnejší je systém na rušenie. V prostredí lesa sme s najnižšou prenosou rýchlosťou a maximálnym vysielacím výkonom dosiahli prenos na 310 metrov.

Princíp je teda veľmi jednoduchý a systém je možné rozšíriť o ďalšie nRF moduly. Jeden modul dokáže komunikovať až s ôsmymi modulmi, systém je teda možné rozšíriť až na 9 bodov, o ktoré sa bojuje. Najvyšší prenosový výkon nie je možné nastaviť pri napájaní z Arduina, nakoľko odber nRF prevyšuje prúdové charakteristiky regulátora. Využíva sa preto napájanie na 5-12V cez adaptér, do ktorého sa modul zasadí a má on-board regulátor na 3.3V.
Do modulu zapasuje aj modul nRF24l01 (bez PA + LNA). PA + LNA je označenie pre modul s anténou, ktorý je 10-12x lepší dosahovo ako pôvodný nRF24l01 modul. Pôvodný modul má maximálny dosah 100 metrov v nezarušenom prostredí s maximálnym výkonom. Modul nRF24l01 komunikuje po SPI zbernici a má voliteľné piny CE (Chip state) a CS (Chip select). Komunikácia je rýchla s nízkou latenciou. Tieto moduly vedia komunikovať iba medzi sebou, nie je ich možné použiť napríklad pre pripojenie k internetu a pod. Jedná sa výlučne o komunikačné moduly medzi sebou na frekvencii 2,4GHz. Hlavnou nevýhodou týchto modulov je vzdialenosť pinov od seba v oboch radoch, čo neumožňuje modul použiť do breadboardu. Preto sa pri vývoji bez adaptéra zrejme nezaobídete.

Pri použití hlásiča (buzzra) je možné generovať frekvenciu signálu, ktorú bude buzzer vydávať, minimum je 31Hz a možnosť je zvoliť až cez 65 5XXHz. Aktívne i pasívne buzzre k Arduinu znejú prakticky rovnako. Povedal by som, že aktívne sú o niečo hlasnejšie. Z vlastnej skúsenosti používam 800 - 4000Hz pre frekvenciu tónnov, čo sú tóny pomerne zreteľné a vhodné pre pípajúci zvuk, nie sú príliš otravné a je ich dobre počuť. Ovládať hlasitosť ako takú nie je u takýchto modulov možné. Pri nastavení novej hry je možné oba zariadenia odpojiť a pripojiť na batériu/adaptér, alebo obe zariadenia reštartovať tlačidlom pre premazanie uložených stavov tímov, aby hlásič ustal.

Ďalšie zaujímavé projekty vrátane stručných o tomto projekte je možné nájsť na mojom webe: https://arduino.php5.sk/airsoft-wifi.php

Riešenie používa vstavanú knižnicu SPI.h pre komunikáciu a knižnicu RF24.h pre nRF24l01 moduly. Je možné použiť i Radiohead knižnicu, ktorá ale neumožňuje regulovať vysielací výkon a voliť špecifické kanály, využíva tzv. pipes pre komunikačnú cestu, nie navolené číslo kanálu. Priložené zdrojové kódy môžete vyskúšať pre funkcionalitu spísanú vyššie a vyskúšať si takýto štýl hry. Pozor pri zapojení tlačidiel, používa sa zapojenie INPUT_PULLUP, teda tlačidlo je aktívne (stlačené) pri hodnote LOW - zem. Tento systém je vhodný pre športy typu Airsoft, Paintball, Nerf Wars. Vhodný pre tímy, športový areál a pod.


24 úno 2019, 12:43
Profil
Kapitán
Kapitán

Registrován: 11 bře 2012, 18:03
Příspěvky: 330
Nový příspěvek Re: Capture points (DOMINATION) - Arduino + WiFi
Vyzera to zaujimavo, ale nikde nevidim ake data medzi sebou zdielaju tie dominatory.


09 srp 2019, 21:39
Profil
Desátník
Desátník

Registrován: 14 čer 2018, 11:18
Příspěvky: 5
Nový příspěvek Re: Capture points (DOMINATION) - Arduino + WiFi
Posielajú si ich medzi sebou v reálnom čase.
Ak je na oboch rovnaké posledne stlačené tlačidlo, hra sa končí. Bez časového limitu. Pri ukončení hry sa rozpípajú hlásiče a pípajú až do fyzického resetu zariadenia/vytiahnutie a zapojenie napájania.


09 srp 2019, 21:42
Profil
Kapitán
Kapitán

Registrován: 11 bře 2012, 18:03
Příspěvky: 330
Nový příspěvek Re: Capture points (DOMINATION) - Arduino + WiFi
Planujes aj pridat nejake dlasie typy sprav?
Podla popisu to vyzera ze zariadenie sa neda pouzit na merania doby, kolko ktory tym drzal, ktory bod.


09 srp 2019, 22:02
Profil
Desátník
Desátník

Registrován: 14 čer 2018, 11:18
Příspěvky: 5
Nový příspěvek Re: Capture points (DOMINATION) - Arduino + WiFi
Áno, správne. Zariadenie čas nemeria. Iba oznamuje druhému bodu, aké tlačidlo bolo posledne stlačené. Pre čas mám zariadenie DOMINATOR, ktoré funguje ako každý bod zvlášť (nie je to WiFi). Založil som o tom druhý topic. Kde je aj video s funkčnosťou.


09 srp 2019, 22:42
Profil
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odpovědět na téma   [ Příspěvků: 5 ] 

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 5 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.  Designed by STSoftware for PTF.  Český překlad – phpBB.cz
Kontakt: info(zavinac)airsoft-forum.cz