Repozitár s projektom - schémami zapojenia, strojovými kódmi pre testovanie - Github: Airsoft - RFID DOMINATOR - Arduino
Pri záujme o kúpu firmvéru pre RFID DOMINATOR (dodáva sa v strojovom kóde) kontaktujte na:

martinius96@gmail.com

Arduino LCD RFID, NFC RC522 Stopwatch Schematics Airsoft Paintball DOMINATOR

RFID DOMINATOR - stopky pre Airsoft | Paintball


Pozor na RFID čítačky RC522 s falošným (neoriginálnym NXP RC522) čipom! - V projekte na UART hlási: Firmware version: 0x12 - counterfeit chip. Projekt s falošným čipom nefuinguje. Testované a funkčné s NXP RFID čítačkou RC522, ktorá hlási verziu firmvéru: Firmware version 0x92 (Version 2.0).

Entity v projekte RFID DOMINATOR:

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:

DOMINATOR je zariadenie - stopky pre športy typu Airsoft, Paintball. Stopky využívajú riadiaci mikrokontróler Arduino (Arduino Uno / Nano), prípadne samostatný čip (Atmel) AtMega328P, ktorý ovláda celú logiku systému. Súčasťou stopiek je LCD znakový displej rozmeru 16x2 (16 znakov x 2 riadky), respektíve 20x4, na ktorom sa vyobrazujú časy jednotlivých tímov. 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. Každý z členov tímu je vybavený kartou, náramkom, prípadne kľúčenkou, ktorá komunikuje na frekvencii 13.56MHz s RFID čítačkou, ak je v jej dosahu. Kľúčenky a náramky môžu byť farebné odlíšené (zelené, červené podľa tímu a funkcie...), čo umožňuje ich efektívnejšiu distribúciu hráčom, ale aj ich archiváciu a uskladnenie. Ak tím RED obsadí bod, hráč tímu priloží svoju kartu k čítačke, čím bod obsadí. Táto akcia spustí buzzer, ktorý 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 kartu priloží k čítačke člen tohto tímu, opäť sa ozve buzzer, rozsvieti sa dióda tohto tímu, čas tímu RED sa pauzuje a počíta sa čas tímu GRE, ktorý bod obsadil. Ak kartu / kľúčenku priloží organizátor (rozhodca), oba časy sa zapauzujú až do momentu, kým nepriloží kartu niektorý z tímov. Tento typ karty je tak vhodný pre spustenie prestávky, ale môže byť využitá aj pri ukončení hry, kedy je nutné čas zastaviť pre vyhodnotenie hry. V systéme DOMINATOR ešte existuje štvrtý typ karty - eraser, ktorá oba časy zapauzuje a vynuluje na počiatočné hodnoty ako po spustení stopiek DOMINATOR. Slúži pre reštart hry, inicializáciu novej hry. Projekt je vhodný pre Airsoft akcie, športové areály, čí Airsoft tímy, ktoré si môžu dané zariadenie zostrojiť. Výhodou DOMINATOR systému je, že systém je možné klonovať a vytvoriť si X bodov s totožnou konfiguráciou prostredníctvom strojového kódu o ktoré sa v hre môže nezávisle na sebe bojovať, pričom dané RFID karty budú plne fungovať na všetky zariadenia DOMINATOR. Systém je otestovaný, funkčný, ľahko udržiavateľný. Čítačka NXP RC522 pracuje na frekvencii 13.56MHz, RFID tagy registruje na cca 3 centimetre (nutný skoro až fyzický dotyk s čítačkou), kompatibilný formát tagov ISO/IEC 14443-A. Pod danú normu tagov spadajú aj ISIC, autobusové karty, ktoré fungujú ako NFC karty a dokážu oznámiť svoju fyzickú adresu - UID čítačke v dosahu.

Hardvér pre projekt - RFID DOMINATOR:

  • Arduino Uno/NanoArduino Uno/Nano
  • LCD znakový displej 20x4LCD znakový displej 20x4
  • I2C prevodník pre LCD displejLCD znakový displej 20x4
  • RFID čítačka RC522 (13.56MHz)RFID čítačka RC522
  • Kľúčenky/karty/náramky štandardu ISO/IEC 14443-AKľúčenky, karty, náramky na 13.56MHz štandardu ISO/IEC 14443-A
  • Hlásič (pasívny buzzer)Hlásič priloženia karty
  • 2x LED diódyLED diódy - indikátor aktívneho tímu na bode
  • RFID DOMINATOR - štart hry - počiatočný stav:

    RFID DOMINATOR - DOMINATION TIMER - Štart hry - počiatočný stav

    RFID DOMINATOR - počas hry:

    RFID DOMINATOR - DOMINATION TIMER

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

  • RFID čítačka RC522 komunikuje s Arduinom po SPI zbernici. Načítava UID (identifikátor) RFID kariet v dosahu, preposiela tento identifikátor Arduinu, ktorý vykoná programovú logiku. Čítačka reaguje na vzdialenosť čipu cca 3cm od antény.
  • Arduino načítanú adresu karty porovná v multipodmienke, aplikuje digitálne stavy na diódy, beží na ňom univerzálne počítadlo každých 100ms (počíta po desatinách sekundy), riadi počítanie oboch časov.
  • Čas je posielaný po I2C zbernici na znakový displej 20x4, kde je vykreslený. Výpis na displej trvá do 30ms pri rýchlosti I2C zbernice 100 kHz - Standard speed.
  • Maximálny rozsah času, ktorý môže byť vypísaný v systéme: 99 hodín, 59 minút a 59 sekúnd
    Spotreba: cca 110mAh 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 jeho univerzálnosti vhodný pre implementáciu do Airsoft akcií a s možnosťou klonovania firmvéru je možné do herného poľa osadiť X DOMINATOR-ov o ktoré sa môže hrať s totožnými RFID čipmi. DOMINATOR sa hodí aj pre tímy, športové areály, ktoré tak môžu týmto zariadením rozšíriť ponúkané herné módy pre jednotlivé hry. Ak sú RFID karty, náramky, respektíve kľúčenky farebne odlíšené, je veľmi ľahké a univerzálne ich distribuovať hráčom na základe ich tímu. Jednoduchá je aj ich archivácia. Použitie kariet, náramkov, respektíve kľúčeniek je ľahké a zvládnu to všetky vekové kategórie. Samotný RFID čip je chránený v plastovom puzdre, nevadí mu špina, voda, nevyžaduje údržbu. Nemá batériu, čip aktivuje RFID čítačka, ktorá ho elektrickým poľom, ktoré vysiela nabije. DOMINATOR je vhodný pre herné módy s rovnakým počtom hráčov v oboch tímoch, napr. DOMINATION, Capture Point (môže byť použitých aj viac DOMINATOR-ov v hre). Využitie je predovšetkým pre športy Airsoft, Paintball hry, avšak DOMINATOR je možné použiť aj pre iné športové aktivity, kde nájde uplatnenie (člnkový beh, orientačný beh a iné..).


    Ukážka funkčnosti - RFID DOMINATOR:



    Doska plošných spojov - (DPS) - RFID DOMINATOR - GERBER / výroba fotocestou


    DPS návrh počíta s využitím dosky Arduino Nano
  • DPS je obojstranná s prekovmi, rozmery: 100x105mm
  • Výroba DPS v Číne

    DPS je možné nechať si vyrobiť na Slovensku u PB Spoj, alebo aj v Číne - strojovou výrobou z GERBER súborov. Jeden z najpopulárnejších a najlacnejších výrobcov je: JLCPCB. GERBER súbory je možné rovno nahrať ako archív, pričom sa DPS vizualizuje, automaticky sa nastavia vrsty, ktoré zaznamená, nastaví rozmery DPS. Výroba trvá 1-2 dni. Kedysi sa tento výrobca preslávil akciou výroby 10 kusov PCB za 2 doláre. Dnes JLCPCB umožňuje vyrobiť 5 kusov tejto DPS pre RFID DOMINATOR za 6.96€, 10 kusov za 10.16€. Preprava - dostupná najlacnejšia alternatíva za 7.44€ až po DHL s doručením do 3-5 pracovných dní, pričom cena prepravy je 23.16€. JLCPCB automaticky aplikuje zľavový kupón na 8€ pre prepravu, ktorý vám pridelí po registrácii. Teda s najlacnejšou prepravnou alternatívou s doručením do 25 dní je táto preprava pri prvom nákupe zdarma. Taktiež je možné využiť aj iných dostupných výrobcov, napríklad: PCBWay, AllPCB, NextPCB, SeeedStudio, ktorí majú technológiu pre výrobu DPS strojovou metódou z GERBER súborov.

    DPS pre Airsoft DOMINATOR - JLCPCB

    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 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 (Ø max 2.5 mm)
  • 2x distančný stĺpik pre RFID RC522 (Ø max 3.5 mm)
  • Rozmery súčiastok:

    PDF dokument s rozmermi súčiastok je dostupný: TU
    RFID DOMINATOR - DOSKA PLOŠNÝCH SPOJOV - DPS - PCB - RC522, Arduino - Nano, buzzer, LED, stopky, stopwatch
    RFID DOMINATOR - DOSKA PLOŠNÝCH SPOJOV - DPS - Výroba fotocestou

    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 MOSI
    D12 MISO
    D13 SCK
    Arduino Uno / Nano (AtMega328P) I2C prevodník pre LCD displej
    GND GND
    5V Vcc
    A4 SDA
    A5 SCL
    Arduino Uno / Nano (AtMega328P) Buzzer (hlásič)
    GND GND
    5V Vcc
    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

    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!
  • Výpis adresy karty sa realizuje do sériového (UART) monitoru - použitá rýchlosť 9600 baud/s.
  • 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 úspešné nahratie zdrojového kódu pre načítanie UID kariet je nutné importovať knižnicu MFRC522 do vášho prostredia Arduino IDE. Stiahnite si repozitár projektu RFID DOMINATOR (odkazuje naň prvý odkaz na vrchu stránky), obsah zložky /src/ (priečinok MFRC522) nakopírujte do priečinka /Arduino/libraries/ (cesta k zložke závisí od toho, kde máte v systéme Arduino IDE nainštalované), najčastejšie v Dokumentoch / Program Files u starších operačných systémov Windows.

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

    Fyzické UID RFID kariet uložené v prehľadnom Excel dokumente

    Výstup programu na UART rozhranie:

    Výpis UID RFID tagu, karty na UART rozhranie s vypísaním typu karty

    Programová implementácia pre RFID DOMINATOR:

  • Dáta o UID pre RED, GRE, rozhodcu a erasera vložené do polí, ktoré môžu byť ľahko škálovateľné pre rozšírenie počtu hráčov
  • Programová implementácia - DOMINATION TIMER RFID
    /*|-------------------------------------------------|*/
    /*|Názov: Načítanie UID RFID kariet                 |*/
    /*|Popis: Načíta prostredníctvom RFID čítačky RC522 |*/
    /*|adresu RFID karty, ktorá je priložená a vypíše   |*/
    /*|UID na UART rozhranie.                           |*/
    /*|Zaznamenané UID kariet sa použijú v DOMINATOR-e  |*/
    /*|Autor: Martin Chlebovec                          |*/
    /*|E-mail: martinius96@gmail.com                    |*/
    /*|Licencia pouzitia: MIT                           |*/
    /*|Revízia: 12. Marec 2021                          |*/
    /*|-------------------------------------------------|*/
    
    #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);
      while (!Serial);
      SPI.begin();
      rfid.PCD_Init(); // Init MFRC522
      rfid.PCD_SetAntennaGain(112); // set to max (00001110)
      rfid.PCD_DumpVersionToSerial();
    }
    
    void loop() {
      if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
        Serial.print(F("Card UID: "));
        dump_byte_array(rfid.uid.uidByte, rfid.uid.size);
        Serial.println();
        Serial.print(F("PICC type: "));
        MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
        Serial.println(rfid.PICC_GetTypeName(piccType));
        rfid.PICC_HaltA();
        rfid.PCD_StopCrypto1();
      }
    
    }
    
    void dump_byte_array(byte *buffer, byte bufferSize) {
      for (byte i = 0; i < bufferSize; i++) {
      }
      Serial.print("Nacitany kod: ");
      unsigned long kod = 10000 * buffer[4] + 1000 * buffer[3] + 100 * buffer[2] + 10 * buffer[1] + buffer[0]; //finalny kod karty
      Serial.println(kod);
    }
    

    I2C Scanner - program pre načítanie adresy I2C prevodníka pre LCD displej


    Očakávaný výstup programu I2C Scanner:

    Výpis I2C adresy, na ktorej komunikuje I2C prevodník pre displej 16x2 / 20x4
    Knižnica Wire je vstavaná do Arduino IDE, nie je nutná jej inštalácia. Program je možné ihneď nahrať. Je vhodné ešte pred začiatkom spustenia programu pripojiť hardvér - I2C prevodník pre displej 16x2 / 20x4, stačí aj bez displeja.
    #include <Wire.h>
     
     
    void setup()
    {
      Wire.begin();
     
      Serial.begin(9600);
      while (!Serial);             // Leonardo: wait for serial monitor
      Serial.println("\nI2C Scanner");
    }
     
     
    void loop()
    {
      byte error, address;
      int nDevices;
     
      Serial.println("Scanning...");
     
      nDevices = 0;
      for(address = 1; address < 127; address++ )
      {
        // The i2c_scanner uses the return value of
        // the Write.endTransmisstion to see if
        // a device did acknowledge to the address.
        Wire.beginTransmission(address);
        error = Wire.endTransmission();
     
        if (error == 0)
        {
          Serial.print("I2C device found at address 0x");
          if (address < 16)
            Serial.print("0");
          Serial.print(address,HEX);
          Serial.println("  !");
     
          nDevices++;
        }
        else if (error==4)
        {
          Serial.print("Unknown error at address 0x");
          if (address < 16)
            Serial.print("0");
          Serial.println(address,HEX);
        }    
      }
      if (nDevices == 0)
        Serial.println("No I2C devices found\n");
      else
        Serial.println("done\n");
     
      delay(5000);           // wait 5 seconds for next scan
    }
    
    Získejte registraci domén s tld .online, .space, .store, .tech zdarma!
    Stačí si k jedné z těchto domén vybrat hosting Plus nebo Mega a registraci domény od nás dostanete za 0 Kč!
    Objednat