
Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01

Dit is een ruwe handleiding over hoe u kunt communiceren met het I2C-protocol dat wordt gebruikt op de ThrustmasterWarthog-gashendelbewegingssensor. Dit kan worden gebruikt om te upgraden van de redelijk nutteloze standaard ministick naar iets beters, maar nog steeds met behulp van de standaard USB-controller in de gasklep. Dit is gebaseerd op een originele post op:
forums.eagle.ru/showthread.php?t=200198
Een basisbegrip als het I2C-protocol wordt verondersteld voor de meeste van de volgende stappen, ga voor een uitstekende uitleg naar:
learn.sparkfun.com/tutorials/i2c
Specifieke vragen, stel ze gerust, en ik zal proberen dit hardnekkige in de toekomst aan te vullen met meer relevante informatie. Dit is zeker niet volledig, maar zou een goed uitgangspunt moeten zijn.
Er wordt enige demo Arduino-code meegeleverd, maar neem deze alleen als referentie, aangezien een normale 5V Arduino niet zonder wijziging kan worden gebruikt.
Stap 1: Bestaande sensordetails

De ministick-zwenksensor die bij de Thrustmaster Wathog-gasklep wordt geleverd, staat bekend als een van de grootste zwakke punten van een verder uitstekend product. Er zijn in de loop der jaren een aantal pogingen van mensen geweest om het te vervangen door iets beters, maar de meeste zijn op de moeilijkheden gestuit om te communiceren met het digitale I2C-protocol dat door het wordt gebruikt.
De exacte sensor die wordt gebruikt in de Warthog-gasklep is de N35P112 - EasyPoint, die de AS5013 hall-effectsensor-IC gebruikt van AMS.
Data papier:
ams.com/eng/Products/Magnetic-Position-Sens…
Interessant is dat de eenheid ooit door Sparkfun beschikbaar was als een breakout-module:
www.sparkfun.com/products/retired/10835
De sensor is bedoeld voor navigatietoepassingen in bijvoorbeeld mobiele telefoons en is extreem goedkoop. Naar mijn mening onaanvaardbaar in iets dat bijna $ 500 kost.
Stap 2: Pinout

De sensor wordt via een micro 5-pins connector aangesloten op de PCB in de rechter gasklep.
Pinout is als volgt:
-
Vcc +3,3 VDC (
Lokaal geregeld vanaf 5V door een lineaire regelaar aan de andere kant van het bord, net achter de connector, zou goed moeten zijn tot rond de 20mA, maar dit heb ik op geen enkele manier getest)
- I2C-SDA
- I2C SCL
- GND
- Knop 1 (normaal hoog, interne 5V pullup)
Stap 3: Protocolbeschrijving

De sensor werkte op I2C-adres 0x41 - alle schrijf- of leescommando's beginnen met dit adres.
Wanneer de gashendel op de computer is aangesloten, is er een preambule van ongeveer 250 ms op de I2C-bus om 0x40 te adresseren, ik neem aan dat dit voor een andere sensorversie of iets dergelijks is, maar het is niet relevant voor ons.
De gegevens die bij normaal gebruik op de I2C-bus worden verzonden, staan hieronder, dit moet door onze microcontroller worden gesimuleerd om met de gashendel te praten.
Setup - Deze gegevens worden eenmaal verzonden, ongeveer 500 ms nadat de USB is aangesloten, om de originele sensor in te stellen voor gebruik.
Master schrijven: 0x0F (Control Register 1)
Gegevens: 0x02 0b0000 0010 (start een zachte reset)
Master schrijven: 0x0F (Control Register 1)
Master Read: 0xF1 0b1111 0001 (reset naar 11110000, lsb 1 betekent dat geldige gegevens klaar zijn om gelezen te worden. We moeten deze opdracht correct beantwoorden om herkend te worden als een geldig slave-apparaat)
Master schrijven: 0x2E (Control Register 2)
Gegevens: 0x 86 (dit stelt alleen de oriëntatie van de magneet in de originele sensor in)
Master schrijven: 0x0F (Control Register 1)
Gegevens: 0x 80 0b1000 0000 (zet het apparaat in de ruststand (automatische meting, niet in de energiebesparende modus))
Lus: dit wordt herhaald bij ongeveer 100 Hz om sensorgegevens te krijgen.
Master schrijven: 0x10 (X-register)
Master Read: (slave verzendt X-gegevens, 2's complement 8 bit-waarde)
Master schrijven: 0x11 (Y-register)
Master Read: (slave verzendt Y-gegevens, 2's complement 8 bit-waarde)
Relevant onderdeel van protocoldump van logic analyzer:
Setup Schrijven naar [0x82] + ACK
0x0F + ACK
0x02 + ACK
Setup Schrijven naar [0x82] + ACK
0x0F + ACK
Setup Lezen tot [0x83] + ACK
0xF1 + NAK
Setup Schrijven naar [0x82] + ACK
0x2E + ACK
0x86 + ACK
Setup Schrijven naar [0x82] + ACK
0x0F + ACK
0x80 + ACK
Setup Schrijven naar [0x82] + ACK
0x10 + ACK
Setup Lezen naar [0x83] + ACK 0xFC + NAK
Setup Schrijven naar [0x82] + ACK 0x11 + ACK
Setup Lezen naar [0x83] + ACK 0xFF + NAK
Stap 4: Arduino-code

De bijgevoegde Arduino-code kan worden gebruikt om de sensor te simuleren.
Let op: de meeste Arduino-boards werken op 5V, dit heeft een 3.3V-compatibel of aangepast bord nodig om te werken om schade aan uw joystick te voorkomen.
Stap 5: Kalibratie

Nadat uw nieuwe sensor is gemonteerd, moet de gasklep worden gekalibreerd.
Om uw gasklep te kalibreren, hebt u de gaskalibratietool. Dit kan worden gedownload van een aantal bronnen, zoals:
forums.eagle.ru/showthread.php?t=65901
Gebruik geen Windows-kalibratie.
Om het meeste uit een mod te halen, moet je een paar waarden in je kalibratieconfiguratiebestand wijzigen.
Verander de:
Standaard_DZ_SX = 0x10;
Standaard_DZ_SY = 0x10;
Regels in A10_calibration.txt naar:
Standaard_DZ_SX = 0x01;
Standaard_DZ_SY = 0x01;
Dit verandert in dode zone op de zwenkbesturing van 10 naar 1, en geeft een veel betere controle. Je kunt met deze instelling spelen en vervolgens opnieuw kalibreren en kijken wat je het leukst vindt.
Aanbevolen:
Goedkope accuboormachine-upgrade!: 4 stappen

Goedkope draadloze boor-upgrade!: Deze keer ga ik delen hoe ik een goedkope draadloze boor-batterij kan upgraden. Het enige dat we gaan upgraden is alleen de batterij zelf, aangezien goedkope boor een kleine batterijcapaciteit heeft. We gaan een functie toevoegen aan de batterij ! Extra functies: Laad de b
Upgrade de achtergrondverlichting van een VU-meter naar blauwe led met behulp van oude CFL-lamponderdelen: 3 stappen

Upgrade een VU-meterachtergrondverlichting naar blauwe led met behulp van oude CFL-lamponderdelen.: Tijdens het repareren van een oude Sony TC630 reel-to-reel bandrecorder, merkte ik dat een van de glazen bollen voor de achtergrondverlichting van de VU-meter kapot was. Geen hoeveelheid geleidende verf werkte omdat het lood onder het glasoppervlak was afgebroken. De enige vervanger die ik
Logitech G930 batterij-upgrade: 5 stappen

Logitech G930 Battery Upgrade: korte handleiding voor het upgraden van de batterij van een draadloze logitech G930-headset
Racing drone-upgrade: 10 stappen

Racing Drone Upgrade: dit is mijn stapsgewijze proces over hoe ik een racedrone heb geüpgraded
Character LCD I2c-adapter (I2c-verbindingsvoorbeeld): 12 stappen (met afbeeldingen)

Character LCD I2c-adapter (I2c-verbindingsvoorbeeld): ik ben bezig met een verbindingsschema voor een i2c-adapter voor karakterweergave. Controleer de updates op mijn site. Nu voeg ik ook een bedradingsverbindingsschema toe om de originele bibliotheek te gebruiken, niet mijn gevorkte.LiquidCrystal Arduino-bibliotheek voor de karakter-LCD-displays, gevorkte proje