Datalager med projekt - ledningsdiagrammer, maskinkoder til test - Github: Airsoft - RFID DOMINATOR - Arduino
Hvis du er interesseret i at købe firmware til RFID DOMINATOR (leveres i maskinkode), bedes du kontakte på engelsk på:

martinius96@gmail.com

Arduino LCD RFID, NFC RC522 Stopwatch Schematics Airsoft Paintball DOMINATOR

RFID DOMINATOR - stopur til Airsoft | Paintball


Den nye version af RFID DOMINATOR-projektet (Domination Timer) understøtter disse typer firmware RFID-læsere NXP RC522:
  • Firmware version: 0x12 = counterfeit chip - (ikke-original NXP-chip, erstatning)
  • Firmware version: 0x91 = Version 1.0 - (original NXP-chip)
  • Firmware version: 0x92 = Version 2.0 - (original NXP-chip)
  • Enheder i RFID DOMINATOR-projektet:

    RFID náramok štandardu ISO/IEC 14443-A - Tím RED
    Det RØDE hold
    RFID náramok štandardu ISO/IEC 14443-A - Tím GRE
    Det GRE hold
    RFID náramok štandardu ISO/IEC 14443-A - Rozhodca
    Dommer
    RFID náramok štandardu ISO/IEC 14443-A - Eraser
    Viskelæder

    Projekt Beskrivelse:

    DOMINATOR er en enhed - stopur til sportsgrene som Airsoft, Paintball. Stopuret bruger en Arduino-kontrolmikrocontroller (Arduino Uno / Nano) eller en separat chip (Atmel) AtMega328P, som styrer hele systemlogikken. Stopuret inkluderer et LCD-tegndisplay, der måler 16x2 (16 tegn x 2 linjer) eller 20x4, hvor tidspunkterne for de enkelte hold vises. Der er 2 hold i spillet - RØDT hold a GRE hold, som spiller mod hinanden og optager det imaginære punkt, der dannes af denne enhed - DOMINATOR. I begyndelsen af spillet viser displayet tidene 00 timer, 00 minutter, 00 sekunder for RØDT hold, GRE hold. Hvert medlem af teamet er udstyret med et kort, armbånd eller nøglering, der kommunikerer på frekvensen 13,56 MHz med en RFID-læser, hvis den er inden for rækkevidde. Nøgleringe og armbånd kan være farvekodede (grøn, rød alt efter hold og funktion ...), hvilket gør det muligt for dem at blive distribueret mere effektivt til spillerne, men også deres arkivering og opbevaring. Hvis det RØDE hold scorer et point, vedhæfter holdspilleren sit kort til læseren og besætter dermed pointen. Denne handling udløser en summer, der annoncerer en ændring i punktet. Derefter lyser RED-holdets LED på denne station, og displayet begynder at tilføje tid til det hold. Hvis punktet er optaget af GRE-teamet, og kortet er fastgjort til læseren af et medlem af dette hold, lyder summeren igen, dioden for dette hold lyser, tidspunktet for det RØDE hold er sat på pause og tidspunktet for GRE-hold, der besatte pointen, tælles. Hvis kortet / nøglering er vedhæftet af arrangøren (dommer), er begge gange sat på pause, indtil et af holdene præsenterer kortet. Denne type kort er således velegnet til at starte en pause, men kan også bruges i slutningen af spillet, når det er nødvendigt at stoppe tiden til at evaluere spillet. Der er en fjerde type kort i DOMINATOR-systemet - viskelæderet, der holder pause begge gange og nulstiller dem til startværdier efter start af DOMINATOR-stopuret. Bruges til at genstarte spillet, initialisere et nyt spil. Projektet er velegnet til Airsoft-begivenheder, sportsfaciliteter eller Airsoft-hold, som kan bygge udstyret. Fordelen ved DOMINATOR-systemet er, at systemet kan klones og skabe X-punkter med samme konfiguration via maskinkode, som kan bekæmpes uafhængigt i spillet, mens RFID-kortene fungerer fuldt ud på alle DOMINATOR-enheder. Systemet er testet, funktionelt, let at vedligeholde. NXP RC522-læser fungerer med en frekvens på 13,56 MHz, registrerer RFID-tags ved ca. 3 centimeter (der kræves næsten fysisk kontakt med læseren), kompatibelt ISO / IEC 14443-A-tagformat. Den givne tagstandard inkluderer også ISIC, buskort, der fungerer som NFC-kort og kan kommunikere deres fysiske adresse - UID til en læser inden for rækkevidde.

    Hardware til projektet - RFID DOMINATOR:

  • Arduino Uno/NanoArduino Uno/Nano
  • LCD karakter display 20x4LCD znakový displej 20x4
  • I2C-konverter til LCD-skærmLCD znakový displej 20x4
  • RFID-læser NXP RC522 (13.56MHz)RFID čítačka RC522
  • ISO / IEC 14443-A standard nøgleringe / kort / armbåndKľúčenky, karty, náramky na 13.56MHz štandardu ISO/IEC 14443-A
  • SummerHlásič priloženia karty
  • 2x LED dioderLED diódy - indikátor aktívneho tímu na bode
  • RFID DOMINATOR - spilstart - indledende tilstand:

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

    RFID DOMINATOR - under spillet:

    RFID DOMINATOR - DOMINATION TIMER

    Princippet om funktionalitet på hardwaresiden:

  • RC522 RFID-læser kommunikerer med Arduino via SPI-bussen. Den læser UID (identifikator) for RFID-kort inden for rækkevidde, videresender denne identifikator til Arduino, som udfører programlogikken. Læseren reagerer på chipens afstand ca. 3 cm fra antennen.
  • Arduino sammenligner kortets læste adresse i en multi-tilstand, anvender digitale tilstande på dioder, kører en universal tæller hver 100 ms (tæller i tiendedele af et sekund), styrer optællingen af begge gange.
  • Tiden sendes via I2C-bussen til displayet med 20x4-tegn, hvor den er plottet. Skærmen varer op til 30 ms ved en I2C-bushastighed på 100 kHz - Standardhastighed.
  • Maksimalt tidsinterval, der kan vises i systemet: 99 timer, 59 minutter og 59 sekunder
    Forbrug: ca. 110mAh med 5V strømforsyning. Velegnet til strøm via powerbank, oplader fra en telefon med USB-udgang.

    Bestemmelse af RFID DOMINATOR-projektet:

    RFID DOMINATOR-projektet er med hensyn til dets alsidighed velegnet til implementering i Airsoft-handlinger, og med muligheden for at klone firmwaren er det muligt at installere X DOMINATOR'er i spilfeltet, som kan spilles med identiske RFID-chips. DOMINATOR er også velegnet til hold, sportsfaciliteter, der kan bruge denne enhed til at udvide de spiltilstande, der tilbydes til individuelle spil. Hvis RFID-kort, armbånd eller nøgleringe er farvekodede, er det meget let og universelt distribueret til spillere baseret på deres hold. Deres arkivering er også enkel. Brug af kort, armbånd eller nøgleringe er let og kan håndtere alle aldre. Selve RFID-chippen er beskyttet i et plastikhus, det har ikke noget imod snavs, vand, kræver ikke vedligeholdelse. Den har intet batteri, chippen aktiverer en RFID-læser, der oplader den med det elektriske felt, den sender. DOMINATOR er velegnet til spiltilstande med det samme antal spillere i begge hold, f.eks. DOMINATION, Capture Point (mere end en DOMINATOR kan bruges i spillet). Brugen er hovedsageligt til sportssoftware fra Airsoft, Paintball, men DOMINATOR kan også bruges til andre sportsaktiviteter, hvor den finder anvendelse (sejlads, orientering osv.).


    Demonstration af funktionalitet - RFID DOMINATOR:



    Printkort - (PCB) - RFID DOMINATOR - GERBER / produktion efter fotorute


    PCB-designet forudser brugen af et Arduino Nano-kort
  • PCB er dobbeltsidet med overlays, dimensioner: 100x105mm
  • PCB-produktion i Kina

    PCB'er kan fremstilles i Slovakiet på PB Spoj eller også i Kina - ved maskinproduktion fra GERBER-filer. En af de mest populære og billigste producenter er: JLCPCB. GERBER-filer kan uploades direkte som et arkiv, mens printkortet visualiseres, de lag, det registrerer, indstilles automatisk, dimensionerne på printkortet indstilles. Produktionen tager 1-2 dage. Denne producent var tidligere kendt for handlingen med at producere 10 stykker PCB til $ 2. I dag giver JLCPCB dig mulighed for at producere 5 stykker af dette printkort til RFID DOMINATOR til 6,96 €, 10 stykker til 10,16 €. Transport - det billigste alternativ er tilgængeligt for 7,44 € op til DHL med levering inden for 3-5 arbejdsdage, mens transportomkostningerne er 23,16 €. JLCPCB anvender automatisk en rabatkupon på € 8 for forsendelse, som tildeles dig efter registrering. Således, med det billigste forsendelsesalternativ med levering inden for 25 dage, er denne forsendelse gratis ved det første køb. Det er også muligt at bruge andre tilgængelige producenter, for eksempel: PCBWay, AllPCB, NextPCB, SeeedStudio, som har teknologien til PCB-produktion efter maskinmetode fra GERBER-filer.

    DPS pre Airsoft DOMINATOR - JLCPCB

    Pin-header i printkortdesign:

  • 2x female pin-header 15-pin (til Arduino Nano)
  • 1x female pin-header 8-pin (til RFID-læser RC522)
  • 1x female 90° pin-header 4-pin (til I2C konverter til LCD display 20x4)
  • Afstandsstykker i printkortdesign:

  • 4x afstandsstykke til karakter LCD-skærm 20x4 (Ø max 2,5 mm)
  • afstandsstykke til RFID RC522 (Ø max 3,5 mm)
  • Komponent dimensioner:

    Et PDF-dokument med delmål fås: her
    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

    Terminalernes bordforbindelse - RFID DOMINATOR - svarer fuldt ud til ledningsdiagrammet:

    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-konverter til LCD-skærm
    GND GND
    5V Vcc
    A4 SDA
    A5 SCL
    Arduino Uno / Nano (AtMega328P) Summer
    GND GND
    5V Vcc
    D5 IN
    Arduino Uno / Nano (AtMega328P) LED dioder
    GND GND
    D4 IN (RED)
    D3 IN (GREEN)

    Ledningsdiagram - RFID DOMINATOR:


    Airsoft Dominator RFID

    Program til hentning af UID-adresser på RFID-kort til DOMINATOR


  • Programmet bruges til at hente identifikatorer (UID) for RFID-tags, kort, der vil blive brugt i programmet til RFID DOMINATOR
  • Denne kildekode repræsenterer ikke RFID DOMINATOR!
  • Kortadressen er angivet i den serielle (UART) skærm - 9600 baud / s brugt.
  • Det er en god ide at gemme og kopiere rapporten i et klart .xls (EXCEL) -dokument, hvilket gør det lettere at administrere de tildelte RFID-kort til specifikke teams og enheder
  • Du skal importere MFRC522-biblioteket til din Arduino IDE for at kunne indlæse kildekoden for at indlæse UID-kort. Download RFID DOMINATOR-projektlageret (der henvises til af det første link øverst på siden), kopier indholdet af mappen / src / (MFRC522-mappen) til / Arduino / biblioteker / mappen (stien til mappen afhænger af, hvor du har Arduino IDE installeret), oftest i Dokumenter / Programfiler på ældre Windows-operativsystemer.

    Eksempel på lagrede UID RFID-kort - Excel-dokument. xls:

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

    Programoutput til UART-interface:

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

    Implementering af software til RFID DOMINATOR:

  • UID-data for RED, GRE, Referee og Eraser indlejret i felter, der let kan skaleres for at udvide antallet af spillere
  • 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 - et program til aflæsning af adressen på I2C-konverteren til LCD-skærmen


    Forventet output fra I2C Scanner:

    Výpis I2C adresy, na ktorej komunikuje I2C prevodník pre displej 16x2 / 20x4
    Wire-biblioteket er indbygget i Arduino IDE, der kræves ingen installation. Programmet kan uploades med det samme. Det tilrådes at tilslutte hardwaren - I2C-konverter til 16x2 / 20x4-skærm, selv uden skærm, inden programmet startes.
    #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
    }