Tartalomjegyzék:

Thrustmaster Warthog Slew Sensor I2C frissítés: 5 lépés
Thrustmaster Warthog Slew Sensor I2C frissítés: 5 lépés

Videó: Thrustmaster Warthog Slew Sensor I2C frissítés: 5 lépés

Videó: Thrustmaster Warthog Slew Sensor I2C frissítés: 5 lépés
Videó: Hardware Review: Delta Sim Electronics Thumbstick Upgrade für Thrustmaster HOTAS Warthog 2024, Szeptember
Anonim
Thrustmaster Warthog Slew Sensor I2C frissítés
Thrustmaster Warthog Slew Sensor I2C frissítés

Ez egy durva útmutató a ThrustmasterWarthog fojtószelep -fordulatszám -érzékelőn használt I2C protokollhoz való illesztéshez. Ezt fel lehet használni a meglehetősen haszontalan szabványos minisztériumról valami jobbra való frissítésre, de továbbra is a fojtószelep szabványos USB vezérlőjét használva. Ez egy eredeti hozzászóláson alapul:

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

Alapvető megértés, ha az I2C protokoll feltételezhető a következő lépések többségében, a kiváló magyarázatért keresse fel:

learn.sparkfun.com/tutorials/i2c

Bármilyen konkrét kérdéssel forduljon hozzám bizalommal, és a jövőben megpróbálom kiegészíteni ezt a megoldhatatlan dolgot relevánsabb információkkal. Ez egyáltalán nem teljes, de jó kiindulópontnak kell lennie.

Néhány demó Arduino kód biztosított, de kérjük, csak referenciaként vegye figyelembe, mivel a normál 5 V -os Arduino nem használható módosítás nélkül.

1. lépés: A meglévő érzékelő részletei

Meglévő érzékelő részletek
Meglévő érzékelő részletek

A Thrustmaster Wathog fojtószelephez mellékelt Ministick dőlésérzékelő köztudottan az egyik legnagyobb gyengesége az egyébként kiváló terméknek. Az évek során számos kísérlet történt arra, hogy valaki jobbra cserélje, de a legtöbben szembesültek az általa használt digitális I2C protokollal való kapcsolódás nehézségeivel.

A Warthog fojtószelepben használt pontos érzékelő az N35P112 - EasyPoint, amely az AMS által gyártott AS5013 csarnokhatás -érzékelő IC -t használja.

Adatlap:

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

Érdekes módon a Sparkfun egykor kitörési modulként kapta az egységet:

www.sparkfun.com/products/retired/10835

Az érzékelő navigációs alkalmazásokhoz készült, például mobiltelefonokhoz, és rendkívül olcsó. Véleményem szerint elfogadhatatlan olyan dolgokban, amelyek közel 500 dollárba kerülnek.

2. lépés: Pinout

Kitűz
Kitűz

Az érzékelő a jobb oldali fojtószelep NYÁK -jához csatlakozik a mikro 5 tűs csatlakozón keresztül.

A pinout a következő:

  1. Vcc +3.3VDC (

    Helyileg 5 V -ról szabályozott lineáris szabályozó a tábla másik oldalán, közvetlenül a csatlakozó mögött, legyen jó 20 mA körül, de ezt semmilyen módon nem teszteltem)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. 1. gomb (általában magas, belső 5 V -os felhúzás)

3. lépés: A protokoll leírása

Protokoll leírása
Protokoll leírása

Az érzékelő 0x41 I2C címen működött - minden írási vagy olvasási parancs ezzel a címmel kezdődik.

Amikor a fojtószelepet a számítógéphez csatlakoztatják, az I2C buszon körülbelül 250 ms -os előtag van a 0x40 címre, feltételezem, hogy ez egy másik érzékelő verzióra vagy hasonlóra vonatkozik, de számunkra nem releváns.

Az I2C buszon normál használatban küldött adatok az alábbiakban találhatók, ezt a mikrovezérlőnknek szimulálnia kell, hogy beszéljen a fojtószeleppel.

Beállítás - Ezeket az adatokat egyszer, körülbelül 500 ms -tal elküldi az USB csatlakoztatása után, az eredeti érzékelő használatba vételéhez.

Mester írás: 0x0F (1. vezérlőregiszter)

Adatok: 0x02 0b0000 0010 (soft resetet kezdeményez)

Mester írás: 0x0F (1. vezérlőregiszter)

Mesterolvasás: 0xF1 0b1111 0001 (visszaállítva a 11110000 értékre, az lsb 1 azt jelenti, hogy az adatok készen állnak az olvasásra. Helyesen kell válaszolnunk erre a parancsra, hogy érvényes slave eszközként ismerjük fel)

Mester írás: 0x2E (2. vezérlőregiszter)

Adatok: 0x 86 (ez csak beállítja a mágnes tájolását az eredeti érzékelőben)

Mester írás: 0x0F (1. vezérlőregiszter)

Adatok: 0x 80 0b1000 0000 (Az eszközt készenléti üzemmódba állítja (automatikus mérés, nem alacsony fogyasztású üzemmódban))

Hurok: Ezt megismétlik körülbelül 100 Hz -en, hogy érzékelő adatokat kapjanak.

Mester írás: 0x10 (X regiszter)

Master Read: (a slave X adatokat küld, a 2 -es kiegészítés 8 bites értéket)

Mester írás: 0x11 (Y regiszter)

Master Read: (a slave Y adatokat küld, a 2 -es kiegészítés 8 bites érték)

A logikai elemzőből származó protokolllehívás releváns része:

Beállítás Írás [0x82] + ACK -ra

0x0F + ACK

0x02 + ACK

Beállítás Írás [0x82] + ACK -ra

0x0F + ACK

Beállítás Olvasás a következőhöz: [0x83] + ACK

0xF1 + NAK

Beállítás Írás [0x82] + ACK -ra

0x2E + ACK

0x86 + ACK

Beállítás Írás [0x82] + ACK -ra

0x0F + ACK

0x80 + ACK

Beállítás Írás [0x82] + ACK -ra

0x10 + ACK

Beállítás Olvasás a következőhöz: [0x83] + ACK 0xFC + NAK

Beállítás Írás a [0x82] + ACK 0x11 + ACK címre

Beállítás Olvasás a következőhöz: [0x83] + ACK 0xFF + NAK

4. lépés: Arduino kód

Arduino kód
Arduino kód

A mellékelt Arduino kód használható az érzékelő szimulálására.

Kérjük, vegye figyelembe: A legtöbb Arduino tábla 5 V -os feszültséggel működik, ehhez 3,3 V -os kompatibilis vagy módosított kártya szükséges, hogy elkerülje a joystick károsodását.

5. lépés: Kalibrálás

Kalibráció
Kalibráció

Az új érzékelő felszerelése után a gázkart kalibrálni kell.

A fojtószelep kalibrálásához a fojtószelep kalibráló eszközt kell használni. Ez letölthető számos forrásból, például:

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

Ne használjon ablak kalibrálást.

Annak érdekében, hogy a legtöbbet hozza ki a modból, módosítania kell néhány értéket a kalibrációs konfigurációs fájlban.

Változtasd meg a:

Standard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

Sorok az A10_calibration.txt fájlban ide:

Standard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

Ez 10 -ről 1 -re halott zónára változik, és sokkal jobb irányítást biztosít. Játszhat ezzel a beállítással, majd újrakalibrálhatja, és megnézheti, mi tetszik a legjobban.

Ajánlott: