Tabla de contenido:

Caja de botones Sim Racing: 8 pasos
Caja de botones Sim Racing: 8 pasos

Video: Caja de botones Sim Racing: 8 pasos

Video: Caja de botones Sim Racing: 8 pasos
Video: Caja de botonera simracing: barata y fácil 2024, Mes de julio
Anonim
Caja de botones Sim Racing
Caja de botones Sim Racing

¡Bienvenidos adictos a las carreras de simulación!

¿Se está quedando sin combinaciones de teclas para asignar todos los controles de su automóvil? ¡Probablemente necesites una caja de botones! En este Instructable crearemos uno desde cero. El cuadro de botón tendrá 32 (!) Estados de botón disponibles. No se requiere software adicional para utilizar este cuadro de botones. Aprenderá cómo configurar una matriz de botones y escribir (o copiar) el código para cargarlo en su Arduino.

Es importante saber que el cuadro de botones no admite muchos botones presionados simultáneamente.

¡Empecemos!

Paso 1: preparación

Preparación
Preparación

Necesitará algunas herramientas, botones y más elementos para crear el cuadro de botones. Siéntase libre de crear el cuadro de botones a su gusto.

Electrónica:

  • Botones
  • Alterna
  • Codificadores rotativos
  • Arduino Pro Micro
  • Cable mini USB a USB
  • Alambres

Instrumentos:

  • Taladro
  • Soldar
  • Calibrar
  • Destornilladores
  • Cortador
  • Llave inglesa

Software:

  • IDE de Arduino
  • Photoshop / Paint (opcional; se puede dibujar a mano)

Otro:

  • Recinto (una caja; se puede comprar o imprimir en 3D personalizado)
  • Envoltura de vinilo de carbono (opcional)
  • Perillas del codificador rotatorio
  • Cubiertas de interruptor (opcional)
  • Impresora de etiquetas (opcional)
  • Pasacables de goma

Una vez que tenga todos los elementos (o los suficientes para comenzar), podemos comenzar a diseñar el diseño del cuadro de botones.

Paso 2: diseñe el diseño de la caja

Herramientas necesarias para este paso:

Photoshop / Paint (opcional; se puede dibujar a mano)

El diseño de una caja de botones puede ser diferente para todos. Sin embargo, para este Instructable usaremos un diseño que consta de:

  • 4 interruptores de palanca de tres vías
  • 2x interruptores de palanca unidireccionales
  • 10 botones pulsadores simples
  • Codificador rotatorio 4x con botón simple

Interruptores de palanca de tres vías:

Hay muchos tipos de interruptores de palanca. Algunos son momentáneos y otros permanecen en su lugar hasta que se vuelven a cambiar. Depende de usted qué tipo usar, pero le aconsejo que use interruptores momentáneos ya que este cuadro de botones no es capaz de tener varios botones activos al mismo tiempo. Dado que los interruptores de palanca son de tres vías (encendido / apagado / encendido), tenemos ocho botones (4x2) disponibles.

Interruptores de palanca unidireccionales:

Estos se pueden considerar como simples botones (apagado / encendido). Estos también pueden ser momentáneos o alternar. Nuevamente, depende de la preferencia personal cuál elegir. Estos nos dan dos (2) botones disponibles.

Botones pulsadores sencillos:

Botones como estos se pueden usar simplemente presionándolos (apagado / encendido). Estos nos darán diez (10) botones.

Codificadores rotativos con pulsador simple:

La mayoría (si no todos) de los codificadores rotativos se pueden girar infinitamente en ambas direcciones. Cada vez que los gira en una dirección, se usa como presionar un botón. Estos codificadores rotativos también se pueden presionar dándoles otro botón. Los codificadores giratorios dan doce (12 = 4x3; girar a la izquierda / girar a la derecha / pulsar) botones.

32 botones:

¡Tenerlos todos juntos nos da 32 (8 + 2 + 10 + 12) pulsaciones de botones!

¿Satisfecho con el diseño? ¡Es hora de empezar a construir!

Paso 3: medir y perforar

Medir y perforar
Medir y perforar
Medir y perforar
Medir y perforar

Herramientas necesarias para este paso:

  • Calibrar
  • Taladro
  • Electrónica (botones, interruptores, etc.)

Mida todos los botones que desea agregar a su cuadro de botones. Si tiene problemas para encontrar las dimensiones de sus dispositivos electrónicos, use una pinza (digital) para obtener el diámetro de los mismos.

Marque los puntos centrales de la electrónica en la cara de su gabinete y taladre agujeros con los tamaños correctos. ¿Busca hacer que el recinto sea un poco más agradable estéticamente? ¡Espere a colocar los botones!

Una vez que haya terminado de perforar los agujeros, podemos hacer que comience a verse como una caja de botones real.

Paso 4: ajuste los botones, rotativos y conmutadores

Ajustar los botones, rotativos y conmutadores
Ajustar los botones, rotativos y conmutadores
Ajustar los botones, rotativos y conmutadores
Ajustar los botones, rotativos y conmutadores

Herramientas necesarias para este paso:

  • Electrónica (botones, interruptores, etc.)
  • Llave inglesa
  • Envoltura de vinilo de carbono (opcional)
  • Cortador (opcional)

Todos sus dispositivos electrónicos deben venir con una tuerca para atornillarlos en su lugar. Que no; Mídelos y compra la tuerca del tamaño correcto.

Si desea mejorar (opinión personal) el aspecto de su caja de botones, puede utilizar una envoltura de vinilo de fibra de carbono. Córtelo al tamaño (y un poco más grande) de la cara de su caja en la que taladró los agujeros. Aplique el vinilo y envuélvalo alrededor de las esquinas hacia la parte posterior. Esto asegurará que la envoltura permanezca en su lugar cuando el gabinete esté cerrado. El vinilo excesivo que ahora bloquea los orificios se puede quitar con un cortador.

Una vez que se haya puesto la envoltura (o no), puede colocar los componentes electrónicos para crear el frente de su caja de botones. ¡Ahora debería tener algo que realmente se parezca a uno! Lamentablemente, todavía no funciona …

Paso 5: diseñe la disposición del cableado

Diseñe la disposición del cableado
Diseñe la disposición del cableado

Herramientas necesarias para este paso:

Photoshop / Paint (opcional; se puede dibujar a mano)

Creando una matriz:

El uso de una matriz nos ahorrará tiempo y una gran cantidad de cables y soldaduras innecesarios. No entraré en muchos detalles, pero te sugeriré que eches un vistazo a este artículo si no estás familiarizado con el concepto de matriz.

Diseñe su propia matriz o use el diseño de este Instructable. En la matriz usaremos cinco grupos. Los grupos están conectados a los siguientes pines en el Arduino:

  • 15: cuatro codificadores rotativos
  • A0: cinco pulsadores
  • A1: dos conmutadores de tres vías y un botón pulsador
  • A2: dos conmutadores de tres vías y un botón pulsador
  • A3: cinco botones

Paso 6: soldadura

Soldadura
Soldadura
Soldadura
Soldadura

Herramientas necesarias para este paso:

  • Soldador
  • Soldar
  • Electrónica (montada en su caja)
  • Arduino Pro Micro
  • Alambres

Opcional:

Sube el código del siguiente paso primero si te preocupa la soldadura. ¡Esto le permitirá verificar sus conexiones

Queremos aplicar la matriz diseñada en el paso anterior al cuadro de botones real. Tómese su tiempo para esto, especialmente si es la primera vez que suelda.

Algunos consejos:

  • Haz un grupo a la vez
  • Conecte el Arduino a su computadora para probar ocasionalmente
  • No caliente demasiado los botones de plástico, ya que pueden derretirse y romper las conexiones.
  • No use demasiada soldadura, menos es mejor
  • Use cables de diferentes colores para cada grupo / tierra

Paso 7: escribir el código

Herramientas necesarias para este paso:

  • IDE de Arduino
  • Biblioteca de joystick
  • Keypad.h (Arduino IDE> Sketch> Incluir biblioteca> Administrar bibliotecas…> Buscar teclado e instalar el creado por Mark Stanley y Alexander Brevig)

#incluir #incluir

#define ENABLE_PULLUPS

#define NUMROTARIES 4 #define NUMBUTTONS 24 #define NUMROWS 5 #define NUMCOLS 5

botones de bytes [NUMROWS] [NUMCOLS] = {

{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23}, };

struct rotariesdef {

byte pin1; byte pin2; int ccwchar; int cwchar; estado de carácter volátil sin firmar; };

rotariesdef rotaries [NUMROTARIES] {

{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };

#define DIR_CCW 0x10

#define DIR_CW 0x20 #define R_START 0x0

#ifdef HALF_STEP

#define R_CCW_BEGIN 0x1 #define R_CW_BEGIN 0x2 #define R_START_M 0x3 #define R_CW_BEGIN_M 0x4 #define R_CCW_BEGIN_M 0x5 const unsigned char ttable [6] [4] = {//, R_START_CART, R_START_BEGIN_M 0x4 R_CCW_BEGIN {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START}, // R_CW_BEGIN {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START}, // R_START_M (11) {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START}, // R_CW_BEGIN_M {R_START_M, RIN_START_M, R_START_M, RIN_START_M, DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},}; #else #define R_CW_FINAL 0x1 #define R_CW_BEGIN 0x2 #define R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #define R_CCW_FINAL 0x5 #define R_CCW_NEXT 0x6

tabla de caracteres sin firmar const [7] [4] = {

// R_START {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START}, // R_CW_FINAL {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW}, {// R_CW_BEGIN R_CW_NEXT, R_CW_BEGIN, R_START, R_START}, {// R_CW_NEXT R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START}, {// R_CCW_BEGIN R_CCW_NEXT, R_START, R_CCW_BEGIN, R_START}, {// R_CCW_FINAL R_CCW_NEXT, R_CCW_FINAL, R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},}; #terminara si

byte rowPins [NUMROWS] = {21, 20, 19, 18, 15};

byte colPins [NUMCOLS] = {14, 16, 10, 9, 8};

Teclado buttbx = Teclado (makeKeymap (botones), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, falso, falso, falso, falso, falso, falso, falso, falso, falso, falso, falso);

configuración vacía () {

Joystick.begin (); rotary_init ();}

bucle vacío () {

CheckAllEncoders ();

CheckAllButtons ();

}

void CheckAllButtons (void) {

if (buttbx.getKeys ()) {for (int i = 0; i

void rotary_init () {

para (int i = 0; i

unsigned char rotary_process (int _i) {

unsigned char pinstate = (digitalRead (rotativos [_i].pin2) << 1) | digitalRead (rotativos [_i].pin1); rotary [_i].state = ttable [rotaries [_i].state & 0xf] [pinstate]; return (rotativos [_i].state & 0x30); }

void CheckAllEncoders (void) {for (int i = 0; i <NUMROTARIES; i ++) {

resultado de carácter sin signo = proceso_rrotatorio (i); if (resultado == DIR_CCW) {Joystick.setButton (rotativos .ccwchar, 1); retraso (50); Joystick.setButton (rotativos .ccwchar, 0); }; if (resultado == DIR_CW) {Joystick.setButton (rotativos .cwchar, 1); retraso (50); Joystick.setButton (rotativos .cwchar, 0); }; }}

  1. Conecte su Arduino Pro Micro a su computadora conectando el cable USB
  2. Para cargar el código, seleccione el tipo de Arduino yendo a Herramientas> Placa:…> Arduino / Genuino Micro.
  3. Para seleccionar el puerto USB correcto, vaya a Herramientas> Puerto:> COM x (Arduino / Genuino Micro)
  4. Verifique el boceto haciendo clic en ✓ en la esquina superior izquierda (debajo de Archivo)
  5. Presione → junto a él para cargarlo en el Arduino

Paso 8: agregue a su equipo

Agregar a su plataforma
Agregar a su plataforma

¡Felicidades! Has llegado tan lejos. ¡Ahora es el momento de correr!

Recomendado: