
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:11

Detta är en grov guide om hur du gränssnitt med I2C -protokollet som används på ThrustmasterWarthog gasreglage. Detta kan användas för att uppgradera från den ganska värdelösa standardministiken till något bättre, men använder fortfarande den vanliga USB -kontrollen i gasenheten. Detta är baserat på ett originalinlägg om:
forums.eagle.ru/showthread.php?t=200198
En grundläggande förståelse om I2C -protokollet antas för de flesta av följande steg, för en utmärkt förklaring gå till:
learn.sparkfun.com/tutorials/i2c
Några specifika frågor är du välkommen att ställa till mig, och jag kommer att försöka lägga till detta svårare i framtiden med mer relevant information. Detta är ingalunda komplett, men borde vara en bra utgångspunkt.
Viss demo -Arduino -kod tillhandahålls, men ta bara detta som en referens eftersom en vanlig 5V Arduino inte kan användas utan modifiering.
Steg 1: Befintliga sensordetaljer

Ministick -sensorn som levereras med Thrustmaster Wathog -gasreglaget är välkänd för att vara en av de största svagheterna med en annars utmärkt produkt. Det har varit ett antal försök av människor att ersätta det med något bättre genom åren, men de flesta har stött på svårigheterna med att ansluta till det digitala I2C -protokollet som används av det.
Den exakta sensorn som används i Warthog -gasreglaget är N35P112 - EasyPoint, som använder AS5013 hall -effektsensor IC tillverkad av AMS.
Datablad:
ams.com/eng/Products/Magnetic-Position-Sens…
Intressant nog var enheten en gång tillgänglig som en breakout -modul av Sparkfun:
www.sparkfun.com/products/retired/10835
Sensorn är avsedd för navigationsapplikationer i saker som mobiltelefoner och är extremt billig. Enligt min mening oacceptabelt i något som kostar nästan $ 500.
Steg 2: Pinout

Sensorn ansluts till kretskortet i den högra gasenheten via mikro 5 -stifts kontakt.
Pinout är följande:
-
Vcc +3.3VDC (
Lokalt reglerad från 5V av en linjär regulator på andra sidan av kortet, precis bakom kontakten, borde vara bra att gå runt 20mA, men jag har inte testat detta på något sätt)
- I2C SDA
- I2C SCL
- GND
- Knapp 1 (normalt hög, intern 5V pullup)
Steg 3: Protokollbeskrivning

Sensorn drivs med I2C -adressen 0x41 - alla skriv- eller läskommandon startar med denna adress.
När gasreglaget är anslutet till datorn finns det en ingress på cirka 250 ms på I2C -bussen för att adressera 0x40, jag antar att detta är för en annan sensorversion eller något liknande, men det är inte relevant för oss.
Uppgifterna som skickas på I2C -bussen vid normal användning är nedan. Detta måste simuleras av vår mikrokontroller för att prata med gasreglaget.
Setup - Dessa data skickas en gång, cirka 500 ms efter att USB -enheten är ansluten, för att ställa in den ursprungliga sensorn för användning.
Master Skriv: 0x0F (Kontrollregister 1)
Data: 0x02 0b0000 0010 (initierar en mjuk återställning)
Master Skriv: 0x0F (Kontrollregister 1)
Master Read: 0xF1 0b1111 0001 (återställs till 11110000, lsb 1 betyder att giltiga data är redo att läsas. Vi måste svara på det här kommandot korrekt för att kunna identifieras som en giltig slavenhet)
Master Skriv: 0x2E (Kontrollregister 2)
Data: 0x 86 (detta ställer bara in magnetens orientering i originalsensorn)
Master Skriv: 0x0F (Kontrollregister 1)
Data: 0x 80 0b1000 0000 (Ställer enheten i viloläge (automatisk mätning, inte i lågeffektläge))
Loop: Detta upprepas vid cirka 100Hz för att få sensordata.
Master Skriv: 0x10 (X -register)
Master Read: (slav skickar X -data, 2: s komplement 8 bitars värde)
Master Skriv: 0x11 (Y -register)
Master Read: (slav skickar Y -data, 2: s komplement 8 bitars värde)
Relevant del av protokolldump från logikanalysator:
Setup Skriv till [0x82] + ACK
0x0F + ACK
0x02 + ACK
Setup Skriv till [0x82] + ACK
0x0F + ACK
Inställning Läs till [0x83] + ACK
0xF1 + NAK
Setup Skriv till [0x82] + ACK
0x2E + ACK
0x86 + ACK
Setup Skriv till [0x82] + ACK
0x0F + ACK
0x80 + ACK
Setup Skriv till [0x82] + ACK
0x10 + ACK
Inställning Läs till [0x83] + ACK 0xFC + NAK
Setup Skriv till [0x82] + ACK 0x11 + ACK
Inställning Läs till [0x83] + ACK 0xFF + NAK
Steg 4: Arduino -kod

Den bifogade Arduino -koden kan användas för att simulera sensorn.
Observera: De flesta Arduino -kort har en effekt på 5V, detta behöver en 3.3V -kompatibel eller modifierad bräda för att undvika skador på din joystick.
Steg 5: Kalibrering

När din nya sensor har monterats behöver gasreglaget kalibreras.
För att kalibrera din gasreglage kommer du att använda gasregleringskalibreringsverktyget. Detta kan laddas ner från ett antal källor, till exempel:
forums.eagle.ru/showthread.php?t=65901
Använd inte Windows -kalibrering.
För att få ut det mesta av en mod måste du ändra några värden i din kalibreringskonfigurationsfil.
Ändra:
Standard_DZ_SX = 0x10;
Standard_DZ_SY = 0x10;
Rader i A10_calibration.txt till:
Standard_DZ_SX = 0x01;
Standard_DZ_SY = 0x01;
Detta kommer att byta till dödzon på svängkontrollen från 10 till 1 och ge mycket bättre kontroll. Du kan spela med den här inställningen och sedan kalibrera om och se vad du gillar mest.
Rekommenderad:
Micro: bit MU Vision Sensor för nybörjare - I2C och Shape Card Recognition: 8 steg

Micro: bit MU Vision Sensor för nybörjare - I2C och Shape Card Recognition: Jag har fått tag på en MU vision sensor för Micro: bit. Det verkar vara ett coolt verktyg som gör att jag kan göra många olika visionbaserade projekt. Tyvärr verkar det inte så många guider till det och även om dokumentationen verkligen är
I2C / IIC LCD -skärm - Använd en SPI LCD till I2C LCD -skärmen Använd SPI till IIC -modulen med Arduino: 5 steg

I2C / IIC LCD -skärm | Använd en SPI LCD till I2C LCD -skärmen Använda SPI till IIC -modulen med Arduino: Hej killar eftersom en vanlig SPI LCD 1602 har för många trådar att ansluta så det är mycket svårt att ansluta den till arduino men det finns en modul på marknaden som kan konvertera SPI -display till IIC -display så då behöver du bara ansluta 4 ledningar
I2C / IIC LCD -skärm - Konvertera en SPI LCD till I2C LCD Display: 5 steg

I2C / IIC LCD -skärm | Konvertera en SPI LCD -skärm till I2C LCD -skärm: Användning av spi -lcd -skärm behöver för många anslutningar att göra vilket är riktigt svårt att göra så jag hittade en modul som kan konvertera i2c lcd till spi lcd så låt oss komma igång
Character LCD I2c Adapter (I2c Connection Exempel): 12 steg (med bilder)

Character LCD I2c Adapter (I2c Connection Exempel): Jag gör ett anslutningsschema för en teckenvisning i2c -adapter. Kontrollera uppdateringarna på min webbplats. Nu lägger jag till olso ett kopplingsschema för att använda originalbiblioteket inte mitt forked.LiquidCrystal Arduino -bibliotek för karaktärens LCD -skärmar, gaffelprojekt
Thrustmaster Warthog Joystick Addon: 5 steg (med bilder)

Thrustmaster Warthog Joystick Addon: hej snälla var snäll mot mig .. detta är min första instruerbara. Jag behövde några fler knappar och axlar på min " warthog " joystick, för att spela elit farligt. det är inte roligt att byta mellan joystick och tangentbord med en " rift " på din han