Project Repository - Shareware Firm pour Configurable Dominator: Micrologiciel Domination Timer
Si vous êtes intéressé par le firmware du DOMINATOR configurable en code machine, veuillez contacter en anglais à:

martinius96@gmail.com

Arduino LCD Codeur rotatif Chronomètre Schème Bouton Menu Paintball DOMINATOR

DOMINATOR configurable - chronomètre pour Airsoft Paintball


Entités du projet configurable DOMINATOR:

Tím RED - tlačidlo pre používateľský vstup
L'équipe RED
Rozhodca - kombinácia oboch tlačidiel zastaví čas
Arbitre / STOP
Tím GRE - tlačidlo pre používateľský vstup
L'équipe GRE

Description du projet configurable DOMINATOR:


DOMINATOR est un chronomètre pour les sports Airsoft et Paintball, qui vous permet de mesurer le temps d'un point avec une résolution de secondes. Le chronomètre est équipé d'un affichage LCD 16x2 / 20x4 caractères. Après avoir allumé l'appareil, il est possible de basculer entre les éléments de menu sur l'écran à l'aide de l'encodeur rotatif - KY-040. À travers les éléments, il est possible de démarrer le mode de jeu DOMINATOR, qui répond aux boutons de l'utilisateur (entrées), ou il est possible de définir le temps d'occupation de l'équipe avant le jeu dans le mode configurable. Ce paramètre représente la durée requise pendant laquelle la touche est enfoncée jusqu'à ce que l'équipe occupe le point avec succès. Ce paramètre configurable est implémenté pour le nombre de secondes. Le deuxième paramètre configurable est la fin automatique du jeu pour atteindre un certain nombre d'heures du chronomètre avec l'option ILLIMITÉ - lorsque le chronomètre compte jusqu'à l'infini, ou après le temps d'affichage maximum - 99 heures, 59 minutes, 59 secondes. Le chronomètre utilise un microcontrôleur de contrôle Arduino (Arduino Uno / Nano) ou une puce séparée (Atmel) ATmega328P, qui contrôle l'ensemble de la logique du système. Il y a 2 équipes dans le jeu - l'équipe RED et l'équipe GRE qui jouent les uns contre les autres et occupent le point imaginaire formé par cet appareil - DOMINATOR. Au début du jeu, l'écran affiche les temps 00 heures, 00 minutes, 00 secondes pour l'équipe ROUGE , équipe GRE .

Konfigurovateľný DOMINATOR - výber konfigurovateľného parametra Konfigurovateľný DOMINATOR - menu pre nastavenie maximálnej dĺžky hry

Button DOMINATOR utilise la saisie du bouton pour l'action des membres de l'équipe, ainsi que la saisie de l'entité arbitre. Au total, 2 boutons pour 3 entités système sont utilisés dans le système DOMINATOR configurable. Les boutons bascule connectés en mode INPUT_PULLUP sont utilisés. Appuyez sur le bouton pour envoyer le signal GND à la borne d'entrée numérique Arduino (signal de commutation Active-LOW). Les boutons à bascule sont utilisés, pas les boutons à bascule (ils ne répondraient pas à la logique du système, tous seraient toujours "pressés"). Le DOMINATOR configurable répond à la longueur de la presse, qui est définie dans le menu de configuration via un encodeur. Il est nécessaire de maintenir le bouton enfoncé pendant un temps donné. Le système ne répond pas aux appuis courts. Dans la version étendue, il est également possible de régler la neutralisation du point (arrêt du temps de l'équipe active au point si un membre de l'autre équipe maintient le bouton au moins 50 % du temps requis) Les temps sont affichés sur un afficheur LCD 16x2 ou 20x4 caractères, qui communique avec le microcontrôleur de contrôle via le bus I2C. Si une équipe d'une équipe ROUGE occupe un point en appuyant sur un bouton, un buzzer se déclenchera, qui annoncera un changement de point par un bip court. Ensuite, la LED de l'équipe ROUGE de cette station s'allumera et l'affichage commencera à ajouter du temps pour cette équipe.


Si le point est occupé par l'équipe GRE et que le membre de l'équipe appuie sur le bouton approprié, le buzzer retentit à nouveau, la LED de l'équipe GRE s'allume, le temps de l'équipe ROUGE est mis en pause et le Le temps de l'équipe GRE est calculé, quel point occupé. L'arbitre doit appuyer sur les deux boutons en même temps pour arrêter les deux fois. Les temps sont arrêtés jusqu'à ce que le point soit réoccupé par certaines des équipes du système Ce type d'entrée est donc adapté pour démarrer une pause, mais il peut aussi terminer le jeu pour son évaluation. En mode de jeu COUNTDOWN, la combinaison des deux boutons est conçue pour arrêter le compte à rebours ! Le nouveau jeu est implémenté en réinitialisant l'ensemble de la carte Arduino via le bouton RST, ou en déconnectant et reconnectant l'alimentation. Dans le menu, il est également possible de configurer l'activité / inactivité du buzzer, qui peut également être inclus dans le jeu. Le mode de jeu DOMINATOR utilise un buzzer pour annoncer l'occupation actuelle d'un point. La gomme n'existe pas dans ce type de DOMINATOR. Un deuxième jeu peut être implémenté dans le système - le compte à rebours, qui vous permet de définir un compte à rebours d'une minute pendant qu'il doit être arrêté. Le joueur arrête le compte à rebours en maintenant les deux boutons enfoncés pendant un certain temps (basé sur le menu de configuration pour la durée de la pression de DOMINATOR).


Liste des temps sur l'écran LCD - Mode de jeu DOMINATION:


Výpis časov na LCD znakovom displeji 20x4 - Arduino Domination Timer - DOMINATOR

Liste des temps sur l'écran LCD - mode de jeu COMPTE À REBOURS:


Výpis časov na LCD znakovom displeji 20x4 - Arduino Domination Timer - COUNTDOWN

Matériel de contrôle compatible - DOMINATOR configurable:



Périphériques compatibles - DOMINATOR configurable:



Schéma de câblage - DOMINATOR configurable


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

DOMINATOR configurable - Mode de jeu DOMINATION


Konfigurovateľné stopky - Arduino pre Airsoft, Paintball

Le câblage des bornes - DOMINATOR configurable - correspond parfaitement au schéma de câblage:


Arduino Uno / Nano (ATmega328P) Convertisseur I2C pour écran LCD
GND GND
5V Vcc
A4 SDA
A5 SCL
Arduino Uno / Nano (ATmega328P) Codeur rotatif - KY-040
GND GND
5V +
D3 CLK
D4 DT
D5 SW
Arduino Uno / Nano (ATmega328P) LED
GND GND
D6 IN (RED)
D7 IN (GREEN)
Arduino Uno / Nano (ATmega328P) Boutons (INPUT_PULLUP)
GND GND
D8 IN (RED)
D9 IN (GRE)
Arduino Uno / Nano (ATmega328P) Ronfleur
D10 IO
GND GND

Programme de test (Shareware) - DOMINATOR configurable avec code machine


Une version Shareware (.hex) est disponible pour le projet DOMINATOR Configurable. La version vous permet de mesurer un maximum de 60 secondes pour chaque équipe. Lorsque ce temps est atteint, le chronomètre s'arrête. L'objectif de la version est de vérifier la compatibilité avec votre matériel. Les codes machine basés sur l'adresse du convertisseur I2C pour l'écran LCD sont disponibles dans le référentiel Github. Les adresses les plus utilisées sont 0x27 et 0x3F. Si vous ne connaissez pas l'adresse de votre convertisseur, utilisez l'exemple intégré dans Arduino IDE -> I2C Scanner, qui écrira l'adresse sur l'interface UART (Serial Monitor). Le code machine peut être téléchargé sur le microcontrôleur Arduino Uno via le logiciel AVRDUDE - partie de l'IDE Arduino, ou avec une interface graphique via XLoader - plus facile à utiliser.

  • AVRDUDE doit être exécuté via le CMD (ligne de commande) installé avec l'IDE Arduino. Situé dans C:/Users/User/Documents/ArduinoData/packages/arduino/tools/avrdude/6.X.X-arduino/bin

  • Exemple de commande pour télécharger un programme sur Arduino Uno / Nano (ATmega328P):
  • Pour le firmware avec l'adresse d'affichage I2C 0x27 (exemple de port COM 21 et 115200 baud/s): avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:encoder_0x27.ino.hex:i
  • Pour le firmware avec l'adresse d'affichage I2C 0x3F (exemple de port COM 21 et 115200 baud/s): avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:encoder_0x3F.ino.hex:i
  • XLoader est une application Windows (outil .exe exécutable) avec une interface graphique simple , qui permet de sélectionner le firmware - code machine (.hex), la plate-forme cible et peut afficher dynamiquement le port COM sur lequel se trouve l'appareil.
  • En cliquant simplement sur Télécharger, le code machine peut être téléchargé automatiquement ( XLoader utilise similaire à l'outil AVRDUDE d'Arduino IDE). La fenêtre XLoader vous informe de la réussite du téléchargement en indiquant le nombre d'octets téléchargés.
  • Le firmware peut être téléchargé depuis le référentiel: ICI. Le firmware se trouve dans le dossier Github du dépôt du projet /firmware/button_dominator/ divisé en fonction de l'adresse du convertisseur I2C (vous l'avez découvert de la sortie du scanner I2C à l'interface UART). Si vous utilisez Arduino Nano avec OLD Bootloader, il est nécessaire de télécharger le projet à 57600 bauds/s, car le baudrate 115200 n'est pas pris en charge !

    Firmware disponible - Bouton-poussoir configurable DOMINATOR


    Nom du micrologiciel (dans le dossier encoder_dominator) Fonctionnalité du micrologiciel Télécharger
    encoder_0x27.ino.hex Testez le firmware du projet Configurable Button Dominator, vous permet de mesurer le temps de 15 secondes pour chaque équipe. Conçu pour un affichage de caractères LCD 16x2 ou 20x4 avec convertisseur I2C, qui communique à l'adresse 0x27 Télécharger le micrologiciel
    encoder_0x3F.ino.hex Testez le firmware du projet Configurable Button Dominator, vous permet de mesurer le temps de 15 secondes pour chaque équipe. Conçu pour un affichage de caractères LCD 16x2 ou 20x4 avec convertisseur I2C, qui communique à l'adresse 0x3F Télécharger le micrologiciel

    Scanner I2C - un programme pour lire l'adresse du convertisseur I2C pour l'écran LCD


    Sortie attendue du scanner I2C:


    Výpis I2C adresy, na ktorej komunikuje I2C prevodník pre displej 16x2 / 20x4

    La bibliothèque Wire est intégrée à l'IDE Arduino, aucune installation n'est requise. Le programme peut être compilé et vérifié la communication via le bus I2C avec affichage de caractères LCD. Le convertisseur I2C doit être connecté à Arduino aux bornes matérielles I2C (SCL à A5, SDA à A4) avant de charger le programme, cela suffit même sans affichage. L'adresse d'affichage récupérée doit être fournie pour une construction réussie pour Arduino et son architecture cible.

    #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
    }