Tabla de contenido:
- Paso 1: el cableado del transmisor
- Paso 2: el receptor
- Paso 3: programar los dispositivos
- Paso 4: mejoras
Video: Joystick inalámbrico para PC / botones de rueda: 4 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
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
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
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
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
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:
Robot Arduino inalámbrico con módulo inalámbrico HC12: 7 pasos
Robot Arduino inalámbrico con módulo inalámbrico HC12: Hola chicos, bienvenidos. En mi publicación anterior, expliqué qué es un circuito de puente H, IC de controlador de motor L293D, IC de controlador de motor L293D a cuestas para conducir controladores de motor de alta corriente y cómo puede diseñar y hacer su propia placa de controlador de motor L293D
Control remoto inalámbrico con módulo NRF24L01 de 2.4Ghz con Arduino - Receptor transmisor de 4 canales / 6 canales Nrf24l01 para Quadcopter - Helicóptero Rc - Avión Rc usando Arduino: 5 pasos (con imágenes)
Control remoto inalámbrico con módulo NRF24L01 de 2,4 Ghz con Arduino | Receptor transmisor de 4 canales / 6 canales Nrf24l01 para Quadcopter | Helicóptero Rc | Avión Rc usando Arduino: Para operar un coche Rc | Quadcopter | Drone | Avión RC | Barco RC, siempre necesitamos un receptor y transmisor, supongamos que para RC QUADCOPTER necesitamos un transmisor y receptor de 6 canales y ese tipo de TX y RX es demasiado costoso, así que haremos uno en nuestro
Entrada táctil capacitiva ESP32 con "tapones metálicos" para botones: 5 pasos (con imágenes)
Entrada táctil capacitiva ESP32 usando "tapones metálicos" para botones: mientras estaba ultimando las decisiones de diseño para un próximo proyecto basado en ESP32 WiFi Kit 32 que requiere entrada de tres botones, un problema notable fue que el WiFi Kit 32 no posee un solo botón mecánico, pero solo tres botones mecánicos, f
Punto de acceso inalámbrico de 50 metros de alcance con adaptador inalámbrico USB TP Link WN7200ND en Raspbian Stretch: 6 pasos
Punto de acceso inalámbrico de 50 metros de alcance con adaptador inalámbrico USB TP Link WN7200ND en Raspbian Stretch: Raspberry Pi es excelente para crear puntos de acceso inalámbricos seguros, pero no tiene un buen alcance, utilicé un adaptador inalámbrico USB TP Link WN7200ND para extenderlo. Quiero compartir cómo hacerlo¿Por qué quiero usar una raspberry pi en lugar de un enrutador? T
Soporte de rueda de conducción económico para simuladores de carreras: 8 pasos (con imágenes)
Soporte de rueda de conducción económico para simuladores de carreras: ¿Así que tienes una nueva y elegante Playstation para Chrismahanukwanzamas, ahora quieres jugar tus nuevos y dulces juegos de simulación de carreras? No tan rapido. Esa vieja mesa de computadora portátil de mierda no va a ser suficiente con las ruedas de retroalimentación de fuerza de alto par de hoy en día. Entonces, quieres obtener un