Мазмуну:

Thrustmaster Warthog S2W Sensor I2C Upgrade: 5 Steps
Thrustmaster Warthog S2W Sensor I2C Upgrade: 5 Steps

Video: Thrustmaster Warthog S2W Sensor I2C Upgrade: 5 Steps

Video: Thrustmaster Warthog S2W Sensor I2C Upgrade: 5 Steps
Video: Thrustmaster HOTAS Warthog Full Review 2024, Сентябрь
Anonim
Thrustmaster Warthog S2W Sensor I2C жогорулатуу
Thrustmaster Warthog S2W Sensor I2C жогорулатуу

Бул ThrustmasterWarthog дроссель сүзүүчү сенсорунда колдонулган I2C протоколу менен кантип интерфейс кылуу боюнча орой көрсөтмө. Бул өтө эле пайдасыз стандарттык министрликтен жакшыраак нерсеге чейин жаңыртуу үчүн колдонулушу мүмкүн, бирок дагы эле дроссель блогунда стандарттык USB контроллерин колдонуу. Бул оригиналдуу постко негизделген:

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

I2C протоколу төмөнкү кадамдардын көбү үчүн кабыл алынса, негизги түшүнүк, эң сонун түшүндүрмө үчүн:

learn.sparkfun.com/tutorials/i2c

Ар кандай конкреттүү суроолор болсо, мага суроо берүүдөн тартынбаңыз, мен келечекте бул туура эмес маалыматты дагы тиешелүү маалымат менен кошууга аракет кылам. Бул толугу менен эмес, бирок жакшы башталыш болушу керек.

Кээ бир демо Arduino коду берилген, бирок кадимки 5V Arduino өзгөртүүсүз колдонулбай тургандыктан, аны шилтеме катары гана алыңыз.

1 -кадам: Учурдагы сенсордун чоо -жайы

Учурдагы сенсордун чоо -жайы
Учурдагы сенсордун чоо -жайы

Министик Thrustmaster Wathog throttleis менен келген сенсорду башка продуктунун эң чоң кемчиликтеринин бири катары билет. Көп жылдар бою адамдар аны жакшыраак нерсеге алмаштырууга бир нече жолу аракет кылышты, бирок көпчүлүгү ал колдонгон санариптик I2C протоколу менен иштөө кыйынчылыктарына каршы чыгышты.

Warthog дроссельинде колдонулган так сенсор N35P112 - EasyPoint, ал AMS тарабынан жасалган AS5013 зал эффекти сенсорун колдонот.

Маалымат жадыбалы:

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

Кызыктуусу, бул бирдик Sparkfun тарабынан модуль катары жеткиликтүү болгон:

www.sparkfun.com/products/retired/10835

Сенсор уюлдук телефондор сыяктуу нерселерде навигациялык колдонмолор үчүн арналган жана өтө арзан. Менин оюмча, баасы 500 долларга жакын.

2 -кадам: Pinout

Кадап чыгып
Кадап чыгып

Сенсор оң колундагы дроссель бирдигиндеги ПХБга микро 5 пин туташтыргычы аркылуу туташат.

Pinout төмөнкүдөй:

  1. Vcc +3.3VDC (

    Тактанын башка жагындагы сызыктуу жөнгө салуучу 5Вдан жергиликтүү жөнгө салгычтын артында, 20мА тегерегинде болушу керек, бирок мен муну эч кандай сыноодон өткөргөн жокмун)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. 1 -баскыч (Адатта бийик, 5В ички тартуу)

3 -кадам: Протоколдун сүрөттөлүшү

Протоколдун сүрөттөлүшү
Протоколдун сүрөттөлүшү

Сенсор I2C 0x41 дареги боюнча иштейт - бардык жазуу же окуу буйруктары ушул даректен башталат.

Дроссель компьютерге туташканда, IxC автобусунда 0x40 дарегине 250 мс тегерегинде преамбула бар, бул башка сенсордук версияга же окшош нерсеге тиешелүү деп ойлойм, бирок бул бизге тиешеси жок.

I2C автобусунда кадимкидей колдонулган маалыматтар төмөндө, муну дроссель менен сүйлөшүү үчүн микроконтроллерибиз моделдештириши керек.

Орнотуу - Бул маалыматтар USB туташкандан кийин болжол менен 500 мс жөнөтүлөт, баштапкы сенсорду колдонуу үчүн.

Master жазуу: 0x0F (Control Register 1)

Маалыматтар: 0x02 0b0000 0010 (жумшак баштапкы абалга келтирүү)

Master жазуу: 0x0F (Control Register 1)

Мастер окуу: 0xF1 0b1111 0001 (11110000 баштапкы абалга келтирилет, lsb 1 жарактуу маалыматтарды окууга даяр экенин билдирет. Жарактуу кулдук түзмөк катары таануу үчүн бул буйрукка туура жооп беришибиз керек)

Master жазуу: 0x2E (Control Register 2)

Берилиштер: 0x 86 (бул жөн гана баштапкы сенсордо магнит багытын белгилейт)

Master жазуу: 0x0F (Control Register 1)

Берилиштер: 0x 80 0b1000 0000 (Түзмөктү бош режимге коёт (автоматтык өлчөө, аз кубат режиминде эмес))

Цикл: Бул сенсор маалыматын алуу үчүн 100 Гц тегерегинде кайталанат.

Master жазуу: 0x10 (X регистр)

Мастер окуу: (кул X маалыматын жөнөтөт, 2 толуктоочу 8 бит мааниси)

Master жазуу: 0x11 (Y регистр)

Мастер окуу: (кул Y маалыматын жөнөтөт, 2 толуктоочу 8 бит мааниси)

Логикалык анализатордон протоколдун тиешелүү бөлүгү:

Жазуу [0x82] + ACKга жазыңыз

0x0F + ACK

0x02 + ACK

Жазуу [0x82] + ACKга жазыңыз

0x0F + ACK

Окууну [0x83] + ACKга орнотуңуз

0xF1 + НАК

Жазуу [0x82] + ACKге жазыңыз

0x2E + ACK

0x86 + ACK

Жазуу [0x82] + ACKге жазыңыз

0x0F + ACK

0x80 + ACK

Жазуу [0x82] + ACKга жазыңыз

0x10 + ACK

Окууну [0x83] + ACK 0xFC + NAKке орнотуңуз

Орнотуу Жазуу [0x82] + ACK 0x11 + ACK

Окууну [0x83] + ACK 0xFF + NAKке орнотуу

4 -кадам: Arduino коду

Arduino коду
Arduino коду

Тиркелген Arduino коду сенсорду тууроо үчүн колдонулушу мүмкүн.

Көңүл буруңуз: Arduino такталарынын көбү 5В иштейт, бул үчүн джойстикти бузбоо үчүн иштөө үчүн 3.3V шайкеш же өзгөртүлгөн такта керек.

5 -кадам: Калибрлөө

Калибрлөө
Калибрлөө

Жаңы сенсор орнотулгандан кийин, дроссель калибрлөөгө муктаж болот.

Дроссельди калибрлөө үчүн сиз дроссель калибрлөө куралы болосуз. Бул сыяктуу бир катар булактардан жүктөп алса болот:

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

Терезелерди калибрлөөнү колдонбоңуз.

Моддон максималдуу пайда алуу үчүн, сиз калибрлөө конфигурация файлындагы бир нече баалуулуктарды өзгөртүшүңүз керек.

Өзгөртүү:

Standard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

A10_calibration.txtтеги саптар:

Standard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

Бул 10дон 1ге чейин көзөмөлдөө боюнча өлүк зонага өзгөрөт жана бир топ жакшыраак көзөмөлдү берет. Сиз бул жөндөө менен ойноп, анан кайра калибрлеп, сизге эң жакканын көрө аласыз.

Сунушталууда: