Sisukord:

Thrustmaster Warthog Slew Sensor I2C uuendamine: 5 sammu
Thrustmaster Warthog Slew Sensor I2C uuendamine: 5 sammu

Video: Thrustmaster Warthog Slew Sensor I2C uuendamine: 5 sammu

Video: Thrustmaster Warthog Slew Sensor I2C uuendamine: 5 sammu
Video: Hardware Review: Delta Sim Electronics Thumbstick Upgrade für Thrustmaster HOTAS Warthog 2024, Juuni
Anonim
Thrustmaster Warthog Slew Sensor I2C täiendus
Thrustmaster Warthog Slew Sensor I2C täiendus

See on ligikaudne juhend selle kohta, kuidas liidestada ThrustmasterWarthogi gaasipedaali pöördeanduril kasutatava I2C protokolliga. Seda saab kasutada üsna kasutult kasutatavast standardvarustusest paremaks muutmiseks, kuid kasutades siiski gaasipedaali standardset USB -kontrollerit. See põhineb algsel postitusel:

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

Põhiteadmised, kui enamiku järgmiste sammude puhul eeldatakse I2C -protokolli, leiate suurepärase selgituse saamiseks aadressilt:

learn.sparkfun.com/tutorials/i2c

Kui teil on mingeid konkreetseid küsimusi, küsige minult julgelt ja ma püüan tulevikus seda lahendamatut täiendada asjakohasema teabega. See pole kaugeltki täielik, kuid peaks olema hea lähtepunkt.

Pakutakse mõnda Arduino demokoodi, kuid palun võtke seda ainult viitena, kuna tavalist 5 V Arduinot ei saa ilma muudatusteta kasutada.

1. samm: olemasolevad anduri üksikasjad

Olemasolevad anduri üksikasjad
Olemasolevad anduri üksikasjad

Thrustmaster Wathogi gaasipedaaliga kaasas olev ministrick -pöördesensor on muidu suurepärase toote puhul üks suurimaid nõrkusi. Inimesed on aastate jooksul teinud mitmeid katseid asendada see millegi paremaga, kuid enamik on silmitsi seisnud selle kasutatava digitaalse I2C -protokolliga liidestamise raskustega.

Täpne andur, mida Warthogi gaasipedaalil kasutatakse, on N35P112 - EasyPoint, mis kasutab AMS -i valmistatud hall -efekti anduri IC -d AS5013.

Andmeleht:

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

Huvitav on see, et üksus oli kunagi Sparkfuni poolt väljamurdmismoodulina saadaval:

www.sparkfun.com/products/retired/10835

Andur on mõeldud navigeerimisrakenduste jaoks, näiteks mobiiltelefonid, ja on äärmiselt odav. Minu arvates vastuvõetamatu selles, mis maksab ligi 500 dollarit.

Samm 2: Pinout

Pinout
Pinout

Andur ühendatakse parempoolse gaasipedaali PCB -ga mikro -5 -kontaktilise pistiku kaudu.

Pinout on järgmine:

  1. Vcc +3.3VDC (

    Kohalikult reguleeritud 5 V -st lineaarse regulaatoriga plaadi teisel küljel, vahetult pistiku taga, peaks olema hea kuni 20 mA, kuid ma pole seda kuidagi testinud)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Nupp 1 (tavaliselt kõrge, sisemine 5V tõmbetugevus)

3. samm: protokolli kirjeldus

Protokolli kirjeldus
Protokolli kirjeldus

Andur töötas I2C aadressil 0x41 - kõik kirjutamis- või lugemiskäsud algavad selle aadressiga.

Kui gaasipedaal on arvutiga ühendatud, on I2C siinil umbes 250 ms preambul aadressile 0x40, eeldan, et see on mõne teise anduriversiooni või muu sarnase jaoks, kuid see pole meie jaoks asjakohane.

I2C siinil tavakasutuses saadetud andmed on allpool, seda peab meie mikrokontroller simuleerima, et gaasipedaaliga rääkida.

Seadistamine - need andmed saadetakse üks kord, umbes 500 ms pärast USB ühendamist, et seadistada algset andurit kasutamiseks.

Põhikirjutus: 0x0F (juhtregister 1)

Andmed: 0x02 0b0000 0010 (algatab pehme lähtestamise)

Põhikirjutus: 0x0F (juhtregister 1)

Põhilugemine: 0xF1 0b1111 0001 (lähtestatakse väärtusele 11110000, lsb 1 tähendab, et kehtivad andmed on lugemiseks valmis. Peame sellele käsule õigesti vastama, et meid õigeks alamseadmeks ära tunda)

Põhikirjutus: 0x2E (juhtregister 2)

Andmed: 0x 86 (see määrab lihtsalt magneti suuna algses anduris)

Põhikirjutus: 0x0F (juhtregister 1)

Andmed: 0x 80 0b1000 0000 (Lülitab seadme ooterežiimi (automaatne mõõtmine, mitte vähese energiatarbega režiimis))

Loop: Seda korratakse anduri andmete saamiseks umbes 100 Hz juures.

Põhikirjutus: 0x10 (X register)

Põhilugemine: (alam saadab X -andmeid, 2 täiendi 8 -bitine väärtus)

Põhikirjutus: 0x11 (Y register)

Põhilugemine: (alam saadab Y andmeid, 2 täiendi 8 -bitine väärtus)

Loogikaanalüsaatorist pärit protokolli väljavõtte asjakohane osa:

Seadistamine Kirjutage aadressile [0x82] + ACK

0x0F + ACK

0x02 + ACK

Seadistamine Kirjutage aadressile [0x82] + ACK

0x0F + ACK

Seadistus Lugege kuni [0x83] + ACK

0xF1 + NAK

Seadistamine Kirjutage aadressile [0x82] + ACK

0x2E + ACK

0x86 + ACK

Seadistamine Kirjutage aadressile [0x82] + ACK

0x0F + ACK

0x80 + ACK

Seadistamine Kirjutage aadressile [0x82] + ACK

0x10 + ACK

Seadistus Lugege kuni [0x83] + ACK 0xFC + NAK

Seadistamine Kirjutage aadressile [0x82] + ACK 0x11 + ACK

Seadistus Lugege kuni [0x83] + ACK 0xFF + NAK

Samm: Arduino kood

Arduino kood
Arduino kood

Lisatud Arduino koodi saab kasutada anduri simuleerimiseks.

Pange tähele: enamik Arduino tahvleid töötab 5 V pingega, selleks on vaja 3,3 V ühilduvat või muudetud plaati, et vältida juhtkangi kahjustamist.

Samm: kalibreerimine

Kalibreerimine
Kalibreerimine

Kui teie uus andur on paigaldatud, tuleb gaasiklapp kalibreerida.

Gaasiklapi kalibreerimiseks kasutate gaasiklapi kalibreerimistööriista. Seda saab alla laadida mitmest allikast, näiteks:

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

Ärge kasutage akende kalibreerimist.

Modifikatsioonist maksimumi saamiseks peate oma kalibreerimiskonfiguratsioonifailis muutma mõnda väärtust.

Muuda:

Standard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

A10_calibration.txt read:

Standard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

See muutub pöördenupul surnud tsooniks 10 -lt 1 -le ja annab palju parema kontrolli. Saate selle seadega mängida ja seejärel uuesti kalibreerida ning vaadata, mis teile kõige rohkem meeldib.

Soovitan: