Repositorio de proyectos - Shareware de firmware para Botón DOMINADOR: Firmware del temporizador de dominación
Si está interesado en el firmware para el código de máquina del botón DOMINADOR, comuníquese con el autor en inglés en:

martinius96@gmail.com

Arduino LCD Botón Cronógrafo Diagrama I2C Paintball DOMINADOR

Botón DOMINADOR - cronómetro para Airsoft | paintball


Entidades en el proyecto del botón DOMINADOR:

Tím RED - tlačidlo pre používateľský vstup
El equipo RED
Tím GRE - tlačidlo pre používateľský vstup
El equipo GRE
Rozhodca - tlačidlo pre používateľský vstup
Árbitro
Eraser - tlačidlo pre používateľský vstup
Borrador

Descripción del proyecto Botón DOMINADOR


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.


Lista de tiempos en la pantalla de caracteres LCD 20x4:


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

Hardware de control compatible para pulsador DOMINADOR:



Periféricos para pulsador DOMINADOR:



El principio de funcionalidad del pulsador Button DOMINATOR en el lado del hardware:


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.

RFID Dominator - hra pre 4 tímy
Rango de tiempo máximo que se puede listar en el sistema: 99 horas, 59 minutos y 59 segundos
Consumo: aproximadamente 20 mAh con alimentación de 5 V. Conveniente para alimentar a través de un banco de energía, cargador desde un teléfono con salida USB.

Botón DOMINADOR mientras se ejecuta en el juego Airsoft


Airsoft DOMINADOR RFID

Botón DOMINADOR - demostración de la funcionalidad y lógica del sistema



La conexión de la tabla de los terminales - Botón DOMINADOR - corresponde completamente al diagrama de cableado:


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)

Esquema eléctrico - Botón DOMINADOR:


Airsoft DOMINADOR RFID

Programa de prueba (Shareware) - Botón DOMINADOR con código máquina


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.

  • AVRDUDE debe ejecutarse a través del CMD (línea de comando) instalado con el IDE de Arduino. Ubicado en C:/Users/User/Documents/ArduinoData/packages/arduino/tools/avrdude/6.X.X-arduino/bin
  • Ejemplo de comando para cargar un programa en Arduino Uno/Nano (ATmega328P):
  • avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash: w: sketch.ino.hex: i
  • XLoader es una aplicación de Windows (herramienta ejecutable .exe) con una interfaz gráfica simple que le permite seleccionar el firmware - código de máquina (.hex), la plataforma de destino y puede mostrar dinámicamente el puerto COM en el que se encuentra el dispositivo.
  • Simplemente haciendo clic en Cargar, el código de máquina se puede cargar automáticamente ( XLoader utiliza similar a la herramienta Arduino IDE AVRDUDE). La ventana de XLoader le informa sobre la carga exitosa al enumerar la cantidad de bytes cargados.
  • El firmware se puede descargar desde el repositorio del proyecto: AQUÍ. El firmware está en la carpeta Github del repositorio del proyecto /firmware/button_dominator/ dividido según la dirección del convertidor I2C (se enteró de la salida del escáner I2C en la interfaz UART).

    Firmware disponible (Shareware) - Botón DOMINADOR


    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
    En el caso de los últimos clones chinos de Arduino Nano que tienen un "Old Bootloader", ¡es necesario grabar a 57600 baudios / s! Para otras versiones con el Bootloader más nuevo 115200 baudios/s (esta velocidad también se usa en el comando AVRDUDE para cargar código máquina).

    Cargando la versión Shareware del proyecto Botón DOMINADOR a Arduino a través de XLoader


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

    Vídeo tutorial general para subir firmware a Arduino a través de XLoader



    Escáner I2C: un programa para leer la dirección del convertidor I2C para la pantalla LCD


    Salida esperada del escáner I2C:


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

    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
    }