Botón DOMINADOR es un dispositivo - cronómetro para deportes como Airsoft, Paintball. El cronómetro utiliza un microcontrolador de control Arduino (Arduino Uno/Nano) o un chip separado (Atmel) ATmega328P, que controla toda la lógica del sistema. El cronómetro incluye una pantalla LCD de caracteres que mide 16x2 (16 caracteres x 2 líneas), o 20x4, que muestra los tiempos de los equipos individuales. Hay 2 equipos en el juego: equipo RED y equipo GRE que juegan uno contra el otro y ocupan el punto imaginario que está formado por este dispositivo - DOMINADOR. Al comienzo del juego, la pantalla muestra los tiempos 00 horas, 00 minutos, 00 segundos para equipo RED , equipo GRE .
Botón DOMINADOR utiliza la entrada de botón para la acción de los miembros del equipo, así como la entrada de entidad de árbitro y borrador. Por lo tanto, se utilizan un total de 4 botones para 4 entidades del sistema, los botones de conmutación conectados en el modo INPUT_PULLUP. Al presionar el botón, la señal GND se envía al terminal de entrada digital Arduino (señal de conmutación Active-LOW). Se utilizan los botones de alternar, no los botones de alternar (no responderían a la lógica del sistema, todos ellos estarían siempre "pulsados"). El botón DOMINATOR está disponible en dos versiones: La versión básica responde inmediatamente a un botón de ocupación de puntos. La versión avanzada requiere que mantenga presionado el botón durante 5 segundos para ocupar un punto con éxito. Los tiempos se muestran en una pantalla de caracteres LCD de 16x2 o 20x4, que se comunica con el microcontrolador de control a través del bus I2C. Si un equipo de un equipo RED ocupa un punto pulsando un botón, sonará un zumbador que anunciará el cambio de punto con un pitido breve. Luego, el LED ROJO del equipo en esta estación se encenderá y la pantalla comenzará a agregar tiempo para ese equipo.
Si el punto está ocupado por el equipo GRE y el miembro del equipo presiona el botón correspondiente, el zumbador vuelve a sonar, el LED del equipo GRE se enciende, el tiempo del equipo RED se detiene y el Se calcula el tiempo del equipo GRE, qué punto ocupó. Si el organizador (árbitro) presiona su botón, ambos tiempos se pausan hasta que un miembro de uno de los equipos realiza la entrada del usuario. Este tipo de entrada es adecuado para iniciar un descanso, pero también puede finalizar el juego para su evaluación. Botón DOMINADOR dispone de un cuarto botón para la entidad borrador, que pausa y resetea tanto los tiempos a valores iniciales como tras iniciar el cronómetro Button DOMINATOR. Se utiliza para reiniciar el juego, inicializar un nuevo juego. El proyecto es adecuado para eventos de Airsoft, instalaciones deportivas o equipos de Airsoft, que pueden construir el equipo. La ventaja del sistema Botón DOMINADOR es que se puede clonar y crear puntos X con la misma configuración mediante código de máquina, que se puede cargar en un número ilimitado de placas y chips Arduino y garantiza un funcionamiento idéntico de la aplicación. Por lo tanto, los jugadores pueden anotar más puntos en el juego, mientras que al final del juego se suma el tiempo siempre y cuando qué punto haya ocupado qué equipo. También es posible utilizar botones con una bujía incandescente integrada, lo que mejora la legibilidad y revela el color de los botones individuales en la oscuridad.
Los botones están conectados en modo INPUT_PULLUP, utilizan una resistencia PULLUP interna de 20 kΩ, que mantiene el nivel lógico ALTO en la entrada digital. Cuando se presiona el botón, la señal BAJA se envía a la entrada digital. Según el tipo de botón y la versión de firmware utilizada, Arduino puede verificar la duración de la retención del botón y la lógica del contador se ejecuta de forma independiente. Cuando se cumple la condición del cambio en el punto, el Arduino activa un zumbido, aplicando estados digitales a los LED. La lógica del sistema se ejecuta cada 1000 ms - rutina de 1 Hz (temporizada a través de la función millis (), es decir, a través del Timer 0), independientemente del estado de las entradas digitales. En esta rutina, se realiza un control de equipo activo, seguido de tiempo. El tiempo se traza dinámicamente en una pantalla de caracteres LCD de 20x4 o 16x2. La pantalla se comunica con el Arduino a través de un bus I2C con una señal de reloj (SCL) de 100 kHz - Velocidad estándar. Por lo tanto, la reescritura de la pantalla tarda aproximadamente 15 ms, mientras que solo se sobrescribe la línea del equipo dado que está activa en el punto. Con serio interés, el firmware para DOMINATOR se puede extender a 3 o 4 equipos.
Arduino Uno / Nano (ATmega328P) | Convertidor I2C para pantalla LCD |
GND | GND |
5V | Vcc |
A4 (Hardware SDA) | SDA |
A5 (Hardware SCL) | SCL |
Arduino Uno / Nano (ATmega328P) | Zumbador |
GND | GND |
5V | Vcc |
D5 | IN |
Arduino Uno / Nano (ATmega328P) | LED diodos |
GND | GND |
D4 | IN (RED) LED |
D3 | IN (GREEN) LED | Arduino Uno / Nano (ATmega328P) | Botones (INPUT_PULLUP) |
GND | GND |
D6 | IN (GREEN) |
D7 | IN (ERASER) |
D8 | IN (Rozhodca) |
D9 | IN (RED) |
Hay disponible una versión Shareware (.hex) para el proyecto DOMINADOR Botón. La versión permite medir un máximo de 15 segundos de juego para cada equipo. El objetivo de la versión es verificar la compatibilidad con su hardware. Los códigos de máquina basados en la dirección del convertidor I2C para la pantalla LCD están disponibles en el repositorio de Github. Las direcciones más utilizadas son 0x27 y 0x3F. Si no conoce la dirección de su convertidor, use el ejemplo incorporado en Arduino IDE -> Escáner I2C, que escribirá la dirección en la interfaz UART (monitor en serie). El código de la máquina se puede cargar en el microcontrolador Arduino Uno a través del software AVRDUDE, parte del IDE de Arduino, o con una interfaz GUI a través de XLoader - más fácil de usar.
Nombre del firmware (en la carpeta button_dominator) | Diseñado para | Descargar |
0x27.ino.hex | El firmware del botón de prueba del Botón DOMINADOR le permite medir el tiempo de 15 segundos para cada equipo. Diseñado para pantalla de caracteres LCD de 16x2 o 20x4 con convertidor I2C, que se comunica en la dirección 0x27 | Descargar firmware |
0x3F.ino.hex | El firmware del botón de prueba del Botón DOMINADOR le permite medir el tiempo de 15 segundos para cada equipo. Diseñado para pantalla de caracteres LCD de 16x2 o 20x4 con convertidor I2C, que se comunica en la dirección 0x3F | Descargar firmware |
La biblioteca Wire está integrada en el IDE de Arduino, no se requiere instalación. El programa se puede compilar y verificar la comunicación a través del bus I2C con pantalla LCD de caracteres. El convertidor I2C debe conectarse al Arduino a los terminales de hardware I2C (SCL a A5, SDA a A4) antes de cargar el programa, incluso sin pantalla. La dirección de visualización recuperada debe proporcionarse para una compilación exitosa de Arduino y su arquitectura de destino.
#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 }