Repository con progetto - schemi elettrici, codici macchina per test - Github: Airsoft - RFID DOMINATOR - Arduino
Per acquistare il software DOMINATOR, contatta: martinius96@gmail.com in inglese
Arduino LCD RFID, NFC RC522 Stopwatch Schematics Airsoft Paintball DOMINATOR

RFID DOMINATOR - cronometro per Airsoft | Paintball


La nuova versione del progetto RFID DOMINATOR (Domination Timer) supporta questi tipi di firmware lettori RFID NXP RC522:
  • Firmware version: 0x12 = counterfeit chip - (chip NXP non originale, sostituzione)
  • Firmware version: 0x91 = Version 1.0 - (chip NXP originale)
  • Firmware version: 0x92 = Version 2.0 - (chip NXP originale)
  • Entità nel progetto RFID DOMINATOR:

    Braccialetto ISO / IEC 14443-A RFID - squadra RED
    Squadra RED
    Braccialetto ISO / IEC 14443-A RFID - team GRE
    Squadra GRE
    Braccialetto ISO / IEC 14443-A RFID - Arbitro
    Arbitro
    Braccialetto ISO / IEC 14443-A RFID - Gomma
    Eraser

    Descrizione del progetto:

    DOMINATOR (Domination Timer) è un dispositivo: un cronometro per sport softair, Paintball con un microcontrollore Arduino (Uno / Nano) con un chip AVR AtMega328P. Il cronometro include un display LCD a caratteri di misura 16x2 (16 caratteri x 2 righe), o 20x4, sul quale vengono visualizzati i tempi delle singole squadre. Ci sono 2 squadre nel gioco: squadra ROSSA e squadra GRE che giocano uno contro l'altro e occupano il punto immaginario che è formato da questo dispositivo - DOMINATOR. All'inizio del gioco, il display mostra i tempi 00 ore, 00 minuti, 00 secondi per squadra ROSSA , Squadra GRE . Ogni membro del team è dotato di una tessera, braccialetto o portachiavi, che comunica sulla frequenza 13,56 MHz con un lettore RFID, se rientra nel suo raggio d'azione. Portachiavi e braccialetti possono essere codificati a colori (verde, rosso in base alla squadra e alla funzione ...), che consente di distribuirli in modo più efficiente ai giocatori, ma anche di archiviarli e conservarli. Se la squadra ROSSA occupa un punto, il giocatore della squadra attacca la sua tessera al lettore, occupando così il punto. Questa azione attiva un cicalino che annuncia un cambiamento nel punto. Quindi il LED della squadra ROSSA in questa stazione si accenderà e il display inizierà ad aggiungere il tempo per quella squadra. Se una squadra GRE occupa un punto e un membro di quella squadra attacca la tessera al lettore, il cicalino suona di nuovo, il LED di questa squadra si accende, il tempo della squadra RED viene messo in pausa e il tempo della squadra conta. GRE, che ha occupato il punto. Se la tessera/portachiavi è attaccata dall'organizzatore (arbitro), entrambi i tempi vengono sospesi fino a quando una delle squadre non inserisce la tessera. Questo tipo di carta è quindi adatto per iniziare una pausa, ma può essere utilizzato anche a fine partita, quando è necessario fermare il tempo per valutare la partita. Se viene inserita una scheda Eraser, entrambi i tempi vengono fermati e riportati al valore iniziale di 00 ore, 00 minuti, 00 secondi, che viene visualizzato. La scheda Eraser viene utilizzata per riavviare il gioco, inizializzare un nuovo gioco senza la necessità di un ciclo di accensione. Il progetto è adatto per eventi di softair, impianti sportivi o team di softair, che possono costruire un determinato dispositivo Dominator con firmware funzionale per il quale esiste uno schema elettrico e un design PCB per la produzione di macchine con perforazione. Il vantaggio del progetto RFID DOMINATOR è che la licenza permette di clonare e creare X punti con la stessa configurazione tramite codice macchina. È così possibile inserire nel gioco un numero qualsiasi di punti RFID DOMINATOR funzionanti in modo indipendente, che reagiscono a carte RFID identiche. Il sistema è testato, funzionante, può essere rapidamente distribuito su hardware compatibile. Il lettore NXP RC522 funziona a una frequenza di 13,56 MHz, registra tag RFID a circa 3 centimetri (è richiesto un contatto quasi fisico con il lettore), formato tag compatibile ISO/IEC 14443-A (MIFARE CLASSIC 1K, DesFire EV1, retrocompatibilità con ISO/IEC 14443-4). Lo standard di tag dato include anche ISIC, schede bus che funzionano come schede NFC e possono comunicare il loro indirizzo fisico - UID a un lettore nel raggio d'azione.


    Elenco dei tempi sul display a caratteri LCD 20x4:


    LCD character display 20x4 - Arduino Domination Timer - DOMINATOR

    Hardware di controllo compatibile per RFID 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 pre RFID DOMINATOR:


    LCD znakový displej 16x2 / 20x4
    Display a caratteri LCD 16x2 / 20x4
    I2C prevodník pre LCD displej
    Convertitore I2C per display LCD
    RFID čítačka NXP RC522
    Lettore RFID NXP RC522
    RFID čipy štandardu ISO/IEC 14443-A
    Chip RFID dello standard ISO/IEC 14443-A
    Hlásič
    Cicalino
    2x LED diódy
    2x LED
    RFID DOMINATOR - DOMINATION TIMER

    Il principio di funzionalità del progetto RFID DOMINATOR in termini di hardware:


    Il lettore RFID NXP RC522 comunica con il microcontrollore (Arduino / chip AtMega328P autonomo) tramite il bus SPI con un segnale di clock (CLK) di 4 MHz. Il lettore risponde alla distanza del chip di circa 3 cm dall'antenna, mentre ha un guadagno configurabile dell'antenna nell'intervallo da 18 a 48 dB (48 dB viene utilizzato nell'applicazione finale). Legge l'UID (identificatore) delle carte RFID nel raggio d'azione, inoltra questo identificatore ad Arduino. Arduino confronta l'indirizzo della scheda letta in una multi-condizione, applica stati digitali ai diodi, esegue un contatore universale controllato dalla funzione millis(), che è responsabile del conteggio di entrambe le volte. In base alla condizione soddisfatta, il contatore verrà applicato alla data squadra a cui appartiene l'UID. Il tempo viene inviato tramite il bus I2C al display a caratteri 20x4, dove viene tracciato su una riga specifica - solo la posizione specifica viene sovrascritta per il recupero del tempo più veloce possibile. L'elenco di tutte le regolazioni del display richiede fino a 30 ms alla velocità del bus I2C di 100 kHz - velocità standard, che viene utilizzata. In caso di serio interesse è possibile creare firmware in codice macchina per AtMega328P da misurare per altri tipi di lettori RFID: RDM6300, PN532, Wiegand W26, incremento segnale clock bus I2C fino a 400 kHz (Fast Speed).

    Intervallo di tempo massimo che può essere elencato nel sistema: 99 ore, 59 minuti e 59 secondi
    Consumo: circa 110 mAh con alimentazione 5V. Comodo da alimentare tramite power bank, caricatore da un telefono con uscita USB.

    Per specificare un progetto RFID DOMINATOR:

    Il progetto RFID DOMINATOR è, in termini di versatilità, adatto per l'implementazione in azioni Airsoft, e con la possibilità di clonare il firmware, è possibile installare X punti DOMINATOR nel campo di gioco con firmware identico, che i giocatori possono giocare con il stesse carte RFID. DOMINATOR è adatto anche a squadre, campi sportivi e playground, che possono utilizzare questo dispositivo per ampliare i servizi e le modalità di gioco offerte per diversi numeri di giocatori. Se le carte RFID, i braccialetti o i portachiavi sono codificati a colori, è molto facile e distribuito universalmente ai giocatori in base alla loro squadra. Anche la loro archiviazione è semplice. L'uso di carte, braccialetti o portachiavi è facile e può gestire tutte le età nei giochi Airsoft. Il chip RFID stesso è protetto in una custodia di plastica, non si preoccupa di sporco, acqua, è completamente esente da manutenzione. Non ha batteria, il chip attiva il lettore RFID, che lo carica con il campo elettromagnetico trasmesso e gli consente di inviare un UID se si trova nel raggio del lettore RFID. DOMINATOR è adatto per modalità di gioco con lo stesso numero di giocatori in entrambe le squadre, ad es. DOMINAZIONE, Punto di cattura (Punti per più punti DOMINATOR clonati). Viene utilizzato principalmente per gli sport di Airsoft, i giochi di Paintball.


    Dimostrazione di funzionalità - RFID DOMINATOR:



    Scheda a circuito stampato - (SCS) - RFID DOMINATOR - GERBER / produzione per percorso fotografico


    La progettazione del PCB prevede l'utilizzo di una scheda Arduino Nano
  • PCB è a doppia faccia con sovrapposizioni, dimensioni: 100x105mm

  • Produzione PCB per RFID DOMINATOR in Cina / Slovacchia, Germania


    I PCB possono essere realizzati in Slovacchia presso PB Spoj , dove possono produrre PCB a doppia faccia. La produzione può essere realizzata, ad esempio, in Cina, dove possono produrre PCB a doppia faccia dal design GERBER. Uno dei produttori più popolari ed economici è JLCPCB, dove i file GERBER possono essere caricati direttamente come archivio .zip. Il PCB viene visualizzato, gli strati, le dimensioni del PCB, il PCB a doppia faccia vengono impostati automaticamente. La produzione richiede 1-2 giorni. Questo produttore era famoso per l'azione di produrre 10 pezzi di PCB per $ 2. Oggi JLCPCB ti permette di produrre 5 pezzi di questo PCB per RFID DOMINATOR a 6,96 €, 10 pezzi a 10,16 € (attualmente a partire da gennaio 2021, i prezzi sono in aumento). Trasporto - l'alternativa più economica è disponibile a 7,44 € fino a DHL con consegna in 3-5 giorni lavorativi, mentre il costo del trasporto è di 23,16 €. JLCPCB applicherà automaticamente un buono sconto di 8€ per la spedizione, che ti verrà assegnato dopo la registrazione. Pertanto, con l'alternativa di spedizione più economica con consegna entro 25 giorni, questa spedizione è gratuita con il coupon sul primo acquisto. Un interessante produttore di PCB è anche AISLER, che offre la produzione di PCB da 3 pezzi con un prezzo di circa 7,6 € al pezzo con spedizione gratuita, oppure offre anche la possibilità di consegna a un costo aggiuntivo tramite UPS. È anche possibile utilizzare altri produttori disponibili, ad esempio: PCBWay, AllPCB, NextPCB, SeeedStudio, che dispongono della tecnologia per la produzione di PCB con metodo macchina da file GERBER.

    DPS pre Airsoft DOMINATOR - JLCPCB

    Intestazione pin nella progettazione PCB:

  • 2x pin header femmina a 15 pin (per Arduino Nano)
  • 1x connettore femmina a 8 pin (per lettore RFID RC522)
  • 1x connettore femmina a 90 ° a 4 pin (per convertitore display LCD I2C 20x4)
  • Distanziatori nel PCB di progettazione:

  • 4x spaziatori per display LCD a caratteri 20x4 (Ø max 2,5 mm)
  • 2x distanziali per RFID RC522 (Ø max 3,5 mm)
  • Dimensioni della parte:

    È disponibile un documento PDF con le dimensioni della parte: Qui
    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

    Tabella di collegamento dei terminali - RFID DOMINATOR - corrisponde pienamente allo schema elettrico:

    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) Convertitore I2C per display LCD
    GND GND
    5V Vcc
    A4 SDA
    A5 SCL
    Arduino Uno / Nano (AtMega328P) Cicalino
    GND GND
    5V Vcc
    D5 IN
    Arduino Uno / Nano (AtMega328P) LED
    GND GND
    D4 IN (RED)
    D3 IN (GREEN)

    Schema elettrico - RFID DOMINATOR:


    Airsoft Dominator RFID

    Programma per il recupero dell'UID degli indirizzi delle carte RFID per DOMINATOR


  • Il programma viene utilizzato per recuperare gli identificatori (UID) di tag RFID, carte che verranno utilizzate nel programma per RFID DOMINATOR
  • L'indirizzo della scheda è elencato nel monitor seriale (UART): 9600 baud / s utilizzati.
  • È una buona idea salvare e sovrascrivere il rapporto in un documento chiaro .xls (EXCEL) che semplifichi la gestione delle schede RFID assegnate a team ed entità specifici
  • Devi importare la libreria MFRC522 nel tuo IDE Arduino per caricare correttamente il codice sorgente per caricare le schede UID. Scarica il repository del progetto RFID DOMINATOR (a cui fa riferimento il primo link nella parte superiore della pagina), copia il contenuto della cartella / src / (cartella MFRC522) nella cartella / Arduino / libraries / (il percorso della cartella dipende da dove è installato l'IDE di Arduino), più comunemente in Documents / Program Files su sistemi operativi Windows precedenti.

    Esempio di schede RFID UID archiviate - documento Excel - .xls:

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

    Programma l'output sull'interfaccia UART:

    Výpis UID RFID tagu, karty na UART rozhranie s vypísaním typu karty
    /*|--------------------------------------------------------|*/
    /*|Titolo: Caricamento delle carte RFID UID                |*/
    /*|Descrizione: Legge tramite lettore RFID RC522           |*/
    /*|l'indirizzo della scheda RFID allegata e stampata       |*/
    /*|UID sull'interfaccia UART.                              |*/
    /*|Le carte UID registrate vengono utilizzate in DOMINATOR |*/
    /*|l'autore: Martin Chlebovec                              |*/
    /*|E-mail: martinius96@gmail.com                           |*/
    /*|Usa licenza: MIT                                        |*/
    /*|Revisione: 12. August 2020                              |*/
    /*|--------------------------------------------------------|*/
    
    #include <SPI.h>
    #include <MFRC522.h>
    #define RST_PIN         9
    #define SS_1_PIN        10
    #define NR_OF_READERS   1
    byte ssPins[] = {SS_1_PIN};
    MFRC522 mfrc522[NR_OF_READERS];
    void setup() {
      Serial.begin(9600);
      while (!Serial);
      SPI.begin();
      for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {
        mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN);
        mfrc522[reader].PCD_SetAntennaGain(112); // set to max (00001110)
        Serial.print(F("Reader "));
        Serial.print(reader);
        Serial.print(F(": "));
        mfrc522[reader].PCD_DumpVersionToSerial();
      }
    }
    
    void loop() {
      for (uint8_t reader = 0; reader < NR_OF_READERS; reader++) {
        if (mfrc522[reader].PICC_IsNewCardPresent() && mfrc522[reader].PICC_ReadCardSerial()) {
          Serial.print(F("Reader "));
          Serial.print(reader);
          Serial.print(F(": Card UID:"));
          dump_byte_array(mfrc522[reader].uid.uidByte, mfrc522[reader].uid.size);
          Serial.println();
          Serial.print(F("PICC type: "));
          MFRC522::PICC_Type piccType = mfrc522[reader].PICC_GetType(mfrc522[reader].uid.sak);
          Serial.println(mfrc522[reader].PICC_GetTypeName(piccType));
          mfrc522[reader].PICC_HaltA();
          mfrc522[reader].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);
    }
    

    Scanner I2C - programma per leggere l'indirizzo del convertitore I2C per display LCD


    Uscita scanner I2C prevista:

    Elenco di indirizzi I2C su cui comunica il convertitore I2C per display 16x2 / 20x4
    La libreria Wire è integrata nell'IDE di Arduino, non è richiesta alcuna installazione. Il programma può essere caricato immediatamente. Si consiglia di collegare il convertitore hardware - I2C per display 16x2 / 20x4, anche senza display, prima di avviare il programma.
    #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
    }