Repozitár projektu - Shareware firmware pre RFID Dominator: Firmware pre Airsoft Domination Timer
Ak máte záujem o plnú verziu projektu RFID DOMINATOR, kontaktujte autora projektu na:

martinius96@gmail.com

Hľadá sa Airsoftové ihrisko/športovisko s záujmom o pilotné mesačné testovanie prototypu RFID DOMINATOR (osadená DPS s hardvérom, 7 RFID kľúčeniek, 1 RFID karta - Eraser).
Arduino LCD RFID, NFC RC522 Stopky Schéma Airsoft Paintball DOMINATOR

RFID DOMINATOR 1.0 - stopky pre Airsoft | Paintball


Nová verzia projektu RFID DOMINATOR podporuje tieto typy firmvéru RFID čítačky NXP RC522:
  • Firmware verzia: 0x12 = falošný čip - (neoriginálny NXP čip, náhrada)
  • Firmware verzia: 0x91 = Verzia 1.0 - (originálny NXP Semiconductors čip)
  • Firmware verzia: 0x92 = Verzia 2.0 - (originálny NXP Semiconductors čip)

  • Entity v hre RFID DOMINATOR pre Airsoft:


    RFID náramok štandardu ISO/IEC 14443-A - Tím RED
    Tím RED
    RFID náramok štandardu ISO/IEC 14443-A - Tím GRE
    Tím GRE
    RFID náramok štandardu ISO/IEC 14443-A - Rozhodca
    Rozhodca
    RFID náramok štandardu ISO/IEC 14443-A - Eraser
    Eraser

    Popis projektu RFID DOMINATOR pre Airsoft:


    Stopky DOMINATOR (Domination Timer) sú navrhnuté pre 2 tímy, ktoré proti sebe hrajú a snažia sa o obsadenie bodu a jeho udržanie po čo najdlhšiu dobu. Stopky sú vhodné pre herný mód DOMINATION v Airsofte/Paintballe, resp. Capture Hill. Pozostávajú z mikrokontroléra ATmega328P (AVR), ktorý môže byť použitý samostatne alebo osadený na vývojovom kite Arduino (Uno/Nano/Pro Mini). Pre vizualizáciu času sa využíva LCD znakový displej (rozmer 16x2 alebo 20x4, čipset HD44780). Časy sú vypísané v dvoch riadkoch a dynamicky sa aktualizujú, ak je na bode aktívny tím (bod obsadený niektorým tímom). Stopky majú indikačné LED diódy vo farbách tímov, ktoré signalizujú aktívny tím na bode a hlásič, ktorý oznamuje priloženie karty (zmena na bode). Do hry sú implementované tímy - tím RED a tím GRE, ktoré proti sebe hrajú a snažia sa o obsadenie bodu a jeho následné udržanie po čo najdlhší čas. Na začiatku hry sú na displeji vypísané časy 00 hodín, 00 minút, 00 sekúnd pre tím RED, tím GRE. Každý z členov tímu je vybavený RFID čipom, ktorý je integrovaný v náramku (alebo v karte/kľúčenke). RFID čip vysiela svoj jedinečný identifikátor - UID (unique ID), ktorý je načítaný RFID čítačkou a overený v logike systému, ku ktorej entite (tímu) patrí. Jednotlivé náramky môžu byť farebne odlíšené (červené, zelené podľa tímu a funkcie entity), čo umožňuje rýchlejšiu distribúciu hráčom, ale aj ich archiváciu a uskladnenie podľa farieb. Tím RED obsadí bod v momente, keď člen tímu RED priloží svoju kartu k RFID čítačke. Táto akcia spustí bzučiak, ktorý ohlási zmenu na bode krátkym pípnutím. 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 do momentu priloženia karty člena tímu GRE, Rozhodcu, alebo Erasera. V prípade, že bod obsadí hráč tímu GRE a priloží kartu k RFID čítačke, túto zmenu ohlási bzučiak krátkym pípnutím, rozsvieti sa LED dióda tímu GRE (LED dióda tímu RED zhasne), aktuálny čas tímu RED sa zastaví a počíta sa čas tímu GRE, ktorý bod obsadil.


    Ak Rozhodca priloží svoju RFID kartu, bežiaci čas sa zastaví na aktuálnej hodnote. Bod sa stáva neutrálnym, LED dióda aktívneho tímu zhasne. Zastavenie času trvá do momentu, kým priloží svoju kartu člen tímu RED, alebo tímu GRE. Tento typ karty je tak vhodný pre dočasné zastavenie prebiehajúcej hry, kontrolu zásahu hráča, či zranenia. Zároveň môže byť karta použitá pri ukončení kola hry, pre vyhodnotenie kola, respawn tímov pred pokračovaním. Ak Eraser priloží svoju kartu, oba časy sa zastavia a zároveň sa vynulujú na počiatočnú hodnotu 00 hodín, 00 minút, 00 sekúnd, ktorá sa vypíše na displej. Karta Eraser slúži pre reštart hry, inicializáciu novej hry bez nutnosti power-on cyklu zariadenia. RFID čítačka reaguje na priloženie RFID karty okamžite vrátane celej logiky projektu Dominator. Projekt je vhodný pre Airsoft akcie (MilSim, LARP), športové areály, či Airsoft tímy, ktoré si môžu zariadenie Dominator zostrojiť s vlastným hardvérom. Firmvér je univerzálny, vychádza zo schémy zapojenia, a možno využiť aj dostupný DPS návrh pre výrobu dosky plošných spojov. Výhodou projektu RFID DOMINATOR je, že licencia používania oprávňuje prevádzkovateľa klonovať firmvér na ľubovoľný počet RFID DOMINATOR zariadení. DOMINATOR zariadenia fungujú nezávisle na sebe a reagujú na totožné RFID karty. Systém RFID Dominator je možné nasadiť do hry okamžite. Nahrávanie firmvéru trvá do 10 sekúnd cez grafické rozhranie programu XLoader, alebo cez nástroj AVRDUDE, ktorý je možné spustiť cez príkazový riadok/PowerShell.


    Výpis časov na LCD znakovom displeji 20x4:


    LCD character display 20x4 - Arduino Domination Timer - DOMINATOR

    Kompatibilný riadiaci hardvér pre RFID DOMINATOR:


    Riadiaci mikrokontróler Arduino Nano
    Arduino Nano
    Kúpiť Techfun.sk
    Riadiaci mikrokontróler ATmega328P DIP
    ATmega328P - DIP28
    Kúpiť Techfun.sk
    Riadiaci mikrokontróler ATmega328P SMD
    ATmega328P - SMD
    Kúpiť Techfun.sk

    Kompatibilné periférie pre RFID DOMINATOR:


    LCD znakový displej 16x2 / 20x4
    LCD I2C displej 16x2 / 20x4
    Kúpiť Techfun.sk
    RFID čítačka NXP RC522
    RFID čítačka NXP RC522 (13,56 MHz)
    Kúpiť Techfun.sk
    RFID čipy štandardu ISO/IEC 14443-A
    RFID čipy štandardu ISO/IEC 14443-A
    Kúpiť Techfun.sk
    2x LED diódy
    2x LED diódy
    Kúpiť Techfun.skk
    RFID DOMINATOR 1.0
    RFID DOMINATOR 2.0

    Princíp funkčnosti projetku RFID DOMINATOR po hardvérovej stránke:


    RFID čítačka NXP RC522 komunikuje s mikrokontrolérom (Arduino / samostatný čip ATmega328P) cez SPI zbernicu s hodinovým signálom (SCLK) 4 MHz. Čítačka NXP RC522 reaguje na RFID čip vo vzdialenosti približne 3 cm od antény a má konfigurovateľný zisk antény v rozsahu 18 až 48 dB (48 dB je použité vo finálnej aplikácii pre DOMINATOR). Pri detekcii RFID čipu načíta UID (identifikátor), ktorý prepošle Arduinu. Arduino následne porovná načítanú adresu karty v multipodmienke, spustí pípnutie bzučiaku a nastaví digitálne stavy na LED diódy. Logika systému sa vykonáva nezávisle od priloženia karty každých 1000 ms - 1 Hz rutina (časovaná cez funkciu millis(), t.j. cez Timer 0). V tejto rutine sa kontroluje aktívny tím a pripočítava sa čas. Čas sa dynamicky zobrazuje na LCD znakovom displeji 20x4 alebo 16x2, ktorý komunikuje s Arduinom cez I2C zbernicu s hodinovým signálom (SCL) 100 kHz - Standard Speed. Prepis displeja trvá približne 15 ms, a to len pre riadok daného aktívneho tímu na bode. Pri vážnom záujme sme pripravení vytvoriť firmvér v strojovom kóde pre ATmega328P alebo iný mikrokontrolér na mieru, prípadne pre iné typy RFID čítačiek ako RDM6300, PN532, Wiegand W26. Môžeme tiež zvýšiť hodinový signál I2C zbernice až na 400 kHz (Fast Speed). Existuje možnosť rozšírenia firmvéru pre hru DOMINATOR o podporu 3 alebo 4 tímov na základe dohody.

    RFID Dominator - hra pre 4 tímy
    Maximálny rozsah času, ktorý môže byť vypísaný na displej: 99 hodín, 59 minút a 59 sekúnd. - pri pretečení sa budú pozície času prepisovať nesprávne.
    Spotreba: cca 50 mAh pri 5V napájaní. Vhodné napájať cez powerbanku, nabíjačku od telefónu s USB výstupom.

    Určenie projektu RFID DOMINATOR:


    Projekt RFID DOMINATOR je z hľadiska svojej univerzálnosti vhodný pre implementáciu do hromadných akcií v Airsofte / Paintballe s možnosťou klonovania firmvéru. To umožňuje osadiť na herné pole X DOMINATOR bodov s identickým firmvérom, na ktoré môžu hráči používať rovnaké RFID karty. Klonované DOMINATOR body fungujú nezávisle na sebe a sú ideálne pre tímy, športové areály a ihriská, ktoré chcú rozšíriť svoje služby a ponúknuť rôzne herné módy pre rôzny počet hráčov. Ak sú RFID karty, náramky alebo kľúčenky farebne odlíšené, umožňuje to jednoduché a univerzálne distribuovanie hráčom podľa ich tímu a ľahké skladovanie. Samotný RFID čip je chránený v plastovom puzdre, odoláva blatu, špine, vode a mrazu. Je plne bezúdržbový a nemá vlastnú batériu - je pasívny. Nabíja ho RFID čítačka elektrickým poľom a umožňuje mu vyslať UID - identifikátor, ak je v dosahu RFID čítačky. DOMINATOR je vhodný pre herné módy s rovnakým počtom hráčov v oboch tímoch, napríklad DOMINATION, Capture Point (Points v prípade viacerých klonovaných DOMINATOR bodov). Jeho využitie je predovšetkým v športoch Airsoft a Paintball.


    Ukážka funkčnosti - RFID DOMINATOR:



    Doska Plošných Spojov - (DPS) - RFID DOMINATOR


    DPS návrh počíta s využitím dosky Arduino Nano
  • DPS je obojstranná s prekovmi, rozmery: 104x101 mm

  • Výroba DPS pre RFID DOMINATOR


    DPS návrh pre projekt RFID DOMINATOR (1.0) je k dispozícii vo formáte .lppz (LibrePCB). Archív môžete nahrať na webovú stránku nemeckej firmy AISLER, ktorá ponúka strojovú výrobu plošných spojov vrátane vŕtania a prekovenia otvorov. Štandardná cena výroby je 23€ za tri kusy, čo je minimálny odber (7€/kus). Cena zahŕňa poštovné a nízku prioritu doručenia do 3 týždňov od objednania. Na DPS sa odporúča využiť pin headre, aby bolo možné v prípade poruchy vymeniť hardvér bez nutnosti spájkovania. Dištančné stĺpiky je možné nahradiť aj závitovými tyčami. Pre projekt nie je navrhnutá špecifická krabička. DPS je možné umiestniť do existujúcej krabičky alebo ju pripevniť na stenu pomocou štyroch montážnych otvorov v rohoch DPS. Výrobu je možné uskutočniť aj u čínskych výrobcov ako JLCPCB alebo PCBWAY.

    DPS pre Airsoft DOMINATOR - AISLER Osadená DPS s komponentami pre RFID Dominator 1.0 Osadená DPS s komponentami pre RFID Dominator 2.0

    Pin headre v DPS návrhu:


  • 2x female pin-header 15-pin (pre Arduino Nano)
  • 1x female pin-header 8-pin (pre RFID čítačku NXP RC522)
  • 1x female 90° pin-header 4-pin (pre I2C prevodník LCD displeja 20x4)

  • Distančné stĺpiky v DPS návrhu:


  • 4x distančný stĺpik pre znakový LCD displej 20x4 (M3 15x6 mm), 4x skrutka M3, 4x matka M3
  • 2x distančný stĺpik pre RFID NXP RC522 (M3 15x6 mm), 2x skrutka M3, 2x matka M3
  • 2x montážne otvory (M3 skrutka / závitová tyč)

  • Rozmery súčiastok:


    PDF dokument s rozmermi súčiastok použitých pre osadenie na DPS je dostupný: TU

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


    Arduino Uno / Nano (ATmega328P) NXP RFID RC522
    GND GND
    3V3 3V3
    D9 RST
    D10 SDA (SS)
    D11 (Hardware MOSI) MOSI
    D12 (Hardware MISO) MISO
    D13 (Hardware SCK) SCK
    Arduino Uno / Nano (ATmega328P) I2C prevodník pre LCD displej
    GND GND
    5V Vcc
    A4 (Hardware SDA) SDA
    A5 (Hardware SCL) SCL
    Arduino Uno / Nano (ATmega328P) Hlásič (piezomenič)
    GND GND
    D5 IN
    Arduino Uno / Nano (ATmega328P) LED diódy
    GND GND
    D4 IN (RED)
    D3 IN (GREEN)

    Schéma zapojenia - RFID DOMINATOR:


    Airsoft Dominator RFID

    Testovací program (Shareware) - RFID DOMINATOR so strojovým kódom


    K projektu RFID DOMINATOR je dostupná Shareware verzia vo forme strojového kódu (.hex) pre mikrokontrolér Arduino (ATmega328P, t.j. Arduino Uno / Nano / Pro Mini). Verzia umožňuje pri spustení pred herným režimom zaznamenať celkom 4 ľubovoľné RFID karty. K jednej entite je vždy priradená jedna karta. Po priložení poslednej karty sa spustí herný režim DOMINATION so stopkami, umožňujúc hráčom vyskúšať hernú mechaniku a reakciu NXP RC522 čítačky na RFID karty s vizualizáciou času na displeji. Merať je možné maximálne 15 sekúnd hry pre každý tím s možnosťou jeho resetu kartou Eraser a opätovným meraním 15 sekúnd donekonečna. Cieľom verzie je overiť kompatibilitu s vašim hardvérom. Strojový kód je možné nahrať do mikrokontroléra Arduino Uno / Nano 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) a 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):
  • avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:sketch.ino.hex:i
  • XLoader je Windows aplikácia (spustiteľ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 Shareware verzie projektu RFID Dominator je možné stiahnuť z repozitáru: Firmvér dostupný TU. Firmvér je v priečinku Github repozitáru projektu /rfid_dominator/ rozdelený podľa adresy I2C prevodníka (zistili ste z I2C scanner výstupu na UART rozhranie). Nahrávanie programu trvá maximálne 10 sekúnd. Následne sa firmvér automaticky nabootuje a je ho možné vyskúšať. V prípade plnej verzie projektu RFID Dominator je ho možné prevádzkovať trvale bez obmedzení času a s väčším počtom RFID kariet.

    Dostupný firmvér (Shareware) - RFID DOMINATOR


    Názov firmvéru (v priečinku rfid_dominator) Funkčnosť Stiahnuť
    Shareware_RFID_DOMINATOR.hex Testovací firmvér projektu RFID Dominator, umožňuje merať čas 15 sekúnd pre každý tím. Určené pre LCD znakový displej rozmeru 16x2, alebo 20x4 s I2C prevodníkom Stiahnuť firmvér

    Ukážka funkčnosti - Shareware RFID DOMINATOR:


    RFID Dominator pre Airsoft / Paintball - shareware firmvér Arduino
    V prípade čínskych klonov Arduino Nano, ktoré majú "Old Bootloader" je nutné nahrávať firmvér rýchlosťou 57600 baud/s! Pri iných verziách s novším Bootloaderom 115200 baud/s.

    Program pre načítanie UID adries RFID kariet pre DOMINATOR


    Program slúži na načítanie identifikátorov (UID) RFID tagov, kariet, ktoré budú použité v programe pre RFID DOMINATOR - tento zdrojový kód nereprezentuje RFID DOMINATOR, ani jeho logiku!. Výpis UID RFID karty sa realizuje do sériového (UART) monitoru - použitá rýchlosť 9600 baud/s (znakov za sekundu). Výpis je vhodné ukladať a prepísať do prehľadného .xls (EXCEL) dokumentu, ktorý uľahčí správu priradených RFID kariet ku konkrétnym tímom a entitám pre finálnu aplikáciu RFID DOMINATOR, ktorej strojový kód je viazaný na dodané UID kariet.. Pre úspešné nahratie zdrojového kódu pre načítanie UID kariet je nutné importovať knižnicu MFRC522 do vášho prostredia Arduino IDE.


    Dostupné knižnice pre mikrokontroléry (Arduino)


    Archív knižnice (.zip) rozbaliť do C:/Používatelia/[Používateľ]/Dokumenty/Arduino/libraries
    Názov knižnice Funkcia knižnice Stiahnuť
    MFRC522

    Knižnica pre AVR mikrokontroléry (ATmega) Arduino Uno / Nano / Mega. Umožňuje komunikovať s RFID čítačkou NXP RC522 po SPI zbernici.

    Stiahnuť

    Príklad uložených UID RFID kariet - Excel dokument .xls:


    Fyzické UID RFID kariet uložené v prehľadnom Excel dokumente
    Programová implementácia - DOMINATION TIMER RFID
    Šablóna pre uloženie identifikátorov (UID) RFID kariet: On-line šablóna Google Tabuľky Offline šablóna .xlsx
    /*|-------------------------------------------------|*/
    /*|Title: Reading RFID cards UID (unique identifier)|*/
    /*|Compatible for Arduino Uno / Nano / ATmega328P   |*/
    /*|Author: Martin Chlebovec (martinius96@gmail.com) |*/
    /*|E-mail: martinius96@gmail.com                    |*/
    /*|Revision: 28. July 2022                          |*/
    /*|-------------------------------------------------|*/
    
    
    //Template for writing RFID codes for RFID DOMINATION TIMER - Google SpreadSheet: https://docs.google.com/spreadsheets/d/1EHpdJi8v84eJ-6ExEPT6JuPkxI9Tfbm8v85zGRFvJ1Q/edit?usp=sharing
    
    #include <SPI.h>
    #include <MFRC522.h>
    #define SS_PIN 10
    #define RST_PIN 9
    MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
    void setup() {
      Serial.begin(9600);
      Serial.println(F("Reading of RFID cards for RFID Domination Timer"));
      SPI.begin();
      rfid.PCD_Init(); // Init MFRC522
      rfid.PCD_SetAntennaGain(rfid.RxGain_max);
      rfid.PCD_DumpVersionToSerial(); //Write version of Firmware to UART
    }
    
    void loop() {
      if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
        dump_byte_array(rfid.uid.uidByte, rfid.uid.size);
        rfid.PICC_HaltA();
        rfid.PCD_StopCrypto1();
      }
    }
    
    void dump_byte_array(byte *buffer, byte bufferSize) {
      for (byte i = 0; i < bufferSize; i++) {
      }
      Serial.print(F("Detected UID (code) of RFID CARD: "));
      unsigned long code = 10000 * buffer[4] + 1000 * buffer[3] + 100 * buffer[2] + 10 * buffer[1] + buffer[0]; //finalny kod karty
      Serial.println(code);
    }
    

    Použitia výstupu programu do hlavnej RFID Dominator aplikácie:


    Zaznamenané UID RFID kariet pre RED, GRE, rozhodcu a erasera sú vložené do polí. Polia môžu byť ľahko škálovateľné pre rozšírenie počtu hráčov, rozhodcov... UID je potrebné dodať v .xls výstupe. Možno použiť verejnú šablónu pre Google Tabuľky vyššie nad zdrojovým kódom (ikona Google SpreadSheet).. Celé polia sú uložené do flash pamäte mikrokontroléru ako rad-only segmenty, teda polia nemusia bežať v RAM pamäti zaberať tak operačnú pamäť, ktorú DOMINATOR využíva pre plynulé počítanie časov. Zároveň sú polia nerozšíriteľné za behu programu. Ich nastavenie, veľkosť je fixné pre konkrétnu aplikáciu na mieru. Štandardný program RFID DOMINATOR-a pre 10x UID pre RED i GRE tím a 2x UID pre Rozhodcu a Erasera (celkovo 24x UID) zaberá 9512 bajtov flash pamäte, t.j. 30% a 501 bajtov pamäte RAM, t.j. 24%. Statické reťazce (const) premenné uložené do PROGMEM - flash pamäte mikrokontroléra. Pre statické výpisy na UART monitor, prípadne na LCD znakový displej použité F makro.