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

martinius96@gmail.com

Arduino LCD Bouton Chronomètre Schème I2C Paintball DOMINATOR

Bouton DOMINATOR - chronomètre pour Airsoft | Paintball


Entités du projet de bouton DOMINATOR:

Tím RED - tlačidlo pre používateľský vstup
L'équipe RED
Tím GRE - tlačidlo pre používateľský vstup
L'équipe GRE
Rozhodca - tlačidlo pre používateľský vstup
Arbitre
Eraser - tlačidlo pre používateľský vstup
Gomme

Description du projet Bouton DOMINATOR


Bouton DOMINATOR est un appareil - chronomètre pour les sports Airsoft et Paintball. 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. Le chronomètre comprend un affichage LCD de caractères mesurant 16x2 (16 caractères x 2 lignes), ou 20x4, qui affiche les temps des équipes individuelles. 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 .


Bouton DOMINATOR utilise l'entrée de bouton pour l'action des membres de l'équipe, ainsi que l'entrée d'entité d'arbitre et de gomme. Ainsi, un total de 4 boutons pour 4 entités système, les boutons de commutation 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 bouton DOMINATOR est disponible en deux versions : La version de base répond immédiatement à un bouton d'occupation de point. La version avancée vous oblige à maintenir le bouton enfoncé pendant 5 secondes pour réussir à occuper un point. 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é. Si l'organisateur (l'arbitre) appuie sur son bouton, les deux temps sont mis en pause jusqu'à ce qu'un membre de l'une des équipes effectue une saisie de l'utilisateur. Ce type d'entrée est donc adapté pour démarrer une pause, mais peut également terminer le jeu pour évaluation. Bouton DOMINATOR a un quatrième bouton pour l'entité gomme, qui s'interrompt et réinitialise les deux fois aux valeurs initiales comme après le démarrage du chronomètre Button DOMINATOR. Utilisé pour redémarrer le jeu, initialiser un nouveau jeu. Le projet convient aux événements Airsoft, aux installations sportives ou aux équipes Airsoft, qui peuvent construire l'équipement. L'avantage du système Bouton DOMINATOR est qu'il peut être cloné et créer X points avec la même configuration via le code machine, qui peut être chargé dans un nombre illimité de cartes et de puces Arduino et garantit un fonctionnement identique de l'application. Les joueurs peuvent ainsi marquer plus de points dans le jeu, tandis qu'à la fin du jeu, le temps est ajouté tant que quel point a été occupé par quelle équipe. Il est également possible d'utiliser des boutons avec une bougie de préchauffage intégrée, ce qui améliore la lisibilité et révèle la couleur des boutons individuels dans l'obscurité.


Liste des temps sur l'affichage à caractères LCD 20x4:


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

Matériel de commande compatible pour bouton-poussoir DOMINATOR:



Périphériques pour bouton poussoir DOMINATOR:



Le principe de fonctionnalité du projet Bouton DOMINATOR côté matériel:


Les boutons sont connectés en mode INPUT_PULLUP, ils utilisent une résistance PULLUP interne de 20 kΩ, qui maintient le niveau logique HIGH sur l'entrée numérique. Lorsque le bouton est enfoncé, le signal LOW est envoyé à l'entrée numérique. En fonction du type de bouton et de la version du micrologiciel utilisés, l'Arduino peut vérifier la durée du maintien du bouton et la logique du compteur est exécutée indépendamment. Lorsque la condition du changement au point est remplie, l'Arduino déclenche un bourdonnement, appliquant des états numériques aux LED. La logique système est exécutée toutes les 1000 ms - routine 1 Hz (temporisée via la fonction millis(), c'est-à-dire via Timer 0), quel que soit l'état des entrées numériques. Dans cette routine, une vérification d'équipe active est effectuée, suivie du temps. L'heure est tracée dynamiquement sur un écran LCD 20x4 ou 16x2 caractères. L'écran communique avec l'Arduino via un bus I2C avec un signal d'horloge (SCL) de 100 kHz - Vitesse standard. La réécriture de l'affichage prend ainsi jusqu'à environ 15 ms, tandis que seule la ligne de l'équipe donnée qui est active au point est écrasée. Avec un sérieux intérêt, le firmware de DOMINATOR peut être étendu à 3 ou 4 équipes.

RFID Dominator - hra pre 4 tímy
Plage de temps maximale pouvant être répertoriée dans le système : 99 heures, 59 minutes et 59 secondes
Consommation : environ 20 mAh sous 5 V. Pratique pour alimenter via une banque d'alimentation, chargeur à partir d'un téléphone avec sortie USB.

Bouton DOMINATOR lors de l'exécution dans le jeu Airsoft


Airsoft Dominator RFID

Bouton-poussoir DOMINATOR - démonstration de la fonctionnalité et de la logique du système



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


Arduino Uno / Nano (ATmega328P) Convertisseur I2C pour écran LCD
GND GND
5V Vcc
A4 (Hardware SDA) SDA
A5 (Hardware SCL) SCL
Arduino Uno / Nano (ATmega328P) Ronfleur
GND GND
5V Vcc
D5 IN
Arduino Uno / Nano (ATmega328P) LED
GND GND
D4 IN (RED) LED
D3 IN (GREEN) LED
Arduino Uno / Nano (ATmega328P) Boutons (INPUT_PULLUP)
GND GND
D6 IN (GREEN)
D7 IN (ERASER)
D8 IN (Rozhodca)
D9 IN (RED)

Schéma de câblage - Bouton DOMINATOR :


Airsoft Dominator RFID

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


Source code - Button Domination Timer based on Arduino
Une version Shareware (.hex) est disponible pour le projet DOMINATOR Bouton. La version permet de mesurer un maximum de 15 secondes de jeu pour chaque équipe. 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 - qui fait 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) :
  • avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:sketch.ino.hex:i
  • XLoader est une application Windows (outil exécutable .exe) avec une interface graphique simple qui vous 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 du projet : 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).

    Firmware disponible (Shareware) - Bouton DOMINATOR


    Nom du micrologiciel (dans le dossier button_dominator) Conçu pour Télécharger
    0x27.ino.hex Le firmware du bouton de test du Bouton Dominator permet de mesurer un 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
    0x3F.ino.hex Le firmware du bouton de test du Bouton Dominator permet de mesurer un temps de 15 secondes pour chaque équipe. Conçu pour un affichage de caractères LCD 16x2 ou 20x4 avec convertisseur I2C qui communique à 0x3F Télécharger le micrologiciel
    Dans le cas des derniers clones chinois d'Arduino Nano qui ont un "Old Bootloader", il faut enregistrer à 57600 baud/s ! Pour les autres versions avec le plus récent Bootloader 115200 baud/s (cette vitesse est également utilisée dans la commande AVRDUDE pour charger le code machine).

    Nahrávanie Shareware verzie projektu Tlačidlový DOMINATOR do Arduina cez XLoader


    XLoader - Arduino - AVRDUDE - Tlačidlový DOMINATOR - testovací program

    Tutoriel vidéo général pour télécharger le firmware sur Arduino via XLoader



    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
    }