Obsah:

Upgrade senzoru Thrustmaster Warthog Slew Sensor I2C: 5 kroků
Upgrade senzoru Thrustmaster Warthog Slew Sensor I2C: 5 kroků

Video: Upgrade senzoru Thrustmaster Warthog Slew Sensor I2C: 5 kroků

Video: Upgrade senzoru Thrustmaster Warthog Slew Sensor I2C: 5 kroků
Video: Thrustmaster Warthog Slew Upgrade 2024, Září
Anonim
Aktualizace Thrustmaster Warthog Slew Sensor I2C
Aktualizace Thrustmaster Warthog Slew Sensor I2C

Toto je hrubý průvodce, jak komunikovat s protokolem I2C používaným na snímači otáčení škrticí klapky ThrustmasterWarthog. To lze použít k upgradu z celkem zbytečného standardního ministicku na něco lepšího, ale stále pomocí standardního USB ovladače v škrticí jednotce. Toto je založeno na původním příspěvku na:

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

Základní porozumění, pokud se u většiny následujících kroků předpokládá protokol I2C, vynikající vysvětlení najdete na:

learn.sparkfun.com/tutorials/i2c

Jakékoli konkrétní otázky, neváhejte se mě zeptat a pokusím se v budoucnu přidat k tomuto neřešitelnému další relevantní informace. To není zdaleka úplné, ale mělo by to být dobré výchozí místo.

K dispozici je nějaký ukázkový kód Arduino, ale berte to pouze jako referenci, protože normální 5V Arduino nelze použít bez úprav.

Krok 1: Existující detaily senzoru

Podrobnosti o stávajícím senzoru
Podrobnosti o stávajícím senzoru

Ministick zabil senzor, který je dodáván s Thrustmaster Wathog škrticí klapky je dobře známo, že je jednou z největších slabin s jinak vynikajícím produktem. V průběhu let došlo k řadě pokusů lidí nahradit jej něčím lepším, ale většina narazila na potíže s propojením s ním používaným digitálním protokolem I2C.

Přesným senzorem použitým v škrticí klapce Warthog je N35P112 - EasyPoint, který využívá IC snímač Hallova efektu AS5013 od AMS.

Datový list:

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

Zajímavé je, že jednotka byla kdysi k dispozici jako modul Breakout od Sparkfun:

www.sparkfun.com/products/retired/10835

Senzor je určen pro navigační aplikace ve věcech, jako jsou mobilní telefony, a je extrémně levný. Podle mého názoru nepřijatelné v něčem, co stojí téměř 500 dolarů.

Krok 2: Pinout

Pinout
Pinout

Senzor se připojuje k desce plošných spojů v jednotce škrticí klapky vpravo prostřednictvím mikro 5kolíkového konektoru.

Pinout je následující:

  1. Vcc +3,3 V DC (

    Lokálně regulované z 5V lineárním regulátorem na druhé straně desky, hned za konektorem, by mělo být dobré kolem 20mA, ale v žádném případě jsem to netestoval)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Tlačítko 1 (normálně vysoké, interní 5V vytažení)

Krok 3: Popis protokolu

Popis protokolu
Popis protokolu

Senzor fungoval na adrese I2C 0x41 - všechny příkazy pro zápis nebo čtení začínají touto adresou.

Když je škrticí klapka připojena k počítači, na sběrnici I2C je preambule přibližně 250 ms na adresu 0x40, předpokládám, že je to pro jinou verzi senzoru nebo něco podobného, ale pro nás to není relevantní.

Data odesílaná na sběrnici I2C při normálním používání jsou níže, to musí být simulováno naším mikrokontrolérem, abychom mohli mluvit se škrticí klapkou.

Nastavení - Tato data se odešlou jednou, přibližně 500 ms po připojení USB, aby se nastavil původní senzor k použití.

Hlavní zápis: 0x0F (řídicí registr 1)

Data: 0x02 0b0000 0010 (iniciuje soft reset)

Hlavní zápis: 0x0F (řídicí registr 1)

Hlavní čtení: 0xF1 0b1111 0001 (resetuje na 11110000, lsb 1 znamená, že platná data jsou připravena ke čtení. Na tento příkaz musíme správně odpovědět, aby byl rozpoznán jako platné podřízené zařízení)

Hlavní zápis: 0x2E (řídicí registr 2)

Data: 0x 86 (tím se pouze nastaví orientace magnetu v původním senzoru)

Hlavní zápis: 0x0F (řídicí registr 1)

Data: 0x 80 0b1000 0000 (Nastaví zařízení do klidového režimu (automatické měření, ne v režimu nízké spotřeby))

Smyčka: To se opakuje při přibližně 100 Hz, aby se získala data ze senzorů.

Hlavní zápis: 0x10 (X registr)

Master Read: (slave odesílá data X, 8bitová hodnota komplementu 2)

Hlavní zápis: 0x11 (registr Y)

Master Read: (slave posílá data Y, 8bitová hodnota komplementu 2)

Relevantní část výpisu protokolu z logického analyzátoru:

Nastavení Zapište do [0x82] + ACK

0x0F + ACK

0x02 + ACK

Nastavení Zapište do [0x82] + ACK

0x0F + ACK

Nastavení Přečíst do [0x83] + ACK

0xF1 + NAK

Nastavení Zapište do [0x82] + ACK

0x2E + ACK

0x86 + ACK

Nastavení Zapište do [0x82] + ACK

0x0F + ACK

0x80 + ACK

Nastavení Zapište do [0x82] + ACK

0x10 + ACK

Nastavení Přečíst do [0x83] + ACK 0xFC + NAK

Nastavení Zapište na [0x82] + ACK 0x11 + ACK

Nastavení Přečíst do [0x83] + ACK 0xFF + NAK

Krok 4: Arduino kód

Arduino kód
Arduino kód

Přiložený kód Arduino lze použít k simulaci senzoru.

Vezměte prosím na vědomí: Většina desek Arduino běží na 5V, což vyžaduje, aby fungovala nebo upravená deska 3,3V, aby nedošlo k poškození joysticku.

Krok 5: Kalibrace

Kalibrace
Kalibrace

Jakmile bude váš nový senzor namontován, bude nutné provést kalibraci škrticí klapky.

Chcete -li kalibrovat plyn, budete potřebovat nástroj pro kalibraci plynu. To lze stáhnout z několika zdrojů, jako například:

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

Nepoužívejte kalibraci oken.

Abyste mohli z módu vytěžit maximum, musíte v konfiguračním souboru kalibrace změnit několik hodnot.

Změň:

Standard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

Řádky v souboru A10_calibration.txt:

Standard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

To se změní na mrtvou zónu na ovládacím knoflíku z 10 na 1 a poskytne mnohem lepší kontrolu. Můžete si hrát s tímto nastavením a poté znovu kalibrovat a zjistit, co se vám nejvíce líbí.

Doporučuje: