Tabla de contenido:

Joystick inalámbrico para PC / botones de rueda: 4 pasos (con imágenes)
Joystick inalámbrico para PC / botones de rueda: 4 pasos (con imágenes)

Video: Joystick inalámbrico para PC / botones de rueda: 4 pasos (con imágenes)

Video: Joystick inalámbrico para PC / botones de rueda: 4 pasos (con imágenes)
Video: ¿Qué es la zona muerta y el drift en controles? 2024, Mes de julio
Anonim
Joystick inalámbrico para PC / botones de rueda
Joystick inalámbrico para PC / botones de rueda

He estado construyendo un nuevo simulador de carreras en los últimos años y decidí ir con un volante DIY Direct Drive. Si bien ese proyecto solo podría ser varios instructivos en sí mismo, este es un instructivo sobre cómo hacer que todos los botones del volante sean inalámbricos.

¿Por qué?

  • La rueda DD tiene rotaciones ilimitadas, por lo que sería molesto tener cables conectados.
  • Sin capacidad para enrutar cables a través del eje de la rueda como en las ruedas comerciales
  • Quería poder intercambiar fácilmente ruedas con diferentes configuraciones de botones
  • Porque pude:)

Para lograr el objetivo de los botones inalámbricos, debemos considerar:

  • La entrega de energía
  • Conectividad inalámbrica
  • Tiempo de reacción / retraso
  • Fiabilidad

Los siguientes componentes fueron elegidos para cumplir con este criterio: Tx - Arduino Nano con módulo NRF24 integrado aquí o use un Nano genérico o Pro Mini + Módulo NRF24 Rx - Arduino Pro Micro / Leonardo / Beetle (Atmega32u4) + módulo NRF24 USB 'Banco de baterías' - Cualquiera El banco de baterías único genérico 18650 debería funcionar. ¡Esto durará aproximadamente 20 horas! Sin embargo, es posible que desee verificar si puede cargar y entregar energía al mismo tiempo. Esto es útil si se agota y desea cargar y usar al mismo tiempo.

Además, necesitará los botones y un interruptor de encendido de su elección, un cable de conexión y posiblemente un tubo termorretráctil.

Esto también se puede usar en una 'caja de botones' en lugar de en una rueda, pero pensé que habría menos demanda de eso, ya que no hay mucha ventaja si no se mueve.

Herramientas necesarias:

Soldador y soldadura Una pistola de pegamento caliente también es útil para montar las piezas. Arduino IDE instalado en su computadora.

Paso 1: el cableado del transmisor

El cableado del transmisor
El cableado del transmisor
El cableado del transmisor
El cableado del transmisor
El cableado del transmisor
El cableado del transmisor

Comience montando tantos interruptores como necesite en su volante y considere la ubicación del Arduino. Conecte todos los cables a los interruptores según el diagrama. Cada botón se conectará con un lado a GND y el otro al pin arduino asociado. El código permite 14 interruptores / botones que deberían ser suficientes para la mayoría de las ruedas.

Si usa el Nano con el módulo NRF incorporado, obviamente no necesita agregar ese cableado asociado para eso, solo cablee los botones.

Los botones están en este orden (1-14): RX, TX, D2, D3, D4, D5, D6, D7, A0, A1, A2, A3, A4, A5

Pero, ¿por qué solo 14 botones? La razón de esto es porque podemos leer un banco completo de pines rápidamente y solo transmitir 2 bytes de datos no lleva mucho tiempo, por lo que, aunque esto podría modificarse para incluir más botones (a través de una matriz) y / o entradas analógicas, esto ralentizaría un poco las cosas. La lectura de matrices y las lecturas / conversiones analógicas requieren tiempo del procesador. Solo necesitaba 12 botones en mi volante, así que fui con eso, pero consideraría agregar más.

Energía Para la energía, tiene dos opciones: puede dejar el banco de baterías intacto y simplemente asegurarlo al volante de alguna manera. Esto le brinda la ventaja adicional de poder desconectar la alimentación del arduino, evitando tener un interruptor incorporado y algunos cables.

Si prefiere una solución más personalizada, puede ser necesario abrir el banco de baterías y reutilizar los componentes internos en su configuración personalizada.

No tenía espacio en mi volante para dejarlo intacto, por lo que lo quitaron. Quité el conector USB estándar de la placa de carga y soldé los cables +5 y Gnd de las almohadillas del puerto USB al Arduino a través de un interruptor. Es un poco difícil detallar esto debido a las muchas opciones disponibles …

Luego, el circuito se montó dentro de la rueda, exponiendo el conector de carga micro USB.

La placa de carga tendrá uno o más LED para mostrar el estado de carga: es útil hacerlos visibles de alguna manera o usar un poco de plástico para `` transportarlos '' a algún lugar visible para que sepa cuándo ha terminado de cargarse.

¿Qué rueda es esa? Para aquellos interesados, mi diseño de rueda es de Amstudio: hay algunos diseños geniales de piezas de simulación de carreras de bricolaje disponibles a precios razonables.

Paso 2: el receptor

El receptor
El receptor
El receptor
El receptor
El receptor
El receptor

Simplemente siga el diagrama de cableado adjunto. Si no está utilizando un Leonardo, necesitará un regulador externo de 3.3v como el AMS1117. El regulador Pro Micro no puede proporcionar suficiente corriente para el módulo NRF24 y el escarabajo no tiene ninguno.

He codificado por colores las conexiones al módulo NRF de la misma manera para el Pro Micro y el escarabajo.

El Arduino 'Beetle', que es bastante fácil de encontrar en los lugares comunes, pero una vez más, será necesario usar un regulador de 3.3v ya que no tiene ninguno. He probado esto y también funciona bien. Las conexiones son las mismas

Paso 3: programar los dispositivos

Programando los dispositivos
Programando los dispositivos
Programando los dispositivos
Programando los dispositivos
Programando los dispositivos
Programando los dispositivos

Si aún no tiene el IDE de Arduino instalado, diríjase a https://www.arduino.cc y descargue la versión adecuada para su sistema operativo para este ejemplo, estoy en Windows.

Una vez configurada, necesitará dos bibliotecas diferentes: la primera es fácil a través de Sketch -> Incluir biblioteca -> Administrar bibliotecas (o CTRL + MAYÚS + I)

NRFLite de Dave Parson (versión 2.2.2 a partir de la publicación)

El segundo deberá instalarse manualmente desde

Haga clic en 'Clonar o Descargar', luego en 'Descargar ZIP y abra el archivo descargado. Luego, tendrá que hacer clic en las carpetas hasta que vea una carpeta de 'Joystick': cópiela en su carpeta de bibliotecas Arduino (en Windows, esto generalmente se encuentra en Documentos -> Arduino -> Bibliotecas.

Reinicie el IDE de Arduino

Si está utilizando el Pro Micro para el receptor, también deberá agregar esa placa al IDE. File -> Preferences -> Additional Boards Manager URLs:

ingrese:

Luego vaya a Herramientas -> Administrador de tableros, busque Sparkfun e instale 'Sparkfun AVR Boards'

¡Ahora estamos listos! Comencemos con el transmisor: conéctelo a su PC

En Herramientas -> Tablero, seleccione 'Arduino Nano' (o cualquier variante que haya decidido usar). También verifique el puerto COM en el menú de herramientas.

Abra el archivo Wireless_Wheel_Tx adjunto.

Solo hay una línea que es posible que desee cambiar en este código y es:

int nrfChannel = 22;

Tiene hasta 126 canales que puede usar en el espectro de 2.4Ghz. Debería estar bien dejarlo como está, pero si encuentra que tiene problemas con la confiabilidad, tal vez cambie esto a un número diferente.

Luego, simplemente presione el botón 'cargar' y espere a que termine.

Lo mismo ocurre con Leonardo / Pro Micro / Beetle - Seleccione la placa que desee - Para Leonardo y Beetle, seleccione la placa Arduino leonardo. Para el Pro Micro, seleccione eso y también seleccione la variante / procesador Atmega32u4 (5v, 16Mhz), abra el archivo Wireless_Wheel_Rx, cambie la configuración nrfChannel (si lo cambió en el Tx) y programe.

Una vez que el dispositivo se reinicia en la programación, su computadora debería detectar un dispositivo de joystick. Si enciende su transmisor también, debería poder presionar los botones y hacer que se muestre en el estado del dispositivo.

Una característica incidental interesante es que obtendrá una luz de estado en Leonardo y Pro Micro: el LED USB TX se iluminará cuando tenga conexión a los botones. Sin embargo, esto no está presente en el escarabajo.

ACTUALIZADO 13/2/2021

He agregado 2 archivos adicionales (Tx y Rx) al instructable aquí para una versión con 4 entradas analógicas, así como una matriz de botones 3X8. En su mayoría sin probar, puede tener demoras. Por favor intente comentar.

Paso 4: mejoras

Mejoras
Mejoras

LED de encendido Después de usar esta solución por un tiempo, tenía el hábito de dejar la rueda encendida por accidente. Para ayudar a contrarrestar esto, agregué un LED en la parte delantera para poder ver que la rueda estaba encendida. Esto es solo una simple ejecución de led de 3 mm desde 5v en el arduino a través de una resistencia. La parte superior está lijada para difundir un poco la luz y evitar el deslumbramiento.

Medidor de nivel de batería Compré algunos medidores de nivel de batería de BG o Ali, pero cuando llegaron eran mucho más grandes de lo que esperaba, pero esto es algo que todavía quiero agregar. Hay muchas opciones disponibles para esto, pero debido a que la batería dura tanto, tiendo a recargarme después de unas pocas horas de uso.

Botones adicionales / codificadores / entradas analógicas Aún pensando en este. Para mí, no es tan importante para las carreras que hago, pero para cosas como la F1 probablemente sea más útil. Consideraré dos versiones o agregar esto si hay suficiente demanda, pero esto puede afectar el tiempo de respuesta de los botones.

Recomendado: