Projekt-Repository - Shareware-Firmware für Druckknopf Dominator: Domination Timer firmware
Wenn Sie Software für Stoppuhr der Dominanz kaufen möchten, wenden Sie sich an: martinius96@gmail.com
Arduino LCD RFID, NFC RC522 Stopwatch Schematics Airsoft Paintball Stoppuhr der Dominanz

Druckknopf Stoppuhr der Dominanz - Stoppuhr für Airsoft | Paintball


Entitäten im Projekt Druckknopf Stoppuhr der Dominanz:

RED Mannschaft - Benutzereingabetaste
RED Mannschaft
GRE Mannschaft - Benutzereingabetaste
GRE Mannschaft
Schiedsrichter - Benutzereingabetaste
Schiedsrichter
Radiergummi - Benutzereingabetaste
Radiergummi

Projektbeschreibung Druckknopf Stoppuhr der Dominanz


Druckknopf Stoppuhr der Dominanz ist eine Gerät 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 .


Druckknopf Stoppuhr der Dominanz verwendet die Tasteneingabe für die Besetzung eines Punktes durch ein Teammitglied sowie für die Eingabe einer Schiedsrichter- und Radiergummi-Entität. Somit werden insgesamt 4 Tasten für 4 Systementitäten verwendet, wobei die im INPUT_PULLUP-Modus verbundenen Schalttasten verwendet werden. Durch Drücken der Taste wird das GND-Signal dem digitalen Arduino-Eingangsanschluss (Active-LOW-Schaltsignal) zugeführt. Den Druckknopf Stoppuhr der Dominanz gibt es in zwei Versionen: Die Basisversion reagiert sofort auf einen Punktbelegungstaster. Die erweiterte Version erfordert, dass Sie die Taste 5 Sekunden lang gedrückt halten, um einen Punkt erfolgreich zu besetzen. Die Zeiten werden auf einer 16x2- oder 20x4-LCD-Zeichenanzeige angezeigt, die über den I2C-Bus mit dem Steuermikrocontroller kommuniziert. Wenn ein Teammitglied des RED Mannschaft per Knopfdruck einen Punkt belegt, wird ein Summer ausgelöst, der mit einem kurzen Piepton eine Änderung des Punktes ankündigt. Dann leuchtet die LED des RED Mannschafts an dieser Station auf und die Anzeige fügt Zeit für dieses Team hinzu. Wenn der Punkt vom GRE Mannschaft belegt ist und das Teammitglied die entsprechende Taste drückt, ertönt erneut der Summer, die GRE-Team-LED leuchtet auf, die ROTE Teamzeit wird angehalten und die Die GRE-Teamzeit wird berechnet, welchen Punkt er belegt hat.


Wenn der Organisator (Schiedsrichter) seinen Knopf drückt, werden beide Male angehalten, bis ein Mitglied eines der Teams Benutzereingaben macht. Diese Art der Eingabe eignet sich daher zum Starten einer Pause, kann aber auch das Spiel zur Auswertung beenden. Schaltfläche Stoppuhr der Dominanz verfügt über eine vierte Schaltfläche für die Radiergummi-Entität, die beide Male angehalten und auf die Anfangswerte zurückgesetzt wird, wie nach dem Starten der Stoppuhr Taste DOMINATOR. 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 Druckknopf Stoppuhr der Dominanz-Systems besteht darin, dass es geklont werden und X-Punkte mit derselben Konfiguration über Maschinencode erstellen kann, der in eine unbegrenzte Anzahl von Arduino-Boards und -Chips geladen werden kann und einen identischen Anwendungsbetrieb garantiert. Die Spieler können somit mehr Punkte im Spiel erzielen, während am Ende des Spiels die Zeit addiert wird, solange welcher Punkt von welchem Team belegt wurde.


Liste der Zeiten auf der LCD-Zeichenanzeige 20x4:


Liste der Zeiten auf der LCD-Zeichenanzeige 20x4 - Arduino Stoppuhr der Dominanz - DOMINATOR

Kompatible Steuerungshardware für Druckknopf (Taste) Stoppuhr der Dominanz:



Peripherie für Druckknopf Stoppuhr der Dominanz:



Das Prinzip der Projektfunktionalität Druckknopf DOMINATOR auf der Hardwareseite:


Die Druckknopfen sind im INPUT_PULLUP-Modus verbunden, sie verwenden einen internen 20-kΩ-PULLUP-Widerstand, der den Logikpegel HIGH am digitalen Eingang hält. Bei gedrückter Taste wird das LOW-Signal auf den digitalen Eingang geführt. Basierend auf dem verwendeten Tastentyp und der verwendeten Firmware-Version kann der Arduino die Dauer des Tastendrucks überprüfen, und die Zählerlogik wird unabhängig ausgeführt. Wenn die Bedingung der Änderung an diesem Punkt erfüllt ist, löst der Arduino ein Summen aus und wendet digitale Zustände auf die LEDs an. Die Systemlogik wird alle 1000 ms - 1 Hz ausgeführt (zeitgesteuert über die Funktion millis(), d. h. über Timer 0), unabhängig vom Zustand der digitalen Eingänge. In dieser Routine wird ein aktiver Teamcheck durchgeführt, gefolgt von der Zeit. Die Zeit wird dynamisch auf einem 20x4- oder 16x2-LCD-Zeichendisplay dargestellt. Das Display kommuniziert mit dem Arduino über einen I2C-Bus mit einem Taktsignal (SCL) von 100 kHz - Standard Speed. Das Überschreiben der Anzeige dauert somit bis zu ca. 15 ms, wobei nur die gerade aktive Zeile des angegebenen Teams überschrieben wird. Bei ernsthaftem Interesse kann die Firmware für DOMINATOR auf 3 oder 4 Teams erweitert werden.

RFID Dominator - hra pre 4 tímy
Maximaler Zeitbereich, der im System aufgelistet werden kann: 99 Stunden, 59 Minuten und 59 Sekunden
Verbrauch: ca. 20mAh mit 5V Stromversorgung. Praktische Stromversorgung über Power Bank, Ladegerät von einem Telefon mit USB-Ausgang.

Taste Stoppuhr der Dominanz im laufenden Betrieb im Airsoft-Spiel


Airsoft Dominator RFID

Taste Stoppuhr der Dominanz - Demonstration der Systemfunktionalität und logik


Der Tabellenanschluss der Klemmen - Taste Stoppuhr der Dominanz - entspricht vollständig dem Schaltplan:

Arduino Uno / Nano (ATmega328P) I2C-Wandler für LCD-Anzeige
GND GND
5V Vcc
A4 (Hardware SDA) SDA
A5 (Hardware SCL) 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)
Arduino Uno / Nano (ATmega328P) Tasten (INPUT_PULLUP)
GND GND
D6 IN (GREEN)
D7 IN (ERASER)
D8 IN (Schiedsrichter)
D9 IN (RED)

Schaltplan - Taste Stoppuhr der Dominanz:


Airsoft Dominator RFID

Testprogramm (Shareware) - Taste Stoppuhr der Dominanz mit Maschinencode


Source code - Button Domination Timer based on Arduino
Für das Taste Stoppuhr der Dominanz-Projekt ist eine Shareware-Version (.hex) verfügbar. Mit dieser Version können Sie für jedes Team maximal 15 Sekunden Spielzeit messen. Ziel der Version ist es, die Kompatibilität mit Ihrer Hardware zu überprüfen. Maschinencodes, die auf der I2C-Konverteradresse für das LCD-Display basieren, 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 in Arduino IDE -> I2C Scanner integrierte Beispiel, das die Adresse in die UART-Schnittstelle (serieller Monitor) schreibt. Der Maschinencode kann über die AVRDUDE-Software - Teil der Arduino IDE - oder mit einer GUI-Schnittstelle über XLoader - einfacher in den Arduino Uno-Mikrocontroller hochgeladen werden.

  • AVRDUDE muss über das CMD (Befehlszeile) ausgeführt werden, das mit der Arduino IDE installiert ist. 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: scale.ino.hex: i
  • XLoader ist eine Windows-Anwendung (ausführbares EXE-Tool) mit einer einfachen grafischen Oberfläche , mit der Sie die Firmware auswählen können - Maschinencode (.hex), die Zielplattform und die dynamisch anzeigen können COM-Anschluss, an dem sich das Gerät befindet.
  • Durch einfaches Klicken auf Hochladen kann der Maschinencode automatisch hochgeladen werden (XLoader verwendet das AVRDUDE-Tool ähnlich der Arduino IDE). Das XLoader-Fenster informiert über den erfolgreichen Upload in Form einer Liste der hochgeladenen Bytes.
  • Firmware kann aus dem Projekt-Repository heruntergeladen werden: HIER. Die Firmware befindet sich im Ordner / firmware /, unterteilt nach der Adresse des I2C-Konverters (Sie haben dies anhand der Ausgabe des I2C-Scanners auf der UART-Schnittstelle herausgefunden).

    Firmware verfügbar - Taste Stoppuhr der Dominanz

    Firmware-Name (im Ordner button_dominator) Designed für Herunterladen
    0x27.ino.hex LCD-Zeichenanzeigegröße 16x2 oder 20x4 mit I2C-Wandler, der unter der Adresse 0x27 kommuniziert Firmware herunterladen
    0x3F.ino.hex LCD-Zeichenanzeigegröße 16x2 oder 20x4 mit I2C-Wandler, der unter der Adresse 0x3F kommuniziert Firmware herunterladen
    Für die neuesten chinesischen Arduino Nano-Klone mit einem "alten Bootloader" muss der Maschinencode mit 57600 Baud / s hochgeladen werden! Für andere Versionen mit dem neueren Bootloader 115200 Baud / s (diese Geschwindigkeit wird auch im Befehl AVRDUDE zum Laden des Maschinencodes verwendet).

    Hochladen der Shareware-Version des Taste Stoppuhr der Dominanz-Projekts auf Arduino über XLoader


    XLoader - Arduino - AVRDUDE - Taste Stoppuhr der Dominanz - testovací program

    Allgemeines Video-Tutorial zum Hochladen von Firmware auf Arduino über XLoader



    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
    }