Talaan ng mga Nilalaman:

Thrustmaster Warthog Slew Sensor I2C Pag-upgrade: 5 Hakbang
Thrustmaster Warthog Slew Sensor I2C Pag-upgrade: 5 Hakbang

Video: Thrustmaster Warthog Slew Sensor I2C Pag-upgrade: 5 Hakbang

Video: Thrustmaster Warthog Slew Sensor I2C Pag-upgrade: 5 Hakbang
Video: Hardware Review: Delta Sim Electronics Thumbstick Upgrade für Thrustmaster HOTAS Warthog 2024, Hunyo
Anonim
Ang Thrustmaster Warthog Slew Sensor I2C ay Nag-upgrade
Ang Thrustmaster Warthog Slew Sensor I2C ay Nag-upgrade

Ito ay isang magaspang na gabay sa kung paano mag-interface sa I2C protocol na ginamit sa ThrustmasterWarthog throttle slay sensor. Maaari itong magamit upang mag-upgrade mula sa medyo walang silbi na karaniwang ministick sa isang bagay na mas mahusay, Ngunit gumagamit pa rin ng karaniwang USB controller sa throttle unit. Ito ay batay sa isang orihinal na post sa:

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

Isang pangunahing pag-unawa kung ang I2C protocol ay ipinapalagay para sa karamihan ng mga sumusunod na hakbang, para sa isang mahusay na paliwanag pumunta sa:

learn.sparkfun.com/tutorials/i2c

Anumang mga tiyak na katanungan, huwag mag-atubiling magtanong sa akin, at susubukan kong idagdag sa hindi maikakaila sa hinaharap na may mas nauugnay na impormasyon. Hindi ito kumpleto, ngunit dapat maging isang mahusay na panimulang punto.

Ang ilang mga demo Arduino code ay ibinigay ngunit mangyaring gawin lamang ito bilang isang sanggunian bilang isang normal na 5V Arduino ay hindi maaaring gamitin nang walang pagbabago.

Hakbang 1: Mga Detalye ng Umiiral na Sensor

Mga Detalye ng Umiiral na Sensor
Mga Detalye ng Umiiral na Sensor

Ang ministick ay napatay ang sensor na kasama ng Thrustmaster Wathog throttleis na kilalang isa sa mga pinakamalaking kahinaan na may mahusay na produkto. Mayroong isang bilang ng mga pagtatangka ng mga tao upang palitan ito ng isang bagay na mas mahusay sa mga nakaraang taon, ngunit ang karamihan ay nakarating laban sa mga paghihirap na makagambala sa digital I2C na protocol na ginamit nito.

Ang eksaktong sensor na ginamit sa Warthog throttle ay ang N35P112 - EasyPoint, na gumagamit ng AS5013 hall effect sensor IC na ginawa ng AMS.

Datasheet:

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

Kagiliw-giliw na ang yunit ay dating magagamit bilang isang breakout module ng Sparkfun:

www.sparkfun.com/products/retired/10835

Ang sensor ay inilaan para sa mga application ng pag-navigate sa mga bagay tulad ng mga mobile phone, at napakamurang. Sa aking palagay hindi katanggap-tanggap sa isang bagay na nagkakahalaga ng halos $ 500.

Hakbang 2: Pinout

Pinout
Pinout

Ang sensor ay kumokonekta sa PCB sa kanang yunit ng throttle sa pamamagitan ng konektor ng micro 5 pin.

Ang pinout ay ang mga sumusunod:

  1. Vcc + 3.3VDC (

    Lokal na kinokontrol mula sa 5V ng isang linear regulator sa kabilang panig ng board, sa likod lamang ng konektor, ay dapat na mahusay na maikulong ang 20mA, ngunit wala akong sinubukan kahit paano)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Button 1 (Karaniwan mataas, panloob na 5V pullup)

Hakbang 3: Paglalarawan ng Protocol

Paglalarawan ng Protocol
Paglalarawan ng Protocol

Pinapatakbo ang sensor sa I2C address na 0x41 - lahat ng sumulat o nagbasa ng mga utos ay nagsisimula sa address na ito.

Kapag ang throttle ay kumonekta sa computer, mayroong paunang paunang 250ms sa I2C bus upang matugunan ang 0x40, ipinapalagay ko na ito ay para sa ibang bersyon ng sensor o katulad na bagay, ngunit hindi ito nauugnay sa amin.

Ang data na ipinadala sa I2C bus sa normal na paggamit ay nasa ibaba, dapat itong gayahin ng aming microcontroller upang makausap ang throttle.

Pag-setup - Ang data na ito ay ipinadala isang beses, sa paligid ng 500ms pagkatapos na konektado ang USB, upang i-set up ang orihinal na sensor para magamit.

Sumulat ng Master: 0x0F (Control Rehistro 1)

Data: 0x02 0b0000 0010 (nagpasimula ng isang malambot na pag-reset)

Sumulat ng Master: 0x0F (Control Rehistro 1)

Basahin ang Master: 0xF1 0b1111 0001 (nagre-reset sa 11110000, lsb 1 ay nangangahulugan ng wastong data na handa nang basahin. Dapat kaming tumugon nang tama sa utos na ito upang makilala bilang isang wastong alipin na aparato)

Sumulat ng Master: 0x2E (Control Rehistro 2)

Data: 0x 86 (itinatakda lamang nito ang oryentasyon ng magnet sa orihinal na sensor)

Sumulat ng Master: 0x0F (Control Rehistro 1)

Data: 0x 80 0b1000 0000 (Itinatakda ang aparato sa idle mode (awtomatikong pagsukat, hindi sa mababang mode ng kuryente))

Loop: Inuulit ito sa paligid ng 100Hz upang makakuha ng data ng sensor.

Sumulat ng Master: 0x10 (X register)

Basahin ang Master: (Nagpapadala ang alipin ng X data, kompletong 8 bit na halaga ng 2)

Sumulat ng Master: 0x11 (Y register)

Basahin ang Master: (Nagpapadala ang alipin ng data ng Y, kumpletong 8 bit na halaga ng 2)

May-katuturang bahagi ng dump ng protocol mula sa logic analyzer:

Pag-setup Sumulat sa [0x82] + ACK

0x0F + ACK

0x02 + ACK

Pag-setup Sumulat sa [0x82] + ACK

0x0F + ACK

I-setup ang Basahin sa [0x83] + ACK

0xF1 + NAK

Pag-setup Sumulat sa [0x82] + ACK

0x2E + ACK

0x86 + ACK

Pag-setup Sumulat sa [0x82] + ACK

0x0F + ACK

0x80 + ACK

Pag-setup Sumulat sa [0x82] + ACK

0x10 + ACK

I-setup ang Basahin sa [0x83] + ACK 0xFC + NAK

Pag-setup Sumulat sa [0x82] + ACK 0x11 + ACK

I-setup ang Basahin sa [0x83] + ACK 0xFF + NAK

Hakbang 4: Arduino Code

Code ng Arduino
Code ng Arduino

Ang nakalakip na Arduino code ay maaaring magamit upang gayahin ang sensor.

Mangyaring tandaan: Karamihan sa mga board ng Arduino ay tumatakbo ng 5V, nangangailangan ito ng isang katugmang 3.3V o binago na board upang gumana upang maiwasan ang pinsala sa iyong joystick.

Hakbang 5: Pagkakalibrate

Pagkakalibrate
Pagkakalibrate

Kapag ang iyong bagong sensor ay nilagyan, ang throttle ay mangangailangan ng pagkakalibrate.

Upang i-calibrate ang iyong throttle gagawin mo ang throttle calibration tool. Maaari itong ma-download mula sa isang bilang ng mga mapagkukunan tulad ng:

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

Huwag gumamit ng pag-calibrate ng windows.

Upang masulit ang isang mod kailangan mong baguhin ang ilang mga halaga sa iyong file ng pagsasaayos ng pagkakalibrate.

Baguhin ang:

Standard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

Mga linya sa A10_calibration.txt sa:

Standard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

Magbabago ito sa patay na sona sa kontrol na pinatay mula 10 hanggang 1, at magbibigay ng mas mahusay na kontrol. Maaari mong i-play sa setting na ito at pagkatapos ay muling kalingkuran at makita kung ano ang pinaka gusto mo.

Inirerekumendang: