Repozitár s projektom - schémami zapojenia, strojovými kódmi pre testovanie - Github: Airsoft - RFID DOMINATOR - Arduino
Pri záujme o firmvér pre konfigurovateľný DOMINATOR v strojovom kóde kontaktujte na:

martinius96@gmail.com

Arduino LCD Rotačný enkóder Stopky Schéma Tlačidlo Menu Paintball DOMINATOR

Konfigurovateľný DOMINATOR - stopky pre Airsoft | Paintball


Entity v projekte konfigurovateľný DOMINATOR:

Tím RED - tlačidlo pre používateľský vstup
Tím RED
Tím GRE - tlačidlo pre používateľský vstup
Tím GRE

Popis projektu konfigurovateľný DOMINATOR:


DOMINATOR je zariadenie - stopky pre športy typu Airsoft, Paintball, ktoré umožňujú merať čas obsadenia bodu s rozlíšením na sekundy. Stopky sú vybavené LCD znakovým displejom rozmeru 16x2 / 20x4. Po zapnutí zariadenia je možné na displeji prostredníctvom rotačného enkódera - KY-040 prepínať medzi položkami menu. Prostredníctvom položiek je možné spustiť herný režim DOMINATOR, ktorý reaguje na používateľské tlačidlá (vstupy), prípadne je možné pred hrou v konfigurovateľnom režime nastaviť čas obsadenia bodu tímom. Tento parameter reprezentuje potrebnú dĺžku držania stlačeného tlačidla, pokým tím úspešne bod obsadí. Tento konfigurovateľný parameter sa realizuje na počet sekúnd. Druhým konfigurovateľným parametrom je automatické ukončenie hry pre dosiahnutí určitého počtu hodín stopiek s možnosťou UNLIMITED - kedy stopky počítajú do nekonečna, respektíve po maximálny výpis času na displej - 99 hodín, 59 minút, 59 sekúnd. Stopky využívajú riadiaci mikrokontróler Arduino (Arduino Uno / Nano), prípadne samostatný čip (Atmel) AtMega328P, ktorý ovláda celú logiku systému. V hre sú 2 tímy - RED tím a GRE tím, ktoré proti sebe hrajú a zaberajú pomyselný bod, ktorý je tvorený týmto zariadením - DOMINATOR. Na začiatku hry sú na displeji vypísané časy 00 hodín, 00 minút, 00 sekúnd pre RED tím, GRE tím.


Tlačidlový DOMINATOR využíva tlačidlový vstup pre akciu obsadenia bodu členom tímu, rovnako aj pre vstup entity rozhodcu. Celkom sú v systéme Konfigurovateľný DOMINATOR použité 2 tlačidlá pre 3 entity systému. Využívajú sa spínacie tlačidlá zapojené v režime INPUT_PULLUP. Stlačením tlačidla sa privedie GND signál na vstupný digitálny vývod Arduina (Active-LOW spínací signál). Používajú sa spínacie tlačidlá, nie rozpínacie (nereagovali by na logiku systému, boli by vždy všetky softvérovo "stlačené"). Konfigurovateľný DOMINATOR reaguje na dĺžku stlačenia, ktorá sa nastavuje v konfiguračnom menu prostredníctvom enkóderu. Vyžaduje sa držanie tlačidla po danú dobu. Na krátke stlačenia systém nereaguje. V rozšírenej verzii je možné nastaviť aj neutralizáciu bodu (zastavenie času aktívneho tímu na bode, ak člen druhého tímu drží tlačidlo aspoň 50% potrebného času) Časy sú vypísané na LCD znakový displej rozmeru 16x2, prípadne 20x4, ktorý komunikuje s riadiacim mikrokontrolérom po I2C zbernici. Ak tím člen tímu RED obsadí bod stlačením tlačidla, spustí sa buzzer, ktorý krátkym pípnutím ohlási zmenu na bode. Následne sa rozsvieti LED dióda tímu RED na tomto stanovišti a na displeji sa začne pripočítavať čas pre tento tím.


V prípade, že bod obsadí tím GRE a člen tímu stlačí príslušné tlačidlo, opäť sa ozve buzzer, rozsvieti sa dióda tímu GRE, čas tímu RED sa pauzuje a počíta sa čas tímu GRE, ktorý bod obsadil. Rozhodca pre zastavenie oboch časov musí stlačiť obe tlačidlá súčasne. Časy sú zastavené, pokým nie je bod obsadený opäť niektorým z tímov, ktoré sú v systéme Tento typ vstupu je tak vhodný pre spustenie prestávky, ale môže taktiež ukončiť hru pre jej vyhodnotenie. Nová hra sa realizuje resetom celej dosky Arduino cez RST tlačidlo, prípadne odpojením a pripojením napájania. V menu je možné konfigurovať aj aktivitu / neaktivitu hlásiča - buzzera, ktorý je možné tiež do hry obsiahnuť. Režim hry DOMINATOR používa buzzer pre ohlásenie prebiehajúceho obsadenia bodu. Eraser v tomto type DOMINATOR-a neexistuje. V systéme môže byť implementovaná druhá hra - countdown, ktorá umožňuje nastaviť minútový odpočet, pokým musí byť zastavený. Hráč zastaví odpočet držaním oboch tlačidiel po určitú dobu (vychádza z konfiguračného menu pre dĺžku stlačenia z DOMINATOR-a).


Kompatibilný riadiaci hardvér - Konfigurovateľný DOMINATOR:


Riadiaci mikrokontróler Arduino Uno
Arduino Uno
Riadiaci mikrokontróler Arduino Nano
Arduino Nano
Riadiaci mikrokontróler AtMega328P DIP
AtMega328P - DIP28
Riadiaci mikrokontróler AtMega328P SMD
AtMega328P - SMD

Kompatibilné periférie - Konfigurovateľný DOMINATOR:


LCD znakový displej 16x2 / 20x4
LCD znakový displej 16x2 / 20x4
I2C prevodník pre LCD displej
I2C prevodník pre LCD displej
Rotačný 360° enkóder (KY-040)
Rotačný 360° enkóder (KY-040)
Hlásič
Hlásič
2x LED diódy
2x LED diódy
2x spínacie tlačidlo (pushbutton)
2x spínacie tlačidlo (pushbutton)

Schéma zapojenia - Konfigurovateľný DOMINATOR


Konfigurovateľný DOMINATOR - schéma zapojenia - Arduino / Airsoft, stopwatch, DOMINATION

Konfigurovateľný DOMINATOR za behu - testovanie


Konfigurovateľné stopky - Arduino pre Airsoft, Paintball

Tabuľkové zapojenie vývodov - Konfigurovateľný DOMINATOR - plne odpovedá schéme zapojenia:


Arduino Uno / Nano (AtMega328P) I2C prevodník pre LCD displej
GND GND
5V Vcc
A4 SDA
A5 SCL
Arduino Uno / Nano (AtMega328P) Rotačný enkóder - KY-040
GND GND
5V +
D3 CLK
D4 DT
D5 SW
Arduino Uno / Nano (AtMega328P) LED diódy
GND GND
D6 IN (RED)
D7 IN (GREEN)
Arduino Uno / Nano (AtMega328P) Tlačidlá (INPUT_PULLUP)
GND GND
D8 IN (RED)
D9 IN (GRE)
Arduino Uno / Nano (AtMega328P) Buzzer
D10 IO
GND GND

Testovací program (Shareware) - Konfigurovateľný DOMINATOR so strojovým kódom


K projektu Konfigurovateľný DOMINATOR je dostupná Shareware verzia (.hex). Verzia umožňuje merať maximálne 60 sekúnd pre každý tím. Po dosiahnutí tohto času sa stopky zastavia. Cieľom verzie je overiť kompatibilitu s vašim hardvérom. V Github repozitári sú dostupné strojové kódy na základe I2C adresy prevodníka pre LCD displej. Najpoužívanejšie adresy sú 0x27 a 0x3F. Ak neviete adresu vášho prevodníka využite vstavaný príklad v Arduino IDE --> I2C Scanner, ktorý vám adresu vypíše na UART rozhranie (Sériový monitor). Strojový kód je možné nahrať do mikrokontroléru Arduino Uno cez softvér AVRDUDE - súčasť Arduino IDE, prípadne s GUI rozhraním cez XLoader - ľahšie na použitie.

  • AVRDUDE je nutné spustiť cez CMD (príkazový riadok) je nainštalované s prostredím Arduino IDE. Nachádza sa v C:/Users/User/Documents/ArduinoData/packages/arduino/tools/avrdude/6.X.X-arduino/bin

  • Vzorový príkaz pre nahratie programu do Arduino Uno / Nano (AtMega328P):
  • Pre firmvér s I2C adresou displeja 0x27 (ukážkovo COM port 21 a 115200 baud/s): avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:encoder_0x27.ino.hex:i
  • Pre firmvér s I2C adresou displeja 0x3F (ukážkovo COM port 21 a 115200 baud/s): avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:encoder_0x3F.ino.hex:i
  • XLoader je Windows aplikácia (spusiteľný .exe nástroj) s jednoduchým grafickým rozhraním, ktoré umožňuje výber firmvéru - strojového kódu (.hex), cieľovej platformy a vie dynamicky ukázať COM port, na ktorom sa zariadenie nachádza.
  • Jednoduchým kliknutím na Upload je možné strojový kód automatizovane nahrať (XLoader využíva podobne ako Arduino IDE nástroj AVRDUDE). Okno XLoadera informuje o úspešnom uploade formou výpisu počtu uploadovaných bajtov.
  • Firmvér je možné stiahnuť nájsť v repozitári: TU. Firmvér je v priečinku Github repozitáru projektu /firmware/button_dominator/ rozdelený podľa adresy I2C prevodníka (zistili ste z I2C scanner výstupu na UART rozhranie). V prípade, že využívate Arduino Nano s OLD Bootloaderom, je nutné projekt nahrávať rýchlosťou 57600 baud/s, nakoľko baudrate 115200 nie je podporovaný!

    Dostupný firmvér - Konfigurovateľný tlačidlový DOMINATOR


    Názov firmvéru (v priečinku encoder_dominator) Určené pre Stiahnuť
    encoder_0x27.ino.hex LCD znakový displej rozmeru 16x2, alebo 20x4 s I2C prevodníkom, ktorý komunikuje na adrese 0x27 Stiahnuť firmvér
    encoder_0x3F.ino.hex LCD znakový displej rozmeru 16x2, alebo 20x4 s I2C prevodníkom, ktorý komunikuje na adrese 0x3F Stiahnuť firmvér