Mündəricat:

Thrustmaster Warthog Sensor I2C Yeniləmə: 5 addım
Thrustmaster Warthog Sensor I2C Yeniləmə: 5 addım

Video: Thrustmaster Warthog Sensor I2C Yeniləmə: 5 addım

Video: Thrustmaster Warthog Sensor I2C Yeniləmə: 5 addım
Video: Thrustmaster HOTAS Warthog Full Review 2024, Noyabr
Anonim
Thrustmaster Warthog Sensor I2C Təkmilləşdirdi
Thrustmaster Warthog Sensor I2C Təkmilləşdirdi

Bu, ThrustmasterWarthog qaz tənzimləyici sensöründə istifadə olunan I2C protokolu ilə necə əlaqə quracağınıza dair kobud bir bələdçidir. Bu, kifayət qədər yararsız standart ministickdən daha yaxşı bir şeyə yüksəltmək üçün istifadə edilə bilər, amma yenə də qaz cihazında standart USB nəzarətçisini istifadə edir. Bu, orijinal bir yazıya əsaslanır:

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

Aşağıdakı addımların çoxu üçün I2C protokolunun qəbul edildiyi əsas bir anlayış, əla bir izah üçün:

learn.sparkfun.com/tutorials/i2c

Hər hansı bir konkret sualınız varsa, mənə müraciət etməkdən çekinmeyin və gələcəkdə bu mövzuya daha uyğun məlumatlar əlavə etməyə çalışacağam. Bu heç də tam deyil, amma yaxşı bir başlanğıc nöqtəsi olmalıdır.

Bəzi demo Arduino kodu verilir, ancaq zəhmət olmasa bunu yalnız bir istinad olaraq qəbul edin, çünki normal 5V Arduino dəyişdirilmədən istifadə edilə bilməz.

Addım 1: Mövcud Sensor Təfərrüatları

Mövcud Sensor Təfərrüatları
Mövcud Sensor Təfərrüatları

Thrustmaster Wathog throttleis ilə birlikdə gələn ministick, başqa bir əla məhsulla ən böyük çatışmazlıqlardan biri olaraq bilinir. İnsanlar illər ərzində onu daha yaxşı bir şeylə əvəz etmək üçün bir çox cəhdlər etdilər, lakin əksəriyyəti istifadə etdiyi rəqəmsal I2C protokolu ilə əlaqə qurmaqda çətinlik çəkdi.

Warthog qazında istifadə edilən dəqiq sensor, AMS tərəfindən hazırlanan AS5013 zal effekti sensoru IC istifadə edən N35P112 - EasyPoint -dir.

Məlumat cədvəli:

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

Maraqlıdır ki, vahid bir vaxtlar Sparkfun tərəfindən ayrılma modulu olaraq mövcud idi:

www.sparkfun.com/products/retired/10835

Sensor cib telefonu kimi şeylərdə naviqasiya tətbiqləri üçün nəzərdə tutulmuşdur və son dərəcə ucuzdur. Fikrimcə, təxminən 500 dollara başa gələn bir şeydə qəbuledilməzdir.

Addım 2: Pinout

Pinout
Pinout

Sensor, mikro qazma konnektoru vasitəsi ilə sağ qaz tənzimləyicisindəki PCB -yə qoşulur.

Pinout aşağıdakı kimidir:

  1. Vcc +3.3VDC (

    Lövhənin digər tərəfində, konnektorun arxasındakı xətti bir tənzimləyici tərəfindən yerli olaraq 5V -dən tənzimlənir, 20mA ətrafında olmalıdır, amma bunu heç bir şəkildə sınamamışam)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Düymə 1 (Normalda yüksək, daxili 5V çəkmə)

Addım 3: Protokolun Təsviri

Protokolun Təsviri
Protokolun Təsviri

Sensor 0x41 I2C ünvanında işləyir - bütün yazma və ya oxumaq əmrləri bu ünvandan başlayır.

Qaz kompüterə qoşulduqda, 0x40 ünvanlı I2C avtobusunda təxminən 250 ms -lik bir giriş var, bunun fərqli bir sensor versiyası və ya buna bənzər bir şey üçün olduğunu düşünürəm, amma bizimlə əlaqəli deyil.

Normal istifadədə olan I2C avtobusuna göndərilən məlumatlar aşağıda verilmişdir, bu, qazla danışmaq üçün mikrokontrollerimiz tərəfindən simulyasiya edilməlidir.

Quraşdırma - Bu məlumatlar, USB bağlandıqdan təxminən 500 ms sonra, orijinal sensoru işə salmaq üçün bir dəfə göndərilir.

Usta Yazı: 0x0F (Nəzarət Qeydiyyatı 1)

Məlumat: 0x02 0b0000 0010 (yumşaq sıfırlama başlayır)

Usta Yazı: 0x0F (Nəzarət Qeydiyyatı 1)

Master Oxu: 0xF1 0b1111 0001 (11110000 olaraq sıfırlanır, lsb 1 etibarlı məlumatların oxunmağa hazır olduğunu bildirir. Etibarlı bir qulluq cihazı olaraq tanınmaq üçün bu əmrə düzgün cavab verməliyik)

Usta Yazı: 0x2E (Nəzarət Qeydiyyatı 2)

Məlumat: 0x86 (bu, orijinal sensordakı maqnitin istiqamətini təyin edir)

Master Yazı: 0x0F (Nəzarət Qeydiyyatı 1)

Məlumat: 0x 80 0b1000 0000 (Cihazı boş rejimə qoyur (avtomatik ölçmə, aşağı güc rejimində deyil))

Döngü: Sensor məlumatlarını əldə etmək üçün təxminən 100 Hz -də təkrarlanır.

Usta Yazı: 0x10 (X reyestri)

Master Oxu: (qul X məlumatlarını, 2 -nin tamamlayıcı 8 bit dəyərini göndərir)

Usta Yazı: 0x11 (Y qeydiyyatı)

Master Oxu: (qul Y məlumatlarını, 2 -nin tamamlayıcı 8 bit dəyərini göndərir)

Məntiq analizatorundan protokol zibilinin müvafiq hissəsi:

[0x82] + ACK -a yazın

0x0F + ACK

0x02 + ACK

[0x82] + ACK -a yazın

0x0F + ACK

Oxumanı [0x83] + ACK olaraq qurun

0xF1 + NAK

[0x82] + ACK -a yazın

0x2E + ACK

0x86 + ACK

[0x82] + ACK -a yazın

0x0F + ACK

0x80 + ACK

[0x82] + ACK -a yazın

0x10 + ACK

Oxumanı [0x83] + ACK 0xFC + NAK olaraq qurun

Quraşdır [0x82] + ACK 0x11 + ACK -a yaz

Oxumanı [0x83] + ACK 0xFF + NAK olaraq qurun

Addım 4: Arduino Kodu

Arduino kodu
Arduino kodu

Əlavə edilmiş Arduino kodu sensoru simulyasiya etmək üçün istifadə edilə bilər.

Diqqət edin: Əksər Arduino lövhələri 5V ilə işləyir, bunun üçün joystickə zərər verməmək üçün işləmək üçün 3.3V uyğun və ya dəyişdirilmiş bir lövhə lazımdır.

Addım 5: Kalibrləmə

Kalibrləmə
Kalibrləmə

Yeni sensoru quraşdırdıqdan sonra qazın kalibrlənməsi lazımdır.

Qazınızı kalibr etmək üçün qaz kalibrləmə vasitəsi olacaqsınız. Bu kimi bir çox mənbədən yükləyə bilərsiniz:

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

Pəncərə kalibrindən istifadə etməyin.

Moddan maksimum istifadə etmək üçün kalibrləmə konfiqurasiya sənədinizdəki bir neçə dəyəri dəyişdirməlisiniz.

Dəyişdirin:

Standart_DZ_SX = 0x10;

Standart_DZ_SY = 0x10;

A10_calibration.txt -dəki sətirlər:

Standart_DZ_SX = 0x01;

Standart_DZ_SY = 0x01;

Bu, 10 -dan 1 -ə qədər sürüşmə nəzarətində ölü zonaya çevriləcək və daha yaxşı bir nəzarət verəcəkdir. Bu parametrlə oynaya və sonra yenidən kalibr edə və ən çox bəyəndiyinizi görə bilərsiniz.

Tövsiyə: