Tabla de contenido:
- Paso 1: Detalles del sensor existente
- Paso 2: Pinout
- Paso 3: descripción del protocolo
- Paso 4: Código Arduino
- Paso 5: Calibración
Video: Thrustmaster Warthog Slew Sensor I2C Actualización: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Esta es una guía aproximada sobre cómo interactuar con el protocolo I2C utilizado en el sensor de giro del acelerador ThrustmasterWarthog. Esto se puede usar para actualizar desde el ministick estándar bastante inútil a algo mejor, pero aún usando el controlador USB estándar en la unidad del acelerador. Esto se basa en una publicación original sobre:
forums.eagle.ru/showthread.php?t=200198
Una comprensión básica si se asume el protocolo I2C para la mayoría de los siguientes pasos, para una excelente explicación, vaya a:
learn.sparkfun.com/tutorials/i2c
Cualquier pregunta específica, no dude en preguntarme, y trataré de agregar a esta intratable en el futuro con información más relevante. Esto de ninguna manera es completo, pero debería ser un buen punto de partida.
Se proporciona un código de demostración de Arduino, pero tómelo solo como referencia, ya que un Arduino normal de 5 V no se puede utilizar sin modificaciones.
Paso 1: Detalles del sensor existente
El sensor de giro ministick que viene con el acelerador Thrustmaster Wathog es bien conocido por ser una de las mayores debilidades con un producto excelente. Ha habido una serie de intentos por parte de las personas de reemplazarlo con algo mejor a lo largo de los años, pero la mayoría se ha enfrentado a las dificultades de interactuar con el protocolo digital I2C que utiliza.
El sensor exacto utilizado en el acelerador Warthog es el N35P112 - EasyPoint, que utiliza el sensor de efecto Hall IC AS5013 fabricado por AMS.
Ficha de datos:
ams.com/eng/Products/Magnetic-Position-Sens…
Curiosamente, la unidad estuvo una vez disponible como un módulo de ruptura por Sparkfun:
www.sparkfun.com/products/retired/10835
El sensor está diseñado para aplicaciones de navegación en cosas como teléfonos móviles y es extremadamente económico. En mi opinión inaceptable en algo que cuesta casi $ 500.
Paso 2: Pinout
El sensor se conecta a la PCB en la unidad del acelerador del lado derecho a través de un conector micro de 5 pines.
Pinout es el siguiente:
-
Vcc + 3,3 V CC (
Regulado localmente desde 5 V por un regulador lineal en el otro lado de la placa, justo detrás del conector, debería ser bueno para alrededor de 20 mA, pero de ninguna manera lo he probado)
- I2C SDA
- I2C SCL
- GND
- Botón 1 (normalmente alto, pullup interno de 5 V)
Paso 3: descripción del protocolo
El sensor operó en la dirección I2C 0x41: todos los comandos de escritura o lectura comienzan con esta dirección.
Cuando el acelerador está conectado a la computadora, hay un preámbulo de alrededor de 250ms en el bus I2C para direccionar 0x40, supongo que esto es para una versión de sensor diferente o algo similar, pero no es relevante para nosotros.
Los datos enviados en el bus I2C en uso normal se encuentran a continuación, esto debe ser simulado por nuestro microcontrolador para hablar con el acelerador.
Configuración: estos datos se envían una vez, alrededor de 500 ms después de que se conecta el USB, para configurar el sensor original para su uso.
Escritura maestra: 0x0F (registro de control 1)
Datos: 0x02 0b0000 0010 (inicia un reinicio suave)
Escritura maestra: 0x0F (registro de control 1)
Lectura maestra: 0xF1 0b1111 0001 (se restablece a 11110000, lsb 1 significa que los datos válidos están listos para ser leídos. Debemos responder a este comando correctamente para ser reconocidos como un dispositivo esclavo válido)
Escritura maestra: 0x2E (registro de control 2)
Datos: 0x 86 (esto solo establece la orientación del imán en el sensor original)
Escritura maestra: 0x0F (registro de control 1)
Datos: 0x 80 0b1000 0000 (configura el dispositivo en modo inactivo (medición automática, no en modo de bajo consumo))
Bucle: esto se repite alrededor de los 100 Hz para obtener los datos del sensor.
Escritura maestra: 0x10 (registro X)
Lectura del maestro: (el esclavo envía datos X, valor de 8 bits en complemento a 2)
Escritura maestra: 0x11 (registro Y)
Lectura del maestro: (el esclavo envía datos Y, valor de 8 bits en complemento a 2)
Parte relevante del volcado de protocolo del analizador lógico:
Configurar escritura en [0x82] + ACK
0x0F + ACK
0x02 + ACK
Configurar escritura en [0x82] + ACK
0x0F + ACK
Configuración de lectura en [0x83] + ACK
0xF1 + NAK
Configurar escritura en [0x82] + ACK
0x2E + ACK
0x86 + ACK
Configurar escritura en [0x82] + ACK
0x0F + ACK
0x80 + ACK
Configurar escritura en [0x82] + ACK
0x10 + ACK
Configuración de lectura en [0x83] + ACK 0xFC + NAK
Configuración de escritura en [0x82] + ACK 0x11 + ACK
Configuración de lectura en [0x83] + ACK 0xFF + NAK
Paso 4: Código Arduino
El código Arduino adjunto se puede utilizar para simular el sensor.
Tenga en cuenta: la mayoría de las placas Arduino funcionan con 5V, esto necesita una placa modificada o compatible con 3.3V para que funcione para evitar daños en su joystick.
Paso 5: Calibración
Una vez que se haya instalado su nuevo sensor, será necesario calibrar el acelerador.
Para calibrar su acelerador, utilizará la herramienta de calibración del acelerador. Esto se puede descargar de varias fuentes, como:
forums.eagle.ru/showthread.php?t=65901
No utilice la calibración de Windows.
Para aprovechar al máximo un mod, debe cambiar algunos valores en su archivo de configuración de calibración.
Cambiar el:
Standard_DZ_SX = 0x10;
Standard_DZ_SY = 0x10;
Líneas en A10_calibration.txt para:
Standard_DZ_SX = 0x01;
Standard_DZ_SY = 0x01;
Esto cambiará a zona muerta en el control de rotación de 10 a 1, y brindará un control mucho mejor. Puede jugar con esta configuración y luego recalibrar y ver lo que más le gusta.
Recomendado:
¡Actualización económica de taladro inalámbrico!: 4 pasos
¡Actualización barata del taladro inalámbrico!: Esta vez, voy a compartir cómo actualizar la batería barata del taladro inalámbrico. Lo único que vamos a actualizar es solo la batería en sí, ya que el taladro barato tiene una capacidad de batería pequeña. ! Funciones añadidas: carga el b
(ACTUALIZACIÓN - EXISTE UN PROBLEMA LIGERO) CONTROLADOR DE JUEGO USB PARA P.C: 10 pasos (con imágenes)
(ACTUALIZACIÓN - HAY UN LIGERO PROBLEMA) CONTROLADOR DE JUEGOS USB PARA PC: UN CONTROLADOR DE JUEGOS PARA CUALQUIER JUEGO (CASI)
Actualización de firmware de ESP8266: 4 pasos
Parpadeo del firmware de ESP8266: Todos intentaron actualizar el firmware del módulo ESP8266, las instrucciones pueden ayudarlo a actualizar el firmware en ESP8266
¡ACTUALIZACÍON PARA TUS VIEJAS HERRAMIENTAS ELÉCTRICAS !: 19 Pasos
¡ACTUALIZACÍON PARA TUS VIEJAS HERRAMIENTAS ELÉCTRICAS !: Tengo un taladro inalámbrico de 18 voltios, nuevo (un combo de taladro y linterna). También tengo un taladro viejo de 16.8 voltios con dos baterías expiradas. (Y todos conocemos el alto precio de reemplazar baterías) Tuve que hacerme un par de pre
Complemento Thrustmaster Warthog Joystick: 5 pasos (con imágenes)
Thrustmaster Warthog Joystick Addon: hola, por favor, sean gentiles conmigo … este es mi primer instructivo. Necesitaba algunos botones y ejes más en mi "warthog". joystick, para jugar a la élite peligrosa. no es divertido cambiar entre el joystick y el teclado con una " grieta " en tu el