Domination Timer (DOMINATOR) est un compteur de temps (chronomètre) conçu pour 2 équipes qui jouent l'une contre l'autre. Le chronomètre convient au mode de jeu Airsoft / Paintball DOMINATION, resp. Capturer la colline. Ils se composent d'un microcontrôleur ATmega328P (AVR), qui peut faire partie du kit de développement Arduino (Uno / Nano / Pro Mini) ou être utilisé de manière autonome. Un afficheur à caractères LCD (taille 16x2 ou 20x4) permet de visualiser les temps, qui est relié au microcontrôleur et communique avec lui. Les temps sont listés sur deux lignes l'une en dessous de l'autre et sont mis à jour dynamiquement s'il y a une équipe active au point (un point occupé par une équipe). Le chronomètre est équipé d'indicateurs LED sous la forme d'équipes individuelles, qui signalent l'équipe active au point et d'un détecteur (transducteur piézo), qui annonce le changement au point après avoir fixé la carte RFID. Les équipes sont implémentées dans le jeu - équipe RED et équipe GRE qui jouent les uns contre les autres et essaient d'occuper le point puis de le garder le plus longtemps possible. Au début du jeu, l'écran affiche les temps 00 heures, 00 minutes, 00 secondes pour l'équipe ROUGE , équipe GRE . Chaque membre de l'équipe est équipé d'une puce RFID intégrée au bracelet (ou carte/porte-clés). La puce RFID transmet son identifiant unique - UID (identifiant unique), qui est lu par un lecteur RFID et vérifié dans la logique du système auquel appartient l'entité (équipe). Les bracelets individuels peuvent être codés par couleur (rouge, vert par fonction d'équipe et d'entité), ce qui permet de les distribuer plus rapidement aux joueurs, mais aussi de les archiver et de les stocker par couleur. L'équipe RED occupera le point où le membre de l'équipe RED attachera sa carte au lecteur RFID. Cette action déclenche un buzzer qui annonce le changement de point par un bip court. Par la suite, la LED de l'équipe ROUGE à cette station s'allumera et l'affichage commencera à ajouter le temps pour cette équipe jusqu'à ce que la carte d'équipe du membre soit insérée , Arbitre , ou Gomme . Si le point est occupé par un lecteur GRE et que la carte est attachée à un lecteur RFID, le buzzer annoncera ce changement avec un bip court, la LED GRE s'allumera (la LED ROUGE s'éteint), l'heure actuelle de RED s'arrête et l'heure de GRE est comptée.
Si l'arbitre attache sa carte RFID, le temps de course s'arrêtera à la valeur actuelle. Le point devient neutre, la LED de l'équipe active s'éteint. L'arrêt dure jusqu'à ce qu'un membre de l' équipe RED ou l'équipe GRE présente sa carte. Ce type de carte est ainsi adapté pour arrêter momentanément une partie en cours, contrôler l'intervention d'un joueur ou des blessures. Dans le même temps, la carte peut être utilisée à la fin d'un tour de jeu, pour évaluer le tour, respawn des équipes avant de continuer. Si Eraser attache la carte, les deux temps s'arrêteront et se réinitialiseront à la valeur initiale de 00 heures, 00 minutes, 00 secondes, qui sera affichée. La carte Eraser est utilisée pour redémarrer le jeu, pour initialiser un nouveau jeu sans avoir besoin d'un cycle de mise sous tension. Le lecteur RFID répond immédiatement à l'insertion d'une carte RFID, y compris toute la logique du projet Domination Timer. Le projet convient aux événements Airsoft (MilSim, LARP), aux installations sportives ou aux équipes Airsoft, qui peuvent construire un Domination Timer avec leur propre matériel. Le firmware est universel, basé sur le schéma de câblage, il est également possible d'utiliser la conception de PCB disponible pour la production de cartes de circuits imprimés. L'avantage du projet RFID Domination Timer est que la licence d'utilisation autorise l'utilisateur à cloner et créer X points avec la même configuration via le code machine. Le code machine (.hex) est un format de micrologiciel compilé pour le projet RFID Domination Timer pour les cartes RFID UID fournies qui sont intégrées dans le code avant la compilation. Il est ainsi possible de placer n'importe quel nombre de points RFID Domination Timer fonctionnant indépendamment dans le jeu, qui répondent à des cartes RFID identiques selon une configuration uniforme. Le système RFID Domination Timer est réglé, il peut être mis en jeu immédiatement. Téléchargements du micrologiciel dans les 10 secondes via XLoader .
Le lecteur RFID NXP RC522 communique avec le microcontrôleur (puce Arduino / autonome ATmega328P) via le bus SPI avec un signal d'horloge (SCLK) de 4 MHz. Le RC522 répond à la puce RFID à une distance d'environ 3 cm de l'antenne, avec un gain d'antenne configurable dans la plage de 18 à 48 dB (48 dB est utilisé dans l'application finale pour le Domination Timer). Lit l'UID (identifiant) des puces RFID à portée, transmet cet identifiant à Arduino. Arduino compare l'adresse de la carte lue dans plusieurs conditions, déclenche un bip sonore, applique des états numériques aux LED, exécute un compteur universel contrôlé par la fonction interne millis (), qui est responsable du comptage des deux fois. Sur la base de la condition remplie, le compteur sera appliqué à l'équipe donnée à laquelle appartient l'UID et le compteur de temps est en cours d'exécution. L'heure est tracée sur un écran LCD 16x2 ou 20x4 caractères. Les données temporelles sont envoyées via le bus I2C avec un signal d'horloge (SCL) de 100 kHz (vitesse standard). Pour rétablir l'affichage le plus rapidement possible, seul le numéro à la position donnée (caractère donné) est écrasé. Les heures, les minutes et les secondes ne sont réécrites que lorsqu'elles sont modifiées et toujours uniquement pour une équipe donnée. En cas d'intérêt sérieux, un firmware peut être créé dans le code machine pour ATmega328P à mesurer pour d'autres types de lecteurs RFID : RDM6300, PN532, Wiegand W26, augmentation du signal d'horloge du bus I2C jusqu'à 400 kHz (Fast Speed). Extension possible du firmware du jeu Domination Timer à 3 ou 4 équipes par accord individuel.
En termes de polyvalence, le projet RFID Domination Timer est adapté à la mise en œuvre dans les actions Airsoft, et avec la possibilité de clonage de firmware, il est possible d'installer X points Domination Timer avec un firmware identique dans le champ de jeu, que les joueurs peuvent jouer avec le mêmes cartes RFID. Domination Timer convient également aux équipes, aux installations sportives et aux terrains de jeux, qui peuvent utiliser cet appareil pour étendre les services et les modes de jeu pour différents nombres de joueurs. Si les cartes, bracelets ou porte-clés RFID sont codés par couleur, c'est très facile et universellement distribué aux joueurs en fonction de leur équipe. Leur archivage est également facile. L'utilisation de cartes, de bracelets ou de porte-clés est facile et peut gérer tous les âges dans les jeux Airsoft. La puce RFID elle-même est protégée dans un boîtier en plastique, elle ne craint pas la boue, la saleté, l'eau, le gel, elle ne nécessite aucun entretien. Il n'a pas de batterie, la puce active le lecteur RFID, qui le charge avec le champ électromagnétique transmis et lui permet d'envoyer un UID - identifiant s'il est à portée du lecteur RFID. Domination Timer convient aux modes de jeu avec le même nombre de joueurs dans les deux équipes, par ex. DOMINATION, Capture Point (Points pour plusieurs points Domination Timer clonés). L'utilisation est principalement pour les sports Airsoft, Paintball, Nerf Wars.
Les PCB peuvent être fabriqués en Slovaquie chez PB Spoj , où ils peuvent produire des PCB double face. La production peut être réalisée, par exemple, en Chine, où ils peuvent produire des PCB double face de conception GERBER. L'un des fabricants les plus populaires et les moins chers est JLCPCB, où les fichiers GERBER peuvent être téléchargés directement sous forme d'archive .zip. Le PCB est visualisé, les couches, les dimensions du PCB, le PCB double face sont réglés automatiquement. La production prend 1-2 jours. Ce fabricant était célèbre pour l'action de produire 10 pièces de PCB pour 2 $.
Aujourd'hui, JLCPCB vous permet de produire 5 pièces de ce PCB pour RFID Domination Timer pour 6,96 €, 10 pièces pour 10,16 € (actuel à partir de janvier 2021, les prix sont en hausse). Expédition - l'alternative la moins chère est disponible à 7,44 € pour une livraison DHL dans les 3-5 jours ouvrables, tandis que le prix de l'envoi est de 23,16 €. JLCPCB appliquera automatiquement un bon de réduction de 8€ pour les frais de port, qui vous sera attribué lors de votre inscription. Ainsi, avec l'alternative d'expédition la moins chère avec livraison sous 25 jours, cette expédition est gratuite avec le coupon lors du premier achat. Un fabricant de PCB intéressant est également AISLER, qui propose une production de PCB à partir de 3 pièces avec un prix d'environ 7,6 € par pièce avec livraison gratuite, ou offre également la possibilité d'une livraison moyennant un supplément via UPS. Il est également possible d'utiliser d'autres fabricants disponibles, par exemple : PCBWay, AllPCB, NextPCB, SeeedStudio, qui disposent de la technologie de production de PCB par méthode machine à partir de fichiers GERBER.
Arduino Uno / Nano (ATmega328P) | NXP RFID RC522 |
GND | GND |
3V3 | 3V3 |
D9 | RST |
D10 | SDA (SS) |
D11 (Hardware MOSI) | MOSI |
D12 (Hardware MISO) | MISO |
D13 (Hardware SCK) | SCK |
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 |
D5 | IN |
Arduino Uno / Nano (ATmega328P) | LED |
GND | GND |
D4 | IN (RED) |
D3 | IN (GREEN) |
Une version Shareware en code machine (.hex) est disponible pour le projet RFID Domination Timer pour le microcontrôleur Arduino (ATmega328P c'est-à-dire Arduino Uno / Nano / Pro Mini). La version vous permet d'enregistrer initialement 4 cartes RFID UID différentes, qui sont attribuées aux équipes RED, GRE, Referee et Eraser. La demande de saisie d'une carte spécifique s'affiche sur un afficheur LCD 16x2 ou 20x4 caractères avec un convertisseur I2C. Par la suite, il est possible de tester la mécanique du jeu et la réponse du lecteur à la carte RFID avec visualisation du temps sur l'afficheur. Il est possible de mesurer un maximum de 15 secondes de jeu pour chaque équipe avec la possibilité de le réinitialiser avec une carte gomme et de mesurer à nouveau pendant 15 secondes indéfiniment. 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 de convertisseur I2C 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 (également disponible sur cette page à la fin), 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.
Nom du micrologiciel (dans le dossier rfid_dominator) | Fonctionnalité | Télécharger |
RFID_Domination Timer_0x27.hex | Le firmware de test du projet RFID Domination Timer 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 |
RFID_Domination Timer_0x3F.hex | Le firmware de test du projet RFID Domination Timer 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 |
Le programme est utilisé pour récupérer les identifiants (UID) des étiquettes RFID, des cartes qui seront utilisées dans le programme pour RFID Domination Timer - ce code source ne représentent RFID Domination Timer, ni sa logique ! . La carte RFID UID est écrite sur le moniteur série (UART) - la vitesse utilisée est de 9600 bauds / s (caractères par seconde). La déclaration doit être enregistrée et transcrite dans un document clair .xls (EXCEL), ce qui facilitera la gestion des cartes RFID attribuées à des équipes et entités spécifiques pour l'application finale RFID Domination Timer, dont le code machine est lié à les cartes UID fournies. Vous devez importer la bibliothèque MFRC522 dans votre IDE Arduino pour charger avec succès le code source afin de charger les cartes UID.
Le nom de la bibliothèque | Fonction bibliothèque | Télécharger |
---|---|---|
MFRC522 |
Bibliothèque pour microcontrôleurs AVR (ATmega) Arduino Uno / Nano / Mega. Il permet de communiquer avec le lecteur RFID NXP RC522 via le bus SPI. |
Télécharger |
LiquidCrystal_I2C |
Bibliothèque pour microcontrôleurs AVR (ATmega) Arduino Uno / Nano / Mega. Il permet de communiquer avec l'afficheur à caractères LCD via le bus I2C. |
Télécharger |
/*|---------------------------------------------------------------------|*/ /*|Titre : Chargement des cartes UID RFID |*/ /*|Description : Lecture via le lecteur RFID RC522 |*/ /*|l'adresse de la carte RFID attachée et imprimée UID sur l'interface |*/ /*|UART. |*/ /*|Les cartes UID enregistrées sont utilisées pour le Domination Timer |*/ /*|l'auteur: Martin Chlebovec |*/ /*|E-mail: martinius96@gmail.com |*/ /*|Licence d'utilisation: MIT |*/ /*|Révision: 12. Mars 2021 |*/ /*|---------------------------------------------------------------------|*/ // Modèle - Google SpreadSheet: https://docs.google.com/spreadsheets/d/1EHpdJi8v84eJ-6ExEPT6JuPkxI9Tfbm8v85zGRFvJ1Q/edit?usp=sharing /* * Typical pin layout used: * ----------------------------------------------------------------------------------------- * MFRC522 Arduino Arduino Arduino Arduino Arduino * Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro * Signal Pin Pin Pin Pin Pin Pin * ----------------------------------------------------------------------------------------- * RST/Reset RST 9 5 D9 RESET/ICSP-5 RST * SPI SS SDA(SS) 10 53 D10 10 10 * SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16 * SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14 * SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15 * */ #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(rfid.RxGain_max); 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("Code of card: "); unsigned long kod = 10000 * buffer[4] + 1000 * buffer[3] + 100 * buffer[2] + 10 * buffer[1] + buffer[0]; //finalny kod karty Serial.println(kod); }
Les cartes UID RFID enregistrées pour RED, GRE, Referee et Eraser sont saisies dans les champs. Les terrains peuvent être facilement redimensionnés pour augmenter le nombre de joueurs, d'arbitres... L'UID doit être fourni en sortie .xls. Vous pouvez utiliser le modèle public pour Google Spreadsheets au-dessus du code source (icône Google SpreadSheet). Des tableaux entiers sont stockés dans la mémoire flash du microcontrôleur sous forme de segments de ligne uniquement, de sorte que les tableaux n'ont pas à s'exécuter dans la RAM pour occuper la mémoire de fonctionnement que le Domination Timer utilise pour le comptage continu des temps. En même temps, les champs ne sont pas extensibles pendant l'exécution du programme. Leur réglage, taille est fixé pour une application spécifique adaptée. Le programme standard RFID Domination Timer pour 10x UID pour les équipes RED et GRE et 2x UID pour l'arbitre et l'effaceur (24x UID au total) occupe 9512 octets de mémoire flash, c.-à-d. 30% et 501 octets de RAM, i. 24 %. Variables de chaînes statiques (const) stockées dans PROGMEM. Macro F utilisée pour les rapports statiques sur le moniteur UART ou sur l'affichage de caractères LCD.
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 avec l'UID des cartes RFID.
#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 }