Obsah:
Video: Upgrade senzoru Thrustmaster Warthog Slew Sensor I2C: 5 kroků
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
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
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
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í:
-
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)
- I2C SDA
- I2C SCL
- GND
- Tlačítko 1 (normálně vysoké, interní 5V vytažení)
Krok 3: 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
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
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í.