Repositorio de Proyectos - Firma Shareware para Configurable Dominator: Firmware del temporizador de dominación
Si está interesado en el firmware del DOMINADOR configurable en código máquina, por favor contacte con el autor del proyecto en inglés en:

martinius96@gmail.com

Arduino LCD Codificador rotatorio Cronógrafo Esquema Botón Menu Paintball DOMINADOR

DOMINADOR configurable - cronómetro para Airsoft paintball


Entidades en el proyecto DOMINADOR configurable:

Tím RED - tlačidlo pre používateľský vstup
El equipo RED
Rozhodca - kombinácia oboch tlačidiel zastaví čas
Árbitro / STOP
Tím GRE - tlačidlo pre používateľský vstup
El equipo GRE

Descripción del botón configurable DOMINADOR:


DOMINADOR es un cronómetro para deportes de Airsoft y Paintball, que permite medir el tiempo de un punto con una resolución de segundos. El cronómetro está equipado con una pantalla de caracteres LCD de 16x2 / 20x4. Después de encender el dispositivo, es posible cambiar entre los elementos del menú en la pantalla usando el codificador rotatorio - KY-040. A través de los elementos, es posible iniciar el modo de juego DOMINADOR, que responde a los botones del usuario (entradas), o es posible establecer el tiempo de ocupación del equipo antes del juego en el modo configurable. Este parámetro representa el tiempo requerido que se presiona la tecla hasta que el equipo ocupa el punto con éxito. Este parámetro configurable se implementa para el número de segundos. El segundo parámetro configurable es el final automático del juego para llegar a un cierto número de horas del cronómetro con la opción ILIMITADO - cuando el cronómetro cuenta hasta el infinito, o después del tiempo máximo de visualización - 99 horas, 59 minutos, 59 segundos. 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. 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 - DOMINATOR. Al comienzo del juego, la pantalla muestra los tiempos 00 horas, 00 minutos, 00 segundos para equipo ROJO , equipo GRE .

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

Botón DOMINADOR utiliza la entrada de botón para la acción de los miembros del equipo, así como la entrada de la entidad árbitro. En total, se utilizan 2 botones para 3 entidades del sistema en el sistema DOMINADOR Configurable. Se utilizan los botones de alternar 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 DOMINADOR configurable responde a la longitud de la prensa, que se establece en el menú de configuración a través de un codificador. Se requiere mantener presionado el botón durante un tiempo determinado. El sistema no responde a pulsaciones breves. En la versión extendida, también es posible configurar la neutralización de puntos (detener el tiempo del equipo activo en el punto si un miembro del otro equipo mantiene presionado el botón al menos el 50 % del tiempo requerido) 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ó. El árbitro debe presionar ambos botones al mismo tiempo para detener los dos tiempos. Los tiempos se paran hasta que el punto es reocupado por alguno de los equipos del sistema Por lo tanto, este tipo de entrada es adecuado para iniciar un descanso, pero también puede finalizar el juego para su evaluación. ¡En el modo de juego CUENTA REGRESIVA, la combinación de ambos botones está diseñada para detener la cuenta regresiva! El nuevo juego se implementa reiniciando toda la placa Arduino a través del botón RST o desconectando y volviendo a conectar la fuente de alimentación. En el menú también es posible configurar la actividad/inactividad del zumbador, que también se puede incluir en el juego. El modo de juego DOMINADOR utiliza un zumbador para anunciar la ocupación actual de un punto. Eraser no existe en este tipo de DOMINADOR. Se puede implementar un segundo juego en el sistema: la cuenta regresiva, que le permite establecer una cuenta regresiva de minutos mientras debe detenerse. El jugador detiene la cuenta regresiva manteniendo presionados ambos botones durante un cierto tiempo (según el menú de configuración para la duración de la pulsación de DOMINADOR).


Lista de tiempos en la pantalla LCD - Modo de juego DOMINACIÓN:


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

Lista de tiempos en la pantalla LCD - modo de juego CUENTA REGRESIVA:


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

Hardware de control compatible - DOMINADOR Configurable:



Periféricos Compatibles - DOMINADOR Configurable:



Esquema eléctrico - DOMINADOR Configurable


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

DOMINADOR configurable - modo de juego DOMINACIÓN


Konfigurovateľné stopky - Arduino pre Airsoft, Paintball

El cableado de los terminales - DOMINADOR configurable - corresponde completamente al diagrama de cableado:


Arduino Uno / Nano (ATmega328P) Convertidor I2C para pantalla LCD
GND GND
5V Vcc
A4 SDA
A5 SCL
Arduino Uno / Nano (ATmega328P) Codificador rotatorio - KY-040
GND GND
5V +
D3 CLK
D4 DT
D5 SW
Arduino Uno / Nano (ATmega328P) LED diodos
GND GND
D6 IN (RED)
D7 IN (GREEN)
Arduino Uno / Nano (ATmega328P) Botones (INPUT_PULLUP)
GND GND
D8 IN (RED)
D9 IN (GRE)
Arduino Uno / Nano (ATmega328P) Zumbador
D10 IO
GND GND

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


Está disponible una versión Shareware (.hex) para el proyecto DOMINADOR Configurable. La versión permite medir un máximo de 60 segundos para cada equipo. Cuando se alcanza este tiempo, el cronómetro se detiene. 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. Situado 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):
  • Pre firmvér s I2C adresou displeja 0x27 (ukážkovo COM port 21 a 115200 baud/s): avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:encoder_0x27.ino.hex:i
  • Pre firmvér s I2C adresou displeja 0x3F (ukážkovo COM port 21 a 115200 baud/s): avrdude -CC: avrdude.conf -v -patmega328p -carduino -PCOM21 -b115200 -D -Uflash:w:encoder_0x3F.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 informa sobre la carga exitosa en forma de una lista de bytes cargados.
  • El firmware se puede descargar desde el repositorio: 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). Si usa Arduino Nano con OLD Bootloader, es necesario cargar el proyecto a 57600 baudios / s, ¡ya que la velocidad de baudios 115200 no es compatible!

    Firmware disponible - Pulsador configurable DOMINADOR


    Nombre del firmware (en la carpeta encoder_dominator) Funcionalidad de firmware Descargar
    encoder_0x27.ino.hex Firmware de prueba del proyecto Configurable Botón Dominator, permite medir tiempos 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
    encoder_0x3F.ino.hex Firmware de prueba del proyecto Configurable Botón Dominator, permite medir tiempos 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

    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 a Arduino a los terminales de hardware I2C (SCL a A5, SDA a A4) antes de cargar el programa, es suficiente 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
    }