Turinys:
- 1 žingsnis: esamos jutiklio detalės
- 2 žingsnis: „Pinout“
- 3 žingsnis: protokolo aprašymas
- 4 žingsnis: „Arduino“kodas
- 5 žingsnis: kalibravimas
Video: „Thrustmaster Warthog Slew Sensor I2C“atnaujinimas: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Tai yra apytikslis vadovas, kaip susieti I2C protokolą, naudojamą „ThrustmasterWarthog“droselio posūkio jutiklyje. Tai gali būti naudojama atnaujinant iš gana nenaudingo standartinio ministick į kažką geresnio, tačiau vis tiek naudojant standartinį USB valdiklį droselio bloke. Tai pagrįsta originaliu pranešimu:
forums.eagle.ru/showthread.php?t=200198
Kad būtų galima puikiai paaiškinti pagrindinį supratimą, jei daugumos šių veiksmų atveju laikomasi I2C protokolo, eikite į:
learn.sparkfun.com/tutorials/i2c
Jei turite kokių nors konkrečių klausimų, nedvejodami užduokite man, ir aš pasistengsiu ateityje papildyti šį neišspręstą dalyką, pateikdamas svarbesnės informacijos. Tai jokiu būdu nėra baigta, bet turėtų būti geras atspirties taškas.
Pateikiamas tam tikras „Arduino“demonstracinis kodas, tačiau prašome tai laikyti tik nuoroda, nes įprasto 5 V „Arduino“negalima naudoti be pakeitimų.
1 žingsnis: esamos jutiklio detalės
„Ministick“sukimo jutiklis, pateikiamas kartu su „Thrustmaster Wathog“droseliu, yra gerai žinomas kaip vienas didžiausių silpnų vietų su kitu puikiu produktu. Per daugelį metų žmonės bandė jį pakeisti kažkuo geresniu, tačiau dauguma susidūrė su sunkumais, susijusiais su jo naudojamu skaitmeniniu I2C protokolu.
Tikslus jutiklis, naudojamas „Warthog“droselinėje sklendėje, yra „N35P112 - EasyPoint“, kuriame naudojamas AS5013 salės efekto jutiklis IC, pagamintas AMS.
Duomenų lapas:
ams.com/eng/Products/Magnetic-Position-Sens…
Įdomu tai, kad „Sparkfun“įrenginys kadaise buvo prieinamas kaip pertraukimo modulis:
www.sparkfun.com/products/retired/10835
Jutiklis skirtas navigacijos programoms, tokioms kaip mobilieji telefonai, ir yra labai pigus. Mano nuomone, nepriimtina tai, kas kainuoja beveik 500 USD.
2 žingsnis: „Pinout“
Jutiklis jungiamas prie PCB, esančio dešinėje droselio sklendėje per „micro 5“jungtį.
Pinoutas yra toks:
-
Vcc +3.3VDC (
Vietoje reguliuojamas nuo 5 V linijiniu reguliatoriumi, esančiu kitoje plokštės pusėje, tiesiai už jungties, turėtų būti gerai iki maždaug 20 mA, bet aš to jokiu būdu neišbandžiau)
- I2C SDA
- I2C SCL
- GND
- 1 mygtukas (paprastai aukštas, vidinis 5V traukimas)
3 žingsnis: protokolo aprašymas
Jutiklis veikė I2C adresu 0x41 - visos rašymo ar skaitymo komandos prasideda nuo šio adreso.
Kai droselis yra prijungtas prie kompiuterio, I2C magistralėje yra maždaug 250 ms įžanga, skirta adresui 0x40, manau, kad tai skirta kitai jutiklio versijai ar panašiai, bet mums tai nėra aktualu.
Įprastai naudojant I2C magistralę siunčiami duomenys yra žemiau, tai turi imituoti mūsų mikrovaldiklis, kad galėtų kalbėti su droseliu.
Sąranka - Šie duomenys siunčiami vieną kartą, maždaug 500 ms po to, kai prijungiamas USB, kad pradinis jutiklis būtų pradėtas naudoti.
Pagrindinis rašymas: 0x0F (1 valdymo registras)
Duomenys: 0x02 0b0000 0010 (inicijuoja minkštą atstatymą)
Pagrindinis rašymas: 0x0F (1 valdymo registras)
Pagrindinis skaitymas: 0xF1 0b1111 0001 (iš naujo nustatoma į 11110000, lsb 1 reiškia, kad galiojantys duomenys yra paruošti skaitymui. Turime teisingai atsakyti į šią komandą, kad būtume atpažinti kaip tinkamas pavaldusis įrenginys)
Pagrindinis rašymas: 0x2E (2 valdymo registras)
Duomenys: 0x 86 (tai tik nustato magneto orientaciją pradiniame jutiklyje)
Pagrindinis rašymas: 0x0F (1 valdymo registras)
Duomenys: 0x 80 0b1000 0000 (Nustato įrenginį į laukimo režimą (automatinis matavimas, o ne mažos galios režimu))
Ciklas: tai kartojama maždaug 100 Hz dažniu, kad būtų gauti jutiklių duomenys.
Pagrindinis rašymas: 0x10 (X registras)
Pagrindinis skaitymas: (vergas siunčia X duomenis, 2 papildo 8 bitų vertę)
Pagrindinis rašymas: 0x11 (Y registras)
Pagrindinis skaitymas: (vergas siunčia Y duomenis, 2 papildo 8 bitų vertę)
Atitinkama protokolo iškelties dalis iš loginio analizatoriaus:
Sąranka Rašykite į [0x82] + ACK
0x0F + ACK
0x02 + ACK
Sąranka Rašykite į [0x82] + ACK
0x0F + ACK
Sąranka Skaitykite iki [0x83] + ACK
0xF1 + NAK
Sąranka Rašykite į [0x82] + ACK
0x2E + ACK
0x86 + ACK
Sąranka Rašykite į [0x82] + ACK
0x0F + ACK
0x80 + ACK
Sąranka Rašykite į [0x82] + ACK
0x10 + ACK
Sąranka Skaitykite iki [0x83] + ACK 0xFC + NAK
Sąranka Rašykite į [0x82] + ACK 0x11 + ACK
Sąranka Skaitykite iki [0x83] + ACK 0xFF + NAK
4 žingsnis: „Arduino“kodas
Pridėtas „Arduino“kodas gali būti naudojamas jutikliui imituoti.
Atkreipkite dėmesį: Dauguma „Arduino“plokščių veikia 5 V įtampa, todėl reikia 3,3 V suderinamos arba modifikuotos plokštės, kad ji nesugadintų vairasvirtės.
5 žingsnis: kalibravimas
Sumontavus naują jutiklį, droselį reikia kalibruoti.
Norėdami sukalibruoti savo droselį, naudokite droselio kalibravimo įrankį. Tai galima atsisiųsti iš daugelio šaltinių, tokių kaip:
forums.eagle.ru/showthread.php?t=65901
Nenaudokite langų kalibravimo.
Norėdami išnaudoti visas modifikacijos galimybes, turite pakeisti keletą kalibravimo konfigūracijos failo verčių.
Pakeisti:
Standartinis_DZ_SX = 0x10;
Standartinis_DZ_SY = 0x10;
A10_calibration.txt eilutės į:
Standartinis_DZ_SX = 0x01;
Standartinis_DZ_SY = 0x01;
Tai pasukimo valdiklyje pasikeis į negyvą zoną nuo 10 iki 1 ir suteiks daug geresnį valdymą. Galite žaisti naudodami šį nustatymą, tada iš naujo kalibruoti ir pamatyti, kas jums labiausiai patinka.
Rekomenduojamas:
Pigus akumuliatorinio gręžtuvo atnaujinimas!: 4 žingsniai
Pigus akumuliatorinio gręžtuvo atnaujinimas!: Šį kartą aš pasidalinsiu, kaip atnaujinti pigų akumuliatorinio gręžtuvo akumuliatorių. Vienintelis dalykas, kurį atnaujinsime, yra tik pati baterija, nes pigus gręžtuvas turi mažą akumuliatoriaus talpą. Pridėsime šiek tiek akumuliatoriaus funkcijos ! Papildomos funkcijos: įkraukite bateriją
Mobiliojo telefono baterijos atnaujinimas jūsų „Arduino“projektui: 3 žingsniai
Mobiliojo telefono baterijos pakartotinis panaudojimas jūsų „Arduino“projektui: taip perdirbau seną mobiliojo telefono bateriją, kad galėčiau naudoti „arduino“projektą. Šis dalelių tipas yra 2000 mAh „Nokia BLY4W“. Tačiau naudojami metodai yra įprasti daugelyje telefono baterijų. Ši baterija staiga mirė, rodydama 0 v
„Logitech G930“baterijos atnaujinimas: 5 žingsniai
„Logitech G930“akumuliatoriaus atnaujinimas: trumpas belaidžių „Logitech G930“ausinių baterijos atnaujinimo vadovas
„Blu Media Robot“(atnaujinimas): 7 žingsniai
„Blu Media Robot“(atnaujinimas): „blu“yra robotas, dirbantis su „makeblock“pagrindine plokšte ir avietėmis, skirtas elektroninei daliai, kurią galite nusipirkti iš „makeblock“, kaip aš pradžioje, dabar turiu 3D spausdintuvą („wanahoa i3 +“) ir galite atsisiųsti skirtinga dalis spausdinti juos t
„Thrustmaster Warthog“vairasvirtės priedas: 5 žingsniai (su paveikslėliais)
„Thrustmaster Warthog Joystick Addon“: Sveiki, prašau, būkite švelnus man .. tai yra mano pirmas pamokomas dalykas. Man reikėjo dar kelių mygtukų ir ašių ant mano " warthog " vairasvirtė, skirta žaisti elitui pavojingai. nėra smagu keistis tarp vairasvirtės ir klaviatūros naudojant " plyšį " ant tavęs jis