Obsah:

Aktualizácia senzora zabitia Thrustmaster Warthog I2C: 5 krokov
Aktualizácia senzora zabitia Thrustmaster Warthog I2C: 5 krokov

Video: Aktualizácia senzora zabitia Thrustmaster Warthog I2C: 5 krokov

Video: Aktualizácia senzora zabitia Thrustmaster Warthog I2C: 5 krokov
Video: How to upgrade 🆙 the firmware of LD2410 mmWave presence sensor 2024, December
Anonim
Inovácia senzora zabitia Thrustmaster Warthog I2C
Inovácia senzora zabitia Thrustmaster Warthog I2C

Toto je hrubý návod na prepojenie s protokolom I2C používaným na snímači otáčania škrtiacej klapky ThrustmasterWarthog. Toto je možné použiť na inováciu z celkom zbytočného štandardného ministicku na niečo lepšie, ale stále používajte štandardný USB ovládač v plynovej jednotke. Toto je založené na pôvodnom príspevku na:

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

Základné porozumenie, ak sa vo väčšine nasledujúcich krokov predpokladá protokol I2C, vynikajúce vysvetlenie nájdete na:

learn.sparkfun.com/tutorials/i2c

Akékoľvek konkrétne otázky, pokojne sa ma opýtajte a pokúsim sa v budúcnosti doplniť tieto neriešiteľné skutočnosti relevantnejšími informáciami. Toto nie je ani zďaleka úplné, ale malo by to byť dobré východisko.

K dispozícii je nejaký demo kód Arduino, ale berte to len ako referenciu, pretože normálne 5V Arduino nemožno použiť bez úprav.

Krok 1: Existujúce detaily senzora

Existujúce detaily senzora
Existujúce detaily senzora

Snímač ministick zabil, ktorý je dodávaný so škrtiacou klapkou Thrustmaster Wathog, je dobre známy ako jedna z najväčších slabín inak vynikajúceho produktu. Ľudia za tie roky urobili niekoľko pokusov nahradiť ho niečím lepším, ale väčšina narazila na ťažkosti s prepojením s ním používaným digitálnym protokolom I2C.

Presný senzor použitý v škrtiacej klapke Warthog je N35P112 - EasyPoint, ktorý používa IC snímač Hallovho efektu AS5013 vyrobený spoločnosťou AMS.

Dátový hárok:

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

Je zaujímavé, že jednotka bola kedysi k dispozícii ako oddeľovací modul od Sparkfun:

www.sparkfun.com/products/retired/10835

Senzor je určený pre navigačné aplikácie vo veciach, ako sú mobilné telefóny, a je extrémne lacný. Podľa mňa je to neprijateľné v niečom, čo stojí takmer 500 dolárov.

Krok 2: Pinout

Pinout
Pinout

Senzor sa pripája k doske plošných spojov v pravej škrtiacej klapke pomocou mikro 5 -pinového konektora.

Pinout je nasledujúci:

  1. Vcc +3,3 VDC (

    Lokálne regulované z 5 V lineárnym regulátorom na druhej strane dosky, hneď za konektorom, by malo byť dobré mať okolo 20 mA, ale toto som v žiadnom prípade netestoval)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Tlačidlo 1 (normálne vysoké, vnútorné 5V vytiahnutie)

Krok 3: Popis protokolu

Popis protokolu
Popis protokolu

Senzor fungoval na adrese I2C 0x41 - všetky príkazy na zápis alebo čítanie začínajú na tejto adrese.

Keď je plynový pedál pripojený k počítaču, na zbernici I2C je preambula asi 250 ms na adresu 0x40, predpokladám, že ide o inú verziu snímača alebo niečo podobné, ale nie je to pre nás relevantné.

Údaje odoslané na zbernicu I2C pri normálnom použití sú uvedené nižšie. Aby sme mohli hovoriť s plynom, musí to simulovať náš mikrokontrolér.

Nastavenie - Tieto údaje sa odošlú raz, približne 500 ms po pripojení USB, aby sa nastavil pôvodný snímač na použitie.

Hlavný zápis: 0x0F (riadiaci register 1)

Údaje: 0x02 0b0000 0010 (iniciuje mäkký reset)

Hlavný zápis: 0x0F (riadiaci register 1)

Hlavné čítanie: 0xF1 0b1111 0001 (resetuje sa na 11110000, lsb 1 znamená, že platné údaje sú pripravené na čítanie. Na tento príkaz musíme správne odpovedať, aby bol rozpoznaný ako platné podradené zariadenie)

Hlavný zápis: 0x2E (kontrolný register 2)

Údaje: 0 x 86 (tým sa iba nastaví orientácia magnetu v pôvodnom senzore)

Hlavný zápis: 0x0F (riadiaci register 1)

Údaje: 0x 80 0b1000 0000 (Nastaví zariadenie do pohotovostného režimu (automatické meranie, nie v režime nízkej spotreby))

Smyčka: Toto sa opakuje pri približne 100 Hz, aby sa získali údaje zo senzorov.

Hlavný zápis: 0x10 (register X)

Master Read: (slave odosiela údaje X, 8 -bitová hodnota komplementu 2)

Hlavný zápis: 0x11 (register Y)

Master Read: (slave odosiela údaje Y, 8 -bitová hodnota komplementu 2)

Príslušná časť výpisu protokolu z logického analyzátora:

Nastavenie Napíšte do [0x82] + ACK

0x0F + ACK

0x02 + ACK

Nastavenie Napíšte do [0x82] + ACK

0x0F + ACK

Nastaviť čítanie na [0x83] + ACK

0xF1 + NAK

Nastavenie Napíšte do [0x82] + ACK

0x2E + ACK

0x86 + ACK

Nastavenie Napíšte do [0x82] + ACK

0x0F + ACK

0x80 + ACK

Nastavenie Napíšte do [0x82] + ACK

0x10 + ACK

Nastaviť čítanie na [0x83] + ACK 0xFC + NAK

Nastavenie Napíšte na [0x82] + ACK 0x11 + ACK

Nastaviť čítanie na [0x83] + ACK 0xFF + NAK

Krok 4: Arduino kód

Arduino kód
Arduino kód

Na simuláciu senzora je možné použiť priložený kód Arduino.

Poznámka: Väčšina dosiek Arduino pracuje s napätím 5 V, aby fungovala, aby sa predišlo poškodeniu joysticku, je potrebná doska 3,3 V kompatibilná alebo upravená.

Krok 5: Kalibrácia

Kalibrácia
Kalibrácia

Hneď ako bude namontovaný váš nový snímač, bude potrebné škrtiacu klapku kalibrovať.

Na kalibráciu plynu budete potrebovať nástroj na kalibráciu plynu. Toto je možné stiahnuť z niekoľkých zdrojov, ako napríklad:

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

Nepoužívajte kalibráciu okien.

Aby ste z režimu vyťažili maximum, musíte v konfiguračnom súbore kalibrácie zmeniť niekoľko hodnôt.

Zmeniť:

Standard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

Riadky v súbore A10_calibration.txt:

Standard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

Toto sa zmení na mŕtvu zónu na ovládači otáčania z 10 na 1 a poskytne oveľa lepšiu kontrolu. Môžete sa hrať s týmto nastavením a potom znova nakalibrovať a zistiť, čo sa vám najviac páči.

Odporúča: