Indholdsfortegnelse:
- Trin 1: Eksisterende sensordetaljer
- Trin 2: Pinout
- Trin 3: Protokolbeskrivelse
- Trin 4: Arduino -kode
- Trin 5: Kalibrering
Video: Thrustmaster Warthog Slew Sensor I2C -opgradering: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Dette er en grov vejledning til, hvordan du bruger grænsefladen med I2C -protokollen, der bruges på ThrustmasterWarthog gasspjældsensoren. Dette kan bruges til at opgradere fra det ret ubrugelige standardministick til noget bedre, men stadig bruge standard USB -controlleren i gashåndtaget. Dette er baseret på et originalt indlæg om:
forums.eagle.ru/showthread.php?t=200198
En grundlæggende forståelse, hvis I2C -protokollen antages for de fleste af følgende trin, for en glimrende forklaring gå til:
learn.sparkfun.com/tutorials/i2c
Eventuelle specifikke spørgsmål, er du velkommen til at stille mig, og jeg vil forsøge at tilføje dette til vanskeligt i fremtiden med mere relevant information. Dette er på ingen måde komplet, men burde være et godt udgangspunkt.
Der tilbydes noget demo -Arduino -kode, men tag dette kun som en reference, da en normal 5V Arduino ikke kan bruges uden ændringer.
Trin 1: Eksisterende sensordetaljer
Ministick -sensoren, der følger med Thrustmaster Wathog -gashåndtaget, er velkendt for at være en af de største svagheder med et ellers fremragende produkt. Der har været en række forsøg fra folk på at erstatte det med noget bedre gennem årene, men de fleste er stødt på vanskelighederne ved at interagere med den digitale I2C -protokol, der bruges af det.
Den nøjagtige sensor, der bruges i Vortes -gashåndtaget, er N35P112 - EasyPoint, der bruger AS5013 hall -effekt -sensor IC fremstillet af AMS.
Datablad:
ams.com/eng/Products/Magnetic-Position-Sens…
Interessant nok var enheden engang tilgængelig som et breakout -modul af Sparkfun:
www.sparkfun.com/products/retired/10835
Sensoren er beregnet til navigationsapplikationer inden for f.eks. Mobiltelefoner og er ekstremt billig. Efter min mening uacceptabelt i noget, der koster næsten $ 500.
Trin 2: Pinout
Sensoren tilsluttes printkortet i højre gashåndtag via mikro 5 -polet stik.
Pinout er som følger:
-
Vcc +3.3VDC (
Lokalt reguleret fra 5V af en lineær regulator på den anden side af brættet, lige bag stikket, burde være godt omkring 20mA, men jeg har på ingen måde testet dette)
- I2C SDA
- I2C SCL
- GND
- Knap 1 (normalt høj, intern 5V pullup)
Trin 3: Protokolbeskrivelse
Sensoren opererede på I2C -adresse 0x41 - alle skrive- eller læsekommandoer starter med denne adresse.
Når gashåndtaget er tilsluttet computeren, er der en indledning på omkring 250 ms på I2C -bussen til adresse 0x40, jeg antager, at dette er til en anden sensorversion eller noget lignende, men det er ikke relevant for os.
Dataene, der sendes på I2C -bussen ved normal brug, er nedenfor, dette skal simuleres af vores mikrokontroller for at tale med gashåndtaget.
Opsætning - Disse data sendes en gang, cirka 500 ms efter tilslutning af USB, for at konfigurere den originale sensor til brug.
Master Skriv: 0x0F (kontrolregister 1)
Data: 0x02 0b0000 0010 (starter en blød nulstilling)
Master Skriv: 0x0F (kontrolregister 1)
Master Read: 0xF1 0b1111 0001 (nulstilles til 11110000, lsb 1 betyder, at gyldige data er klar til læsning. Vi skal svare på denne kommando korrekt for at blive genkendt som en gyldig slaveenhed)
Master Skriv: 0x2E (kontrolregister 2)
Data: 0x 86 (dette indstiller bare magnetens retning i den originale sensor)
Master Skriv: 0x0F (kontrolregister 1)
Data: 0x 80 0b1000 0000 (Sætter enheden i inaktiv tilstand (automatisk måling, ikke i lav strømtilstand))
Loop: Dette gentages ved omkring 100Hz for at få sensordata.
Master Skriv: 0x10 (X register)
Master Read: (slave sender X -data, 2s komplement 8 -bit værdi)
Master Skriv: 0x11 (Y -register)
Master Read: (slave sender Y -data, 2's komplement 8 -bit værdi)
Relevant del af protokoldump fra logisk analysator:
Opsætning Skriv til [0x82] + ACK
0x0F + ACK
0x02 + ACK
Opsætning Skriv til [0x82] + ACK
0x0F + ACK
Opsætning Læs til [0x83] + ACK
0xF1 + NAK
Opsætning Skriv til [0x82] + ACK
0x2E + ACK
0x86 + ACK
Opsætning Skriv til [0x82] + ACK
0x0F + ACK
0x80 + ACK
Opsætning Skriv til [0x82] + ACK
0x10 + ACK
Opsætning Læs til [0x83] + ACK 0xFC + NAK
Opsætning Skriv til [0x82] + ACK 0x11 + ACK
Opsætning Læs til [0x83] + ACK 0xFF + NAK
Trin 4: Arduino -kode
Den vedhæftede Arduino -kode kan bruges til at simulere sensoren.
Bemærk: De fleste Arduino -plader kører på 5V, dette har brug for et 3.3V kompatibelt eller modificeret kort for at undgå at beskadige dit joystick.
Trin 5: Kalibrering
Når din nye sensor er monteret, skal gashåndtaget kalibreres.
For at kalibrere din gas vil du have gasreguleringsværktøjet. Dette kan downloades fra en række kilder såsom:
forums.eagle.ru/showthread.php?t=65901
Brug ikke Windows -kalibrering.
For at få mest muligt ud af en mod skal du ændre et par værdier i din kalibreringskonfigurationsfil.
Skift:
Standard_DZ_SX = 0x10;
Standard_DZ_SY = 0x10;
Linjer i A10_calibration.txt til:
Standard_DZ_SX = 0x01;
Standard_DZ_SY = 0x01;
Dette vil skifte til dødzone på svingkontrollen fra 10 til 1 og give meget bedre kontrol. Du kan lege med denne indstilling og derefter kalibrere igen og se, hvad du bedst kan lide.
Anbefalede:
Kom godt i gang med I2C Sensor Interface ?? - Tilslut din MMA8451 ved hjælp af ESP32s: 8 trin
Kom godt i gang med I2C Sensor Interface ?? - Interface Din MMA8451 Brug af ESP32'er: I denne vejledning lærer du alt om, hvordan du starter, tilslutter og får I2C -enhed (Accelerometer) til at arbejde med controller (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
I2C / IIC LCD -skærm - Konverter en SPI LCD til I2C LCD Display: 5 trin
I2C / IIC LCD -skærm | Konverter en SPI LCD til I2C LCD Display: Brug af spi lcd display har brug for for mange forbindelser til at gøre, hvilket er virkelig svært at gøre, så jeg fandt et modul, der kan konvertere i2c lcd til spi lcd, så lad os komme i gang
Character LCD I2c Adapter (eksempel på I2c -forbindelse): 12 trin (med billeder)
Character LCD I2c Adapter (I2c Connection Eksempel): Jeg laver et tilslutningsskema til en tegnvisning i2c adapter. Kontroller opdateringerne på mit websted. Nu tilføjer jeg også et kabelforbindelsesskema for at bruge det originale bibliotek, ikke mit forked.LiquidCrystal Arduino bibliotek til karakter LCD -skærme, forked project
Thrustmaster Warthog Joystick Addon: 5 trin (med billeder)
Thrustmaster Warthog Joystick Addon: hej vær venlig mod mig .. dette er min første instruerbare. Jeg havde brug for et par knapper og akser mere på min " warthog " joystick, for at spille elite farligt. det er ikke sjovt at skifte mellem joystick og tastatur med en " rift " på din han