Repository mit Projekt - Schaltplänen, Maschinencodes zum Testen - Github: Airsoft - RFID DOMINATOR - Arduino
Wenn Sie Software für Domination Timer kaufen möchten, wenden Sie sich an: martinius96@gmail.com
Arduino LCD RFID, NFC RC522 Stopwatch Schematics Airsoft Paintball Domination Timer

RFID Domination Timer - Stoppuhr für Airsoft | Paintball


Die neue Version des RFID Domination Timer-Projekts (Domination Timer) unterstützt diese Arten von Firmware-RFID-Lesegeräten NXP RC522:
  • Firmware version: 0x12 = counterfeit chip - (Nicht originaler NXP-Chip, Ersatz)
  • Firmware version: 0x91 = Version 1.0 - (Original NXP Chip)
  • Firmware version: 0x92 = Version 2.0 - (Original NXP Chip)
  • Benutzerentitäten in einem farbcodierten RFID Domination Timer-Projekt:

    RFID-Armband nach ISO / IEC 14443-A - Mannschaft RED
    Mannschaft RED
    RFID-Armband nach ISO / IEC 14443-A - Mannschaft GRE
    Mannschaft GRE
    RFID-Armband nach ISO / IEC 14443-A - Schiedsrichter
    Schiedsrichter
    RFID-Armband nach ISO / IEC 14443-A - Radiergummi
    Radiergummi

    Projektbeschreibung - RFID Domination Timer:

    Domination Timer ist eine Gerätestoppuhr für Sportarten wie Airsoft, Paintball. Die Stoppuhr verwendet einen Arduino Control-Mikrocontroller (Arduino Uno / Nano) oder einen separaten Chip (Atmel) AtMega328P, der die gesamte Systemlogik steuert. Die Stoppuhr enthält eine 16 x 2 (16 Zeichen x 2 Zeilen) oder 20 x 4 große LCD-Zeichenanzeige, auf der die Zeiten einzelner Teams angezeigt werden. Es gibt 2 Teams im Spiel - RED Mannschaft und GRE Mannschaft die gegeneinander spielen und den imaginären Punkt einnehmen, der von diesem Gerät gebildet wird - DOMINATOR. Zu Beginn des Spiels zeigt das Display die Zeiten 00 Stunden, 00 Minuten, 00 Sekunden für RED Mannschaft , GRE Mannschaft . Jedes Mitglied des Teams ist mit einer Karte, einem Armband oder einem Schlüsselanhänger ausgestattet, der mit einem RFID-Lesegerät auf der Frequenz 13,56 MHz kommuniziert, wenn es sich in Reichweite befindet. Schlüsselanhänger und Armbänder können farbcodiert werden (grün, rot je nach Team und Funktion ...), wodurch sie effizienter an die Spieler verteilt werden können, aber auch deren Archivierung und Speicherung. Wenn das RED Mannschaft einen Punkt belegt, hängt der Teamspieler seine Karte an den Leser an und belegt damit den Punkt. Diese Aktion löst einen Summer aus, der eine Änderung des Punkts ankündigt. Dann leuchtet die LED des ROTEN Teams an dieser Station auf und die Anzeige fügt Zeit für dieses Team hinzu.


    Wenn ein GRE Mannschaft einen Punkt belegt und ein Mitglied dieses Teams die Karte am Lesegerät anbringt, ertönt erneut ein Summer, die LED des Teams leuchtet auf, die Teamzeit von RED wird angehalten und Teamzeit zählt. GRE, das den Punkt besetzte. Wenn die Karte / der Schlüsselanhänger vom Veranstalter (Schiedsrichter) angebracht wird, werden beide Male angehalten, bis eines der Teams die Karte einlegt. Dieser Kartentyp eignet sich daher zum Starten einer Pause, kann aber auch am Ende des Spiels verwendet werden, wenn die Zeit angehalten werden muss, um das Spiel zu bewerten. Es gibt noch einen vierten Kartentyp in Domination Timer - Radiergummi, der beide Male pausiert und wie nach dem Starten der Domination Timer-Stoppuhr auf die Anfangswerte zurückgesetzt wird. Zum Neustarten des Spiels wird ein neues Spiel initialisiert. Das Projekt eignet sich für Airsoft-Veranstaltungen, Sportanlagen oder Airsoft-Teams, die die Ausrüstung bauen können. Der Vorteil des Domination Timer-Systems besteht darin, dass das System geklont werden und X-Punkte mit derselben Konfiguration über einen Maschinencode erstellen kann, der unabhängig im Spiel bekämpft werden kann, während die RFID-Karten auf allen DOMINATOR-Geräten vollständig funktionieren. Das System ist getestet, funktionsfähig und wartungsfreundlich. Der NXP RC522-Leser arbeitet mit einer Frequenz von 13,56 MHz, registriert RFID-Tags bei ca. 3 Zentimetern (fast physischer Kontakt mit dem Leser ist erforderlich) und kompatibles ISO / IEC 14443-A-Tag-Format. Der angegebene Tag-Standard umfasst auch ISIC-Buskarten, die als NFC-Karten fungieren und ihre physische Adresse - UID - an einen Leser in Reichweite übermitteln können.


    Liste der Zeiten auf der LCD-Zeichenanzeige 20x4:


    Liste der Zeiten auf der LCD-Zeichenanzeige 20x4

    Kompatible Steuerungshardware für RFID Domination Timer:



    Kompatible Peripheriegeräte für RFID Domination Timer:


    LCD-Zeichenanzeige 16x2 / 20x4
    LCD-Zeichenanzeige 16x2 / 20x4
    I2C-Konverter für LCD-Display
    I2C-Konverter für LCD-Display
    RFID čítačka NXP RC522
    RFID-Leser NXP RC522
    RFID-Chips nach ISO / IEC 14443-A-Standard
    RFID-Chips nach ISO / IEC 14443-A-Standard
    Summer
    Summer
    2x LEDs
    2x LEDs
    RFID Domination Timer - DOMINATION TIMER

    Funktionsprinzip auf der Hardwareseite:

  • Der RF5-Leser RC522 kommuniziert mit dem Arduino über den SPI-Bus. Es liest die UID (Kennung) von RFID-Karten in Reichweite und leitet diese Kennung an Arduino weiter, das die Programmlogik ausführt. Der Leser reagiert auf den Abstand des Chips etwa 3 cm von der Antenne.
  • Arduino vergleicht die Adresse der gelesenen Karte in einer Mehrfachbedingung, wendet digitale Zustände auf Dioden an, führt alle 100 ms einen Universalzähler aus (zählt in Zehntelsekunden) und steuert die Zählung beider Male.
  • Die Zeit wird über den I2C-Bus an die 20x4-Zeichenanzeige gesendet, wo sie aufgezeichnet wird. Das Display hält bis zu 30 ms bei einer I2C-Busgeschwindigkeit von 100 kHz - Standardgeschwindigkeit.
  • Maximaler Zeitbereich, der im System aufgelistet werden kann: 99 Stunden, 59 Minuten und 59 Sekunden
    Verbrauch: ca. 110mAh mit 5V Stromversorgung. Geeignet für die Stromversorgung über Power Bank, Ladegerät von einem Telefon mit USB-Ausgang.

    So geben Sie ein RFID Domination Timer-Projekt an:

  • Das Projekt eignet sich für Mannschaften, Vereine, Sportanlagen und Veranstaltungen.
  • Wenn RFID-Karten, Armbänder oder Schlüsselanhänger farbcodiert sind, sind sie sehr einfach und universell an die Spieler verteilt.
  • Tabs sind für alle Altersgruppen einfach zu verwenden. Der Chip ist in einem Kunststoffgehäuse geschützt, es macht nichts gegen Schmutz, Wasser ...
  • Geeignet für DOMINATION-Spielmodi, Capture Point (mehr als ein Domination Timer kann im Spiel verwendet werden), ein Spielmodus mit einer ausgeglichenen Anzahl von Spielern.
  • Die Verwendung ist hauptsächlich für Sportarten wie Airsoft, Paintball und Nerf Wars.

  • Funktionsdemonstration - RFID Domination Timer:



    Leiterplatte - (PCB) - RFID Domination Timer - GERBER / Produktion auf Fotoroute


    Das PCB-Design sieht die Verwendung einer Arduino Nano-Platine vor
  • Die Leiterplatte ist doppelseitig mit Überzügen, Abmessungen: 100 x 105 mm
  • Leiterplattenproduktion in China

    PCBs können in der Slowakei unter hergestellt werden PB Spoj, oder auch in China - Maschinenproduktion aus GERBER-Dateien. Einer der beliebtesten und billigsten Hersteller ist: JLCPCB. GERBER-Dateien können direkt als Archiv hochgeladen werden, während die Leiterplatte visualisiert wird, die von ihr aufgezeichneten Schichten automatisch festgelegt werden und die Abmessungen der Leiterplatte festgelegt werden. Die Produktion dauert 1-2 Tage. Dieser Hersteller war berühmt für die Herstellung von 10 Stück Leiterplatten für 2 US-Dollar. Heute können Sie mit JLCPCB 5 Stück dieser Leiterplatte für RFID Domination Timer für 6,96 € und 10 Stück für 10,16 € herstellen. Transport - Die günstigste Alternative ist für 7,44 € bis DHL mit Lieferung innerhalb von 3-5 Werktagen erhältlich, während die Transportkosten 23,16 € betragen. JLCPCB verwendet automatisch einen Rabattgutschein in Höhe von 8 € für den Versand, der Ihnen nach der Registrierung zugewiesen wird. Mit der günstigsten Versandalternative mit Lieferung innerhalb von 25 Tagen ist dieser Versand beim ersten Kauf kostenlos. Es ist auch möglich, andere verfügbare Hersteller zu verwenden, zum Beispiel: PCBWay, AllPCB, NextPCB, SeeedStudio, die über die Technologie für die maschinelle Herstellung von Leiterplatten aus GERBER-Dateien verfügen.

    DPS pre Airsoft Domination Timer - JLCPCB

    Stiftkopf im PCB-Design:

  • 2x weiblicher Pin-Header 15-polig (für Arduino Nano)
  • 1x 8-polige Pin-Header-Buchse (für RFID-Lesegerät RC522)
  • 1x 90 ° -Pin-Kopfbuchse 4-polig (für I2C-LCD-Display-Wandler 20x4)
  • Abstandshalter in der Designplatine:

  • 4x Abstandhalter für Zeichen-LCD-Anzeige 20x4 (Ø max 2,5 mm)
  • 2x Abstandhalter für RFID RC522 (Ø max 3,5 mm)
  • Teileabmessungen:

    Ein PDF-Dokument mit Teileabmessungen ist verfügbar: HIER
    RFID Domination Timer - DOSKA PLOŠNÝCH SPOJOV - DPS - PCB - RC522, Arduino - Nano, buzzer, LED, stopky, stopwatch
    RFID Domination Timer - DOSKA PLOŠNÝCH SPOJOV - DPS - Výroba fotocestou

    Die Verkabelung der Klemmen - RFID Domination Timer - entspricht vollständig dem Schaltplan:

    Arduino Uno / Nano (AtMega328P) NXP RFID Leser RC522
    GND GND
    3V3 3V3
    D9 RST
    D10 SDA (SS)
    D11 MOSI
    D12 MISO
    D13 SCK
    Arduino Uno / Nano (AtMega328P) I2C-Wandler für LCD-Anzeige
    GND GND
    5V Vcc
    A4 SDA
    A5 SCL
    Arduino Uno / Nano (AtMega328P) Buzzer
    GND GND
    5V Vcc
    D5 IN
    Arduino Uno / Nano (AtMega328P) LED Dioden
    GND GND
    D4 IN (RED)
    D3 IN (GREEN)

    Schaltplan - RFID Domination Timer:


    Airsoft Dominator RFID

    Testprogramm (Shareware) - RFID Domination Timer mit Maschinencode


    Für das RFID Domination Timer-Projekt steht eine Shareware-Version in Form von Maschinencode (.hex) für den Arduino-Mikrocontroller (ATmega328P) zur Verfügung. In der Version können Sie zunächst 4 verschiedene UID-RFID-Karten aufzeichnen, die den Teams RED, GRE, Referee und Eraser zugeordnet sind. Die Aufforderung zur Eingabe einer bestimmten Karte wird auf dem LCD-Zeichendisplay 16x2 oder 20x4 mit I2C-Wandler angezeigt. Anschließend ist es möglich, die Spielmechanik und die Reaktion des Lesegeräts auf die RFID-Karte mit Zeitvisualisierung auf dem Display zu testen. Es ist möglich, für jedes Team maximal 15 Sekunden Spielzeit zu messen, mit der Möglichkeit, es mit einer Radiergummi-Karte zurückzusetzen und erneut für 15 Sekunden zu messen. Das Ziel der Version besteht darin, die Kompatibilität mit Ihrer Hardware zu überprüfen. Maschinencodes basierend auf der I2C-Konverteradresse für das LCD-Display sind im Github-Repository verfügbar. Die am häufigsten verwendeten Adressen sind 0x27 und 0x3F. Wenn Sie die Adresse Ihres Konverters nicht kennen, verwenden Sie das eingebaute Beispiel in Arduino IDE -> I2C Scanner, das die Adresse an die UART-Schnittstelle (Serieller Monitor) schreibt. Maschinencode kann über die AVRDUDE-Software - Teil der Arduino IDE - oder mit einer GUI-Schnittstelle über XLoader auf den Arduino Uno-Mikrocontroller hochgeladen werden - einfacher zu bedienen.

  • AVRDUDE muss über das mit der Arduino IDE installierte CMD (Befehlszeile) ausgeführt werden. Befindet sich in C:/Users/User/Documents/ArduinoData/packages/arduino/tools/avrdude/6.X.X-arduino/bin
  • Beispielbefehl zum Hochladen eines Programms auf Arduino Uno / Nano (AtMega328P):
  • avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:sketch.ino.hex:i
  • XLoader ist eine Windows-Anwendung (ausführbares .exe-Tool) mit einer einfachen grafischen Oberfläche mit dem Sie die Firmware auswählen können - Maschinencode (.hex), die Zielplattform und kann dynamisch den COM-Port anzeigen, auf dem sich das Gerät befindet.
  • Durch einfaches Klicken auf Hochladen kann Maschinencode automatisch hochgeladen werden ( XLoader verwendet ähnlich wie Arduino IDE-Tool AVRDUDE). Das Fenster XLoader informiert Sie über einen erfolgreichen Upload, indem es die Anzahl der hochgeladenen Bytes auflistet.
  • Die Firmware kann aus dem Projekt-Repository heruntergeladen werden: HIER . Die Firmware befindet sich im Github-Ordner des Projekt-Repositorys /rfid_dominator/ aufgeteilt nach der Adresse des I2C-Konverters (das haben Sie aus der I2C-Scanner-Ausgabe auf der UART-Schnittstelle herausgefunden).

    Verfügbare Firmware (Shareware) - RFID Domination Timer


    Firmware-Name (im Ordner rfid_dominator) Designed für Herunterladen
    RFID_Dominator_0x27.hex LCD-Zeichenanzeigegröße 16x2 oder 20x4 mit I2C-Konverter, der unter Adresse 0x27 . kommuniziert Firmware herunterladen
    RFID_Dominator_0x3F.hex LCD-Zeichenanzeigegröße 16x2 oder 20x4 mit I2C-Konverter, der unter Adresse 0x3F . kommuniziert Firmware herunterladen

    Demonstration der Funktionalität - Shareware RFID DOMINATOR:


    Bei den neuesten chinesischen Arduino-Nano-Klonen, die einen "Old Bootloader" besitzen, muss mit 57600 Baud/s aufgenommen werden! Für andere Versionen mit dem neueren Bootloader 115200 Baud/s (diese Geschwindigkeit wird auch im AVRDUDE-Befehl zum Laden von Maschinencode verwendet).

    Programm zum Lesen von UID-Adressen von RFID-Karten für Domination Timer


  • Mit dem Programm werden Kennungen (UID) von RFID-Tags abgerufen, Karten, die im Programm für RFID Domination Timer verwendet werden
  • Die Kartenadresse ist im seriellen (UART) Monitor aufgeführt - 9600 Baud / s werden verwendet.
  • Es ist eine gute Idee, den Bericht in einem übersichtlichen XLS-Dokument (EXCEL) zu speichern und zu überschreiben, um die Verwaltung der zugewiesenen RFID-Karten für bestimmte Teams und Entitäten zu vereinfachen.
  • Um den Quellcode zum Laden von UID-Karten erfolgreich hochzuladen, muss die MFRC522-Bibliothek in Ihre Arduino IDE-Umgebung importiert werden.. Laden Sie das RFID Domination Timer-Projekt-Repository herunter (auf das durch den ersten Link oben auf der Seite verwiesen wird) und kopieren Sie den Inhalt des Ordners /src/ (Ordner MFRC522) in den Ordner / Arduino / library / (Pfad zum Ordner) hängt davon ab, wo Sie die Arduino IDE installiert haben), am häufigsten in Dokumenten / Programmdateien unter älteren Windows-Betriebssystemen.

    Beispiel für gespeicherte UID-RFID-Karten in Excel-Dokumenten (.xls):

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

    Programmausgabe an die UART-Schnittstelle:

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

    Software-Implementierung für RFID Domination Timer:

  • UID-Daten für RED, GRE, Referee und Eraser, eingebettet in Felder, die einfach skaliert werden können, um die Anzahl der Spieler zu erhöhen
  • Software-Implementierung - 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 - ein Programm zum Lesen der Adresse des I2C-Wandlers für das LCD-Display


    Erwartete Ausgabe des I2C-Scanners:

    Výpis I2C adresy, na ktorej komunikuje I2C prevodník pre displej 16x2 / 20x4
    Die Wire-Bibliothek ist in die Arduino IDE integriert. Eine Installation ist nicht erforderlich. Das Programm kann sofort hochgeladen werden. Es wird empfohlen, den Hardware-I2C-Konverter für die 16x2 / 20x4-Anzeige auch ohne Anzeige anzuschließen, bevor Sie das Programm starten.
    #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
    }