Sommario:
- Passaggio 1: dettagli del sensore esistente
- Passaggio 2: piedinatura
- Passaggio 3: descrizione del protocollo
- Passaggio 4: codice Arduino
- Passaggio 5: calibrazione
Video: Aggiornamento Thrustmaster Warthog Slew Sensor I2C: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questa è una guida approssimativa su come interfacciarsi con il protocollo I2C utilizzato sul sensore di rotazione dell'acceleratore ThrustmasterWarthog. Questo può essere usato per aggiornare dal ministick standard abbastanza inutile a qualcosa di meglio, ma ancora usando il controller USB standard nell'unità dell'acceleratore. Questo si basa su un post originale su:
forums.eagle.ru/showthread.php?t=200198
Una comprensione di base se si assume il protocollo I2C per la maggior parte dei seguenti passaggi, per un'ottima spiegazione vai a:
learn.sparkfun.com/tutorials/i2c
Qualsiasi domanda specifica, sentiti libero di chiedermela, e cercherò di aggiungere a questo intrattabile in futuro con informazioni più pertinenti. Questo non è affatto completo, ma dovrebbe essere un buon punto di partenza.
Viene fornito del codice Arduino demo, ma si prega di prenderlo solo come riferimento poiché un normale Arduino 5V non può essere utilizzato senza modifiche.
Passaggio 1: dettagli del sensore esistente
Il sensore di rotazione del ministick fornito con l'acceleratore Thrustmaster Wathog è noto per essere uno dei maggiori punti deboli di un prodotto altrimenti eccellente. Ci sono stati numerosi tentativi da parte delle persone di sostituirlo con qualcosa di migliore nel corso degli anni, ma la maggior parte ha incontrato le difficoltà di interfacciarsi con il protocollo digitale I2C da esso utilizzato.
Il sensore esatto utilizzato nell'acceleratore Warthog è l'N35P112 - EasyPoint, che utilizza l'IC del sensore ad effetto hall AS5013 realizzato da AMS.
Scheda dati:
ams.com/eng/Products/Magnetic-Position-Sens…
È interessante notare che l'unità una volta era disponibile come modulo breakout di Sparkfun:
www.sparkfun.com/products/retired/10835
Il sensore è pensato per applicazioni di navigazione in cose come i telefoni cellulari ed è estremamente economico. A mio parere inaccettabile in qualcosa che costa quasi $500.
Passaggio 2: piedinatura
Il sensore si collega al PCB nell'unità farfalla destra tramite connettore micro a 5 pin.
Il pinout è il seguente:
-
Vcc +3.3Vcc (
Regolato localmente da 5V da un regolatore lineare sull'altro lato della scheda, appena dietro il connettore, dovrebbe essere buono per circa 20mA, ma non l'ho mai testato)
- I2C SDA
- I2C SCL
- GND
- Pulsante 1 (normalmente alto, pullup 5V interno)
Passaggio 3: descrizione del protocollo
Il sensore ha operato sull'indirizzo I2C 0x41 - tutti i comandi di scrittura o lettura iniziano con questo indirizzo.
Quando l'acceleratore è collegato al computer, c'è un preambolo di circa 250 ms sul bus I2C per l'indirizzo 0x40, presumo che sia per una versione del sensore diversa o qualcosa di simile, ma non è rilevante per noi.
I dati inviati sul bus I2C in uso normale sono sotto, questo deve essere simulato dal nostro microcontrollore per parlare con l'acceleratore.
Configurazione: questi dati vengono inviati una volta, circa 500 ms dopo il collegamento dell'USB, per impostare il sensore originale per l'uso.
Scrittura master: 0x0F (Registro di controllo 1)
Dati: 0x02 0b0000 0010 (avvia un soft reset)
Scrittura master: 0x0F (Registro di controllo 1)
Master Read: 0xF1 0b1111 0001 (reimposta su 11110000, lsb 1 indica che i dati validi sono pronti per essere letti. Dobbiamo rispondere correttamente a questo comando per essere riconosciuti come dispositivo slave valido)
Scrittura master: 0x2E (Registro di controllo 2)
Dati: 0x 86 (questo imposta solo l'orientamento del magnete nel sensore originale)
Scrittura master: 0x0F (Registro di controllo 1)
Dati: 0x 80 0b1000 0000 (Imposta il dispositivo in modalità inattiva (misurazione automatica, non in modalità a basso consumo))
Loop: questo viene ripetuto a circa 100Hz per ottenere i dati del sensore.
Scrittura master: 0x10 (registro X)
Master Read: (lo slave invia dati X, valore a 8 bit in complemento a 2)
Master Write: 0x11 (registro Y)
Master Read: (lo slave invia i dati Y, valore a 8 bit in complemento a 2)
Parte rilevante del dump del protocollo dall'analizzatore logico:
Imposta Scrivi su [0x82] + ACK
0x0F + ACK
0x02 + ACK
Imposta Scrivi su [0x82] + ACK
0x0F + ACK
Configurazione Leggi su [0x83] + ACK
0xF1 + NAK
Imposta Scrivi su [0x82] + ACK
0x2E + ACK
0x86 + ACK
Imposta Scrivi su [0x82] + ACK
0x0F + ACK
0x80 + ACK
Imposta Scrivi su [0x82] + ACK
0x10 + ACK
Imposta Lettura su [0x83] + ACK 0xFC + NAK
Imposta Scrivi su [0x82] + ACK 0x11 + ACK
Setup Leggi su [0x83] + ACK 0xFF + NAK
Passaggio 4: codice Arduino
Il codice Arduino allegato può essere utilizzato per simulare il sensore.
Nota: la maggior parte delle schede Arduino funziona a 5 V, questa richiede una scheda compatibile o modificata a 3,3 V per funzionare per evitare danni al joystick.
Passaggio 5: calibrazione
Una volta che il tuo nuovo sensore è stato montato, l'acceleratore dovrà essere calibrato.
Per calibrare l'acceleratore dovrai utilizzare lo strumento di calibrazione dell'acceleratore. Questo può essere scaricato da una serie di fonti come:
forums.eagle.ru/showthread.php?t=65901
Non utilizzare la calibrazione di Windows.
Per ottenere il massimo da una mod è necessario modificare alcuni valori nel file di configurazione della calibrazione.
Cambiare il:
Standard_DZ_SX = 0x10;
Standard_DZ_SY = 0x10;
Righe in A10_calibration.txt a:
Standard_DZ_SX = 0x01;
Standard_DZ_SY = 0x01;
Questo cambierà in zona morta sul controllo di rotazione da 10 a 1 e darà un controllo molto migliore. Puoi giocare con questa impostazione e poi ricalibrare e vedere cosa ti piace di più.
Consigliato:
Aggiornamento del trapano cordless economico!: 4 passaggi
Aggiornamento del trapano cordless economico!: Questa volta condividerò come aggiornare la batteria del trapano cordless economico. L'unica cosa che aggiorneremo è solo la batteria stessa, dal momento che il trapano economico ha una piccola capacità della batteria. Aggiungeremo alcune funzioni sulla batteria ! Funzionalità aggiunte: Carica il b
(AGGIORNAMENTO - C'È UN LEGGERISSIMO PROBLEMA) CONTROLLER DI GIOCO USB PER P.C: 10 passaggi (con immagini)
(AGGIORNAMENTO - C'È UN LEGGERISSIMO PROBLEMA) CONTROLLER DI GIOCO USB PER P.C: UN CONTROLLER DI GIOCO PER QUALSIASI GIOCO (QUASI)
CONTROLLER MIDI FAI DA TE USB Plug & Play (AGGIORNAMENTO NEOPIXEL RING): 12 passaggi
CONTROLLER MIDI FAI DA TE USB Plug & Play (UPGRADE NEOPIXEL RING): Appassionato di MAO e Musica Elettronica ma visto anche che era possibile creare un'Interfaccia Midi personalizzata ho fatto mia6 Potenziometri e 12 pulsanti (on/off) ma per rendere lo spot più difficile che era già vorrei aggiungere indicazione visiva
Tracker di aggiornamento Covid-19 utilizzando ESP8266: 9 passaggi
Covid-19 Update Tracker utilizzando ESP8266: questo è un progetto che mostra i dati attuali dell'epidemia di coronavirus di varie città degli stati dell'India in tempo reale sul display OLED. Questo tracker di stato in tempo reale ti aiuta a monitorare l'aggiornamento covid-19 in tempo reale del tuo distretto. Questo progetto è completamente b
Thrustmaster Warthog Joystick Addon: 5 Passaggi (con Immagini)
Thrustmaster Warthog Joystick Addon: ciao, sii gentile con me.. questa è la mia prima istruzione. joystick, per giocare a elite pericoloso. non è divertente passare dal joystick alla tastiera con un "rift" sul tuo lui