Inhaltsverzeichnis:

Thrustmaster Warthog Schwenksensor I2C Upgrade - Gunook
Thrustmaster Warthog Schwenksensor I2C Upgrade - Gunook

Video: Thrustmaster Warthog Schwenksensor I2C Upgrade - Gunook

Video: Thrustmaster Warthog Schwenksensor I2C Upgrade - Gunook
Video: Thrustmaster Warthog A10C - The best H.O.T.A.S. out there? 2024, September
Anonim
Thrustmaster Warthog Schwenksensor I2C Upgrade
Thrustmaster Warthog Schwenksensor I2C Upgrade

Dies ist eine grobe Anleitung zur Verbindung mit dem I2C-Protokoll, das auf dem ThrustmasterWarthog-Drosselklappensensor verwendet wird. Dies kann verwendet werden, um vom ziemlich nutzlosen Standard-Ministick zu etwas Besserem aufzurüsten, aber immer noch mit dem Standard-USB-Controller in der Drosseleinheit. Dies basiert auf einem Originalbeitrag auf:

forums.eagle.ru/showthread.php?t=200198

Ein grundlegendes Verständnis, wenn das I2C-Protokoll für die meisten der folgenden Schritte angenommen wird, für eine hervorragende Erklärung gehen Sie zu:

learn.sparkfun.com/tutorials/i2c

Spezifische Fragen können Sie mir gerne stellen, und ich werde versuchen, diese hartnäckigen Informationen in Zukunft mit relevanteren Informationen zu ergänzen. Dies ist keineswegs vollständig, sollte aber ein guter Ausgangspunkt sein.

Einige Arduino-Democodes werden bereitgestellt, aber bitte nehmen Sie dies nur als Referenz, da ein normaler 5V-Arduino nicht ohne Modifikation verwendet werden kann.

Schritt 1: Vorhandene Sensordetails

Vorhandene Sensordetails
Vorhandene Sensordetails

Der Ministick-Schwenkungssensor, der mit der Thrustmaster Wathog-Drosselklappe geliefert wird, ist bekanntlich eine der größten Schwächen eines ansonsten hervorragenden Produkts. Es gab im Laufe der Jahre eine Reihe von Versuchen, es durch etwas Besseres zu ersetzen, aber die meisten sind auf die Schwierigkeiten bei der Verbindung mit dem von ihm verwendeten digitalen I2C-Protokoll gestoßen.

Der genaue Sensor, der in der Warthog-Drossel verwendet wird, ist der N35P112 - EasyPoint, der den Hall-Effekt-Sensor-IC AS5013 von AMS verwendet.

Datenblatt:

ams.com/eng/Products/Magnetic-Position-Sens…

Interessanterweise war das Gerät einst als Breakout-Modul von Sparkfun erhältlich:

www.sparkfun.com/products/retired/10835

Der Sensor ist für Navigationsanwendungen in Dingen wie Mobiltelefonen gedacht und ist extrem billig. Meiner Meinung nach inakzeptabel bei etwas, das fast 500 Dollar kostet.

Schritt 2: Pinbelegung

Pinbelegung
Pinbelegung

Der Sensor wird über einen 5-poligen Mikrostecker mit der Platine in der rechten Drosselklappeneinheit verbunden.

Pinbelegung ist wie folgt:

  1. Vcc +3,3 V DC (

    Lokal geregelt von 5V durch einen Linearregler auf der anderen Seite der Platine, direkt hinter dem Stecker, sollte gut bis etwa 20mA reichen, aber ich habe dies in keiner Weise getestet)

  2. I2C-SDA
  3. I2C-SCL
  4. Masse
  5. Taste 1 (Normalerweise hoch, interner 5V-Pullup)

Schritt 3: Protokollbeschreibung

Protokollbeschreibung
Protokollbeschreibung

Der Sensor arbeitet auf der I2C-Adresse 0x41 - alle Schreib- oder Lesebefehle beginnen mit dieser Adresse.

Wenn der Gashebel mit dem Computer verbunden ist, gibt es eine Präambel von etwa 250 ms auf dem I2C-Bus zur Adresse 0x40, ich gehe davon aus, dass dies für eine andere Sensorversion oder ähnliches gilt, aber für uns nicht relevant.

Die Daten, die im normalen Gebrauch auf dem I2C-Bus gesendet werden, sind unten, dies muss von unserem Mikrocontroller simuliert werden, um mit dem Gashebel zu sprechen.

Setup - Diese Daten werden einmal gesendet, etwa 500 ms nachdem der USB angeschlossen wurde, um den ursprünglichen Sensor für die Verwendung einzurichten.

Master-Schreiben: 0x0F (Steuerregister 1)

Daten: 0x02 0b0000 0010 (initiiert einen Soft-Reset)

Master-Schreiben: 0x0F (Steuerregister 1)

Master Read: 0xF1 0b1111 0001 (wird auf 11110000 zurückgesetzt, lsb 1 bedeutet, dass gültige Daten zum Lesen bereit sind. Wir müssen auf diesen Befehl korrekt antworten, um als gültiges Slave-Gerät erkannt zu werden)

Master-Schreiben: 0x2E (Steuerregister 2)

Daten: 0x 86 (dies legt nur die Ausrichtung des Magneten im Originalsensor fest)

Master-Schreiben: 0x0F (Steuerregister 1)

Daten: 0x 80 0b1000 0000 (Setzt das Gerät in den Ruhemodus (automatische Messung, nicht im Energiesparmodus))

Schleife: Dies wird bei etwa 100 Hz wiederholt, um Sensordaten zu erhalten.

Master-Schreiben: 0x10 (X-Register)

Master Read: (Slave sendet X-Daten, 2er-Komplement 8-Bit-Wert)

Master-Schreiben: 0x11 (Y-Register)

Master Read: (Slave sendet Y-Daten, 2er-Komplement 8-Bit-Wert)

Relevanter Teil des Protokolldumps vom Logikanalysator:

Schreibe in [0x82] + ACK

0x0F + ACK

0x02 + ACK

Schreibe in [0x82] + ACK

0x0F + ACK

Setup Lesen auf [0x83] + ACK

0xF1 + NAK

Schreibe in [0x82] + ACK

0x2E + ACK

0x86 + ACK

Schreibe in [0x82] + ACK. einrichten

0x0F + ACK

0x80 + ACK

Schreibe in [0x82] + ACK

0x10 + ACK

Setup Lesen in [0x83] + ACK 0xFC + NAK

Schreibe auf [0x82] + ACK 0x11 + ACK

Setup Lesen in [0x83] + ACK 0xFF + NAK

Schritt 4: Arduino-Code

Arduino-Code
Arduino-Code

Der beigefügte Arduino-Code kann verwendet werden, um den Sensor zu simulieren.

Bitte beachten: Die meisten Arduino-Boards laufen mit 5V, dies erfordert ein 3.3V-kompatibles oder modifiziertes Board, um Schäden an Ihrem Joystick zu vermeiden.

Schritt 5: Kalibrierung

Kalibrierung
Kalibrierung

Nachdem Ihr neuer Sensor eingebaut wurde, muss die Drosselklappe kalibriert werden.

Um Ihren Gashebel zu kalibrieren, verwenden Sie das Gaskalibrierungstool. Diese kann von einer Reihe von Quellen heruntergeladen werden, wie zum Beispiel:

forums.eagle.ru/showthread.php?t=65901

Verwenden Sie keine Windows-Kalibrierung.

Um das Beste aus einem Mod herauszuholen, müssen Sie einige Werte in Ihrer Kalibrierungskonfigurationsdatei ändern.

Ändere das:

Standard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

Zeilen in A10_calibration.txt zu:

Standard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

Dadurch ändert sich die Totzone der Schwenksteuerung von 10 auf 1 und bietet eine viel bessere Kontrolle. Sie können mit dieser Einstellung spielen und dann neu kalibrieren und sehen, was Ihnen am besten gefällt.

Empfohlen: