Repository mit Projekt - Schaltplänen, Maschinencodes zum Testen - Github: Airsoft - DOMINATOR - Arduino
Wenn Sie Firmware für den konfigurierbaren Domination Timer erwerben möchten, wenden Sie sich an: martinius96@gmail.com
Arduino LCD Drehcodierer Stoppuhr Planen Taste Menu Paintball Domination Timer

Konfigurierbarer Domination Timer - Stoppuhr für Airsoft | Paintball


Entitäten im Projekt konfigurierbar Domination Timer:

Tím RED - tlačidlo pre používateľský vstup
Tím RED
Tím GRE - tlačidlo pre používateľský vstup
Tím GRE

Projektbeschreibung:

Domination Timer ist ein Gerät - eine Stoppuhr für Sportarten wie Airsoft oder Paintball, mit der Sie die Zeit der Besetzung eines Punktes mit einer Auflösung von Sekunden messen können. Die Stoppuhr ist mit einer 16x2 / 20x4 LCD-Zeichenanzeige ausgestattet. Nach dem Einschalten des Gerätes kann mit dem Drehgeber - KY-040 - zwischen den Menüelementen auf dem Display umgeschaltet werden. Über die Gegenstände ist es möglich, den Domination Timer-Spielmodus zu starten, der auf Benutzertasten (Eingaben) reagiert, oder die Zeit der Teambelegung vor dem Spiel im konfigurierbaren Modus einzustellen. Dieser Parameter gibt die erforderliche Länge des Haltens der Taste an, bis das Team den Punkt erfolgreich belegt. Dieser konfigurierbare Parameter wird für die Anzahl der Sekunden implementiert. Der zweite konfigurierbare Parameter ist das automatische Ende des Spiels, um mit der Option UNLIMITED eine bestimmte Anzahl von Stunden der Stoppuhr zu erreichen - wenn die Stoppuhr bis unendlich zählt oder nach der maximalen Anzeigezeit auf dem Display - 99 Stunden, 59 Minuten, 59 Sekunden. Die Stoppuhr verwendet einen Arduino-Steuerungs-Mikrocontroller (Arduino Uno / Nano) oder einen separaten Chip (Atmel) AtMega328P, der die gesamte Systemlogik steuert. Es gibt 2 Teams im Spiel - RED mannschaft un 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 an RED mannschaft, GRE mannschaft.


Taste Domination Timer verwendet die Tasteneingabe für die Besetzung eines Punktes durch ein Teammitglied sowie für die Eingabe einer Schiedsrichterentität. Somit werden insgesamt 2 Tasten für 3 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. Schalttasten werden verwendet, keine Schalttasten (sie würden nicht auf die Systemlogik reagieren, die gesamte Software würde immer "gedrückt" werden). Der konfigurierbare Domination Timer reagiert auf die Länge der Presse, die im Konfigurationsmenü über einen Encoder eingestellt wird. Es ist erforderlich, die Taste für eine bestimmte Zeit gedrückt zu halten. Das System reagiert nicht auf kurzes Drücken. In der erweiterten Version können Sie auch die Punktneutralisierung festlegen (Anhalten der Zeit des aktiven Teams an dem Punkt, an dem ein Mitglied des anderen Teams die Taste mindestens 50% der erforderlichen Zeit gedrückt hält) Die Zeiten werden auf einer 16x2- oder 20x4-LCD-Zeichenanzeige angezeigt, die über den I2C-Bus mit dem Steuermikrocontroller kommuniziert. Wenn ein Teammitglied des ROTEN Teams 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 ROTEN Teams an dieser Station auf und die Anzeige fügt Zeit für dieses Team hinzu.


Wenn der Punkt vom GRE-Team belegt ist und das Teammitglied die entsprechende Taste drückt, ertönt der Summer erneut, die GRE-Team-LED leuchtet auf, die ROTE Zeit wird angehalten und die Zeit des GRE-Teams, das den Punkt belegt hat, wird gezählt. Der Schiedsrichter muss beide Tasten gleichzeitig anhalten, um beide Male anzuhalten. Die Zeiten werden angehalten, bis der Punkt von einigen Teams im System erneut belegt wird Diese Art der Eingabe eignet sich daher zum Starten einer Pause, kann aber auch das Spiel für die Auswertung beenden. Das neue Spiel wird implementiert, indem das gesamte Arduino-Board über die RST-Taste zurückgesetzt oder die Stromversorgung getrennt und wieder angeschlossen wird. Im Menü ist es auch möglich, die Aktivität / Inaktivität des Summers zu konfigurieren, die auch im Spiel enthalten sein kann. Der Domination Timer-Spielmodus verwendet einen Summer, um die aktuelle Besetzung eines Punktes anzukündigen. Radiergummi existiert in diesem Domination Timer-Typ nicht. Ein zweites Spiel kann im System implementiert werden - Countdown, mit dem Sie einen Minuten-Countdown einstellen können, während dieser gestoppt werden muss. Der Player stoppt den Countdown, indem er beide Tasten eine bestimmte Zeit lang gedrückt hält (basierend auf dem Konfigurationsmenü für die Dauer des Drückens von Domination Timer).


Kompatible Steuerungshardware - Konfigurierbarer Domination Timer:


Mikrocontroller steuern Arduino Uno
Arduino Uno
Mikrocontroller steuern Arduino Nano
Arduino Nano
Mikrocontroller steuern AtMega328P DIP
AtMega328P - DIP28
Mikrocontroller steuern AtMega328P SMD
AtMega328P - SMD

Kompatible Peripheriegeräte - Konfigurierbarer Domination Timer:


LCD-Zeichenanzeige 16x2 / 20x4
LCD-Zeichenanzeige 16x2 / 20x4
I2C prevodník pre LCD displej
I2C-Konverter für LCD-Display
Rotačný 360° enkóder (KY-040)
Drehbarer 360°-Encoder (KY-040)
Summer
Summer
2x LED Dioden
2x LED Dioden
2x Schaltknopf (pushbutton)
2x Schaltknopf

Schaltplan - Konfigurierbarer Domination Timer


Konfigurovateľný Domination Timer - schéma zapojenia - Arduino / Airsoft, stopwatch, DOMINATION

Konfigurierbarer Domination Timer zur Laufzeit - Testen


Konfigurovateľné stopky - Arduino pre Airsoft, Paintball

Die Verdrahtung der Klemmen - Konfigurierbarer Domination Timer - entspricht vollständig dem Schaltplan:

Arduino Uno / Nano (AtMega328P) I2C-Wandler für LCD-Anzeige
GND GND
5V Vcc
A4 SDA
A5 SCL
Arduino Uno / Nano (AtMega328P) Drehcodierer - KY-040
GND GND
5V +
D3 CLK
D4 DT
D5 SW
Arduino Uno / Nano (AtMega328P) LED Dioden
GND GND
D6 IN (RED)
D7 IN (GREEN)
Arduino Uno / Nano (AtMega328P) Taste (INPUT_PULLUP)
GND GND
D8 IN (RED)
D9 IN (GRE)
Arduino Uno / Nano (AtMega328P) Summer
D10 IO
GND GND

Testprogramm (Shareware) - Konfigurierbarer Domination Timer mit Maschinencode


Für das Projekt Configurable Domination Timer ist eine Shareware-Version (.hex) verfügbar. Mit der Version können Sie maximal 60 Sekunden für jedes Team messen. Wenn diese Zeit erreicht ist, stoppt die Stoppuhr. 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 über den XLoader mit einer GUI-Schnittstelle einfacher auf den Arduino Uno-Mikrocontroller hochgeladen werden.

  • AVRDUDE muss über das mit der Arduino IDE installierte CMD (Befehlszeile) ausgeführt werden. Gelegen 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):
  • Für Firmware mit I2C-Anzeigeadresse 0x27 (Beispiel COM-Port 21 und 115200 Baud / s): avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:encoder_0x27.ino.hex:i
  • Für Firmware mit I2C-Anzeigeadresse 0x3F (Beispiel COM-Port 21 und 115200 Baud / s): avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:encoder_0x3F.ino.hex:i
  • XLoader ist eine Windows-Anwendung (ausführbares EXE-Tool) mit einer einfachen grafischen OberflächeDies ermöglicht die Auswahl von Firmware - Maschinencode (.hex), der Zielplattform und kann dynamisch den COM-Port anzeigen, 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 Anzahl der hochgeladenen Bytes.
  • Die Firmware kann aus dem Repository heruntergeladen werden: HIER. Die Firmware ist nach der Adresse des I2C-Konverters unterteilt (Sie haben dies anhand der Ausgabe des I2C-Scanners auf der UART-Schnittstelle herausgefunden).

    Verfügbare Firmware - Konfigurierbarer Druckknopf Domination Timer

    Firmware-Name (im Ordner encoder_dominator) Designed für Herunterladen
    encoder_0x27.ino.hex LCD-Zeichenanzeigegröße 16x2 oder 20x4 mit I2C-Wandler, der unter der Adresse 0x27 kommuniziert Firmware herunterladen
    encoder_0x3F.ino.hex LCD-Zeichenanzeigegröße 16x2 oder 20x4 mit I2C-Wandler, der unter der Adresse 0x3F kommuniziert Firmware herunterladen