Tabla de contenido:
- Paso 1: Conexión de MPU6050 y botones pulsadores a la placa Arduino Leonardo
- Paso 2: construcción de la base del joystick
- Paso 3: configurar Arduino IDE
- Paso 4: Programa Arduino
- Paso 5: Probar el joystick
Video: Joystick USB DIY MPU-6050: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Con Microsoft Flight Simulator 2020, rápidamente me di cuenta de lo difícil que es usar el teclado para volar un plan. Buscando en línea, no pude encontrar un joystick de precio razonable para comprar. La mayoría de los minoristas en línea los tenían agotados. La popularidad de MS Flight Simulator y la pandemia de COVID 19 acabó con todas las existencias de joystick existentes. Mi única opción era construir uno yo mismo.
La mayoría de los joysticks utilizan potenciómetros en la base para determinar los ángulos del joystick y enviar información de los ejes xey a la computadora. Esto funciona bien pero complica la construcción del joystick. y con el tiempo. los potenciómetros pueden desgastarse. En lugar de usar potenciómetros, decidí usar una placa de sensor de acelerómetro / giroscopio para enviar información a la computadora en los ángulos de la palanca.
Con la popularidad de varios microprocesadores Arduino y varios sensores, el costo de construir un proyecto Arduino se vuelve mucho más asequible. Una de las placas de sensor de acelerómetro / giroscopio de uso común es MPU-6050. En Canadá, cuesta alrededor de $ 7 CAN en Amazon. Recibí el mío de eBay enviado desde China por mucho menos, pero el tiempo de envío fue de 3 meses o más.
www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…
Cualquier placa Arduino funcionaría, pero usar una placa basada en ATmega32u4 será mucho más simple, porque ATmega32u4 tiene soporte nativo para HID (Dispositivo de Interfaz Humana). Una vez que la placa está programada, puede usarla en cualquier PC con Windows 10 y no se requiere software adicional. Windows 10 lo reconocerá automáticamente como un joystick cuando el USB esté conectado. (El uso de otro tipo de placa Arduino es demasiado complicado para este simple proyecto de construcción).
Elijo la placa Arduino Leonardo. $ 17 CAN de Amazon.
www.amazon.ca/KEYESTUDIO-Leonardo-Developm…
Estos 2 dispositivos son los principales requisitos para este proyecto. También son necesarios otros elementos más pequeños, como cables y pulsadores. En este proyecto, solo utilicé 2 pulsadores para simplificar.
El mango del joystick está hecho de una tubería de agua de PVC de desecho. Esto se puede sustituir fácilmente por cualquier tubo rígido corto.
La base del joystick es un tope de puerta de resorte fijado en un trozo de madera.
El tope de resorte para puerta está disponible en Home Depot por $ 2.83 CAN.
www.homedepot.ca/product/everbilt-spring-d…
Paso 1: Conexión de MPU6050 y botones pulsadores a la placa Arduino Leonardo
En MPU 6050 solo se utilizan 4 conexiones. Están etiquetadas como VCC, GND, SCL y SDA.
Conecte VCC a 5v o 3.3v en Arduino Leonardo. (MPU 6050 puede usar 5v o 3.3v. No importa)
Conecte GND a cualquier GND en Arduino Leonardo.
Conecte SCL a SCL en Arduino Leonardo.
Conecte SDA a SDA en Arduino Leonardo.
Solo utilizo 2 pulsadores para este propósito de demostración.
El primer botón se utiliza para restablecer el centro de la palanca de mando. En este ejemplo, un extremo del botón está conectado a GND y un extremo al PIN 13.
El segundo pulsador se utiliza como botón de joystick. En este ejemplo, está conectado al PIN 9 y GND.
Puede agregar botones adicionales según sea necesario en su proyecto.
Paso 2: construcción de la base del joystick
Encuentra un trozo de bloque de madera. Cuanto más pesado mejor. Hará que la base del joystick sea más estable.
Atornille el tope de la puerta de resorte en el centro del bloque de madera como se muestra en la imagen.
Utilice un trozo de tubo corto como mango de la palanca de mando. Usé una tubería de PVC para raspar. Pise el cable de modo que el sensor del acelerómetro / giroscopio se asiente en la parte superior de la tubería.
Luego coloque la tubería sobre el tapón de la puerta de resorte. Usé cinta aislante para pegar el sensor en la parte superior.
Paso 3: configurar Arduino IDE
Descargue e instale Arduino IDE.https://www.arduino.cc/en/Main/Software
Usé Arduino 1.8.13 para este proyecto. Arduino Web Editor también se puede utilizar para este proyecto.
Se utilizan 2 bibliotecas.
1. MPU6050_tockn por tockn
github.com/Tockn/MPU6050_tockn
o puede encontrarlo en el menú "Administrar biblioteca".
2. Biblioteca de joysticks de Matthew Heironimus
github.com/MHeironimus/ArduinoJoystickLibr…
Actualmente, este solo está disponible en el sitio web de GitHub.
Haga clic en Descargar código y Descargar ZIP. Extraiga el archivo ZIP en su directorio de bibliotecas Arduino.
En mi caso, es E: / PinChung / Documents / Arduino / libraries
Paso 4: Programa Arduino
Cargue Pin_Joystick.ino en Arduino IDE y compile y cargue en la placa Leonardo.
Asegúrese de que la placa Arduino Leonardo esté seleccionada y el número de puerto esté seleccionado a la derecha COM: en el menú Herramientas.
Me di cuenta de que en algún momento, el programa no se pudo cargar con el código de error del puerto COM no disponible. Pulsar el botón de reinicio en el tablero Leonardo un par de veces mientras se compila puede ayudar. Además, reiniciar Windows 10 también podría ayudar a liberar el puerto COM.
Una vez que el programa se carga en la placa Leonardo, Windows 10 debería detectar automáticamente el Joystick Leonardo. En la barra de búsqueda de Windows 10, escriba Dispositivos de juego, ejecute Configurar dispositivos de juego USB.
seleccione Leonardo Joystick y haga clic en Propiedades. El movimiento del joystick y el botón n. ° 1 del joystick deben ser detectados por Windows 10.
Si el joystick no está centrado, cuando lo suelte, haga clic en el botón central de reinicio del joystick que acabamos de hacer. Los controladores de juegos USB deben mostrar el punto del joystick en el centro. No es necesario calibrar el joystick en el programa USB Game Controller.
Nota al margen: para aquellos que no están familiarizados con Arduino Leonardo, cuando el dispositivo está configurado como un joystick, mouse o teclado, el puerto serie no funcionará. Entonces "Serial.print ()" no funcionará. Además, MPU6050 usa la biblioteca de cables i2c y usa pines SDA y SLC. En Leonardo, SDA y SCL ocupan tanto el PIN 2 como el PIN 3, así que no use estos 2 pines para nada más.
Paso 5: Probar el joystick
Lo probé en Microsoft Flight Simulator 2020 y funciona muy bien. A veces tengo que presionar la tecla central para poner a cero el joystick. El valor del sensor MPU6050 puede variar un poco con el tiempo.
Hay muchas oportunidades para invertir en el proyecto, como agregar más botones y agregar controles de aceleración. Con suerte, esto inspirará a otros expertos a explorar nuevas formas de hacer las cosas.
Recomendado:
JOYSTICK USB DE RETARDO CERO - MODIFICACIÓN ANALÓGICA AUTOMÁTICA: 5 pasos
JOYSTICK USB ZERO DELAY - MODIFICACIÓN ANALÓGICA AUTOMÁTICA: Este es un proyecto adicional a la modificación del joystick analógico verdadero del codificador USB Zero Delay. Debe haber modificado, probado y calibrado con éxito el codificador en el proyecto anterior antes de agregar este dispositivo. Cuando esté terminado y funcionando
Seguimiento de movimiento con MPU-6000 y Particle Photon: 4 pasos
Seguimiento de movimiento utilizando MPU-6000 y Particle Photon: MPU-6000 es un sensor de seguimiento de movimiento de 6 ejes que tiene un acelerómetro de 3 ejes y un giroscopio de 3 ejes integrados. Este sensor es capaz de realizar un seguimiento eficiente de la posición exacta y la ubicación de un objeto en el plano tridimensional. Se puede emplear en
Seguimiento de movimiento con MPU-6000 y Arduino Nano: 4 pasos
Seguimiento de movimiento con MPU-6000 y Arduino Nano: MPU-6000 es un sensor de seguimiento de movimiento de 6 ejes que tiene un acelerómetro de 3 ejes y un giroscopio de 3 ejes integrados. Este sensor es capaz de realizar un seguimiento eficiente de la posición exacta y la ubicación de un objeto en el plano tridimensional. Se puede emplear en
Módulo RC Tx como joystick USB: 6 pasos
Módulo RC Tx como joystick USB: este instructivo trata sobre la fabricación de un módulo transmisor que funciona con transmisores RC estándar y actúa como un joystick USB. El módulo utiliza una placa de desarrollo Digispark que actúa como un HID USB. Interpreta la señal PPM que envía el transmisor y la convierte
Seguimiento de movimiento con MPU-6000 y Raspberry Pi: 4 pasos
Seguimiento de movimiento mediante MPU-6000 y Raspberry Pi: MPU-6000 es un sensor de seguimiento de movimiento de 6 ejes que tiene un acelerómetro de 3 ejes y un giroscopio de 3 ejes integrados. Este sensor es capaz de realizar un seguimiento eficiente de la posición exacta y la ubicación de un objeto en el plano tridimensional. Se puede emplear en