INHOUDSOPGAWE:

Thrustmaster Warthog Slew Sensor I2C -opgradering: 5 stappe
Thrustmaster Warthog Slew Sensor I2C -opgradering: 5 stappe

Video: Thrustmaster Warthog Slew Sensor I2C -opgradering: 5 stappe

Video: Thrustmaster Warthog Slew Sensor I2C -opgradering: 5 stappe
Video: Hardware Review: Delta Sim Electronics Thumbstick Upgrade für Thrustmaster HOTAS Warthog 2024, November
Anonim
Thrustmaster Warthog Slew Sensor I2C -opgradering
Thrustmaster Warthog Slew Sensor I2C -opgradering

Dit is 'n rowwe gids oor hoe u koppel aan die I2C -protokol wat op die ThrustmasterWarthog -gassensorsensor gebruik word. Dit kan gebruik word om op te gradeer van die redelik nuttelose standaardbediener na iets beters, maar steeds met die standaard USB -beheerder in die versneller. Dit is gebaseer op 'n oorspronklike plasing op:

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

'N Basiese begrip as die I2C -protokol vir die meeste van die volgende stappe aanvaar word, vir 'n uitstekende verduideliking, gaan na:

learn.sparkfun.com/tutorials/i2c

Vra my gerus vir enige spesifieke vrae, en ek sal in die toekoms probeer om dit met meer relevante inligting by te voeg. Dit is geensins volledig nie, maar behoort 'n goeie beginpunt te wees.

'N Demo -Arduino -kode word verskaf, maar neem dit slegs as 'n verwysing, aangesien 'n normale 5V Arduino nie sonder wysiging gebruik kan word nie.

Stap 1: Bestaande sensorbesonderhede

Bestaande sensorbesonderhede
Bestaande sensorbesonderhede

Die ministick -sensor wat saam met die Thrustmaster Wathog -gashendel kom, is bekend as een van die grootste swakpunte met 'n andersins uitstekende produk. Daar is deur die jare 'n aantal pogings deur mense om dit met iets beters te vervang, maar die meeste het die probleme ondervind om met die digitale I2C -protokol in verbinding te tree.

Die presiese sensor wat gebruik word in die vlakvark -gasklep is die N35P112 - EasyPoint, wat gebruik maak van die AS5013 saal -effek sensor IC wat deur AMS gemaak is.

Gegevensblad:

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

Interessant genoeg was die eenheid eens beskikbaar as 'n uitbreekmodule deur Sparkfun:

www.sparkfun.com/products/retired/10835

Die sensor is bedoel vir navigasietoepassings in dinge soos selfone, en is uiters goedkoop. Na my mening onaanvaarbaar in iets wat byna $ 500 kos.

Stap 2: Pinout

Pinout
Pinout

Die sensor kan via die mikro -5 -aansluiting aan die PCB in die regter -gashendel gekoppel word.

Pinout is soos volg:

  1. Vcc +3.3VDC (

    Lokaal gereguleer vanaf 5V deur 'n lineêre reguleerder aan die ander kant van die bord, net agter die aansluiting, behoort ongeveer 20mA rondom te wees, maar ek het dit geensins getoets nie)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Knoppie 1 (gewoonlik hoog, interne 5V pullup)

Stap 3: Protokolbeskrywing

Protokol beskrywing
Protokol beskrywing

Die sensor werk op I2C -adres 0x41 - alle skryf- of leesopdragte begin met hierdie adres.

As die gaskoppel aan die rekenaar gekoppel is, is daar 'n aanhef van ongeveer 250 ms op die I2C -bus om 0x40 aan te spreek; ek neem aan dat dit vir 'n ander sensorweergawe of iets soortgelyks is, maar dit is nie vir ons relevant nie.

Die gegewens wat tydens normale gebruik op die I2C -bus gestuur word, is hieronder; dit moet deur ons mikrobeheerder gesimuleer word om met die versneller te praat.

Opstelling - Hierdie data word een keer gestuur, ongeveer 500 ms nadat die USB gekoppel is, om die oorspronklike sensor in gebruik te stel.

Meester skryf: 0x0F (beheerregister 1)

Data: 0x02 0b0000 0010 (begin 'n sagte reset)

Meester skryf: 0x0F (beheerregister 1)

Master Read: 0xF1 0b1111 0001 (herstel na 11110000, lsb 1 dui aan dat geldige data gereed is om gelees te word. Ons moet hierdie opdrag korrek beantwoord om erken te word as 'n geldige slawe -toestel)

Meester skryf: 0x2E (beheerregister 2)

Data: 0x86 (dit stel net die oriëntasie van die magneet in die oorspronklike sensor in)

Meester skryf: 0x0F (beheerregister 1)

Data: 0x 80 0b1000 0000 (stel die toestel in die ledige modus (outomatiese meting, nie in lae -kragmodus))

Lus: Dit word ongeveer 100 Hz herhaal om sensordata te kry.

Meester skryf: 0x10 (X -register)

Master Read: (slaaf stuur X data, 2 se kompliment 8 bits waarde)

Meester skryf: 0x11 (Y -register)

Master Read: (slaaf stuur Y -data, 2 se aanvulling van 8 biswaarde)

Relevante deel van protokolstorting van logika -ontleder:

Opstel Skryf na [0x82] + ACK

0x0F + ACK

0x02 + ACK

Opstel Skryf na [0x82] + ACK

0x0F + ACK

Opstelling Lees na [0x83] + ACK

0xF1 + NAK

Opstel Skryf na [0x82] + ACK

0x2E + ACK

0x86 + ACK

Opstel Skryf na [0x82] + ACK

0x0F + ACK

0x80 + ACK

Opstel Skryf na [0x82] + ACK

0x10 + ACK

Opstelling Lees na [0x83] + ACK 0xFC + NAK

Opstel Skryf na [0x82] + ACK 0x11 + ACK

Opstelling Lees na [0x83] + ACK 0xFF + NAK

Stap 4: Arduino -kode

Arduino -kode
Arduino -kode

Die aangehegte Arduino -kode kan gebruik word om die sensor te simuleer.

Let wel: die meeste Arduino -borde werk met 5V, dit benodig 'n 3.3V -versoenbare of aangepaste bord om te werk om skade aan u joystick te voorkom.

Stap 5: Kalibrasie

Kalibrasie
Kalibrasie

Sodra u nuwe sensor aangebring is, moet die gas gekalibreer word.

Om u gashendel te kalibreer, gebruik u die gaskalibrasie -instrument. Dit kan afgelaai word uit 'n aantal bronne, soos:

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

Moenie vensters kalibrasie gebruik nie.

Om die meeste uit die mod te haal, moet u 'n paar waardes in u kalibrasie -konfigurasielêer verander.

Verander die:

Standaard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

Lyne in A10_calibration.txt na:

Standaard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

Dit verander na dooie sone op die draaiknop van 10 na 1, en gee baie beter beheer. U kan met hierdie instelling speel en dan herkalibreer en sien wat u die meeste hou.

Aanbeveel: