Съдържание:
- Стъпка 1: Съществуващи подробности за сензора
- Стъпка 2: Pinout
- Стъпка 3: Описание на протокола
- Стъпка 4: Arduino код
- Стъпка 5: Калибриране
Видео: Thrustmaster Warthog Slew Sensor I2C Надстройка: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Това е грубо ръководство за това как да взаимодействате с протокола I2C, използван на сензора за дроселна клапа ThrustmasterWarthog. Това може да се използва за надграждане от сравнително безполезния стандартен министър към нещо по -добро, но все пак да се използва стандартният USB контролер в дроселната клапа. Това се основава на оригинален пост на:
forums.eagle.ru/showthread.php?t=200198
Основно разбиране, ако протоколът I2C се приема за повечето от следните стъпки, за отлично обяснение отидете на:
learn.sparkfun.com/tutorials/i2c
Всички конкретни въпроси, не се колебайте да ме питате и аз ще се опитам да добавя към този неразрешим в бъдеще с по -подходяща информация. Това в никакъв случай не е пълно, но трябва да бъде добра отправна точка.
Предлага се демонстрационен код на Arduino, но моля, вземете го само като справка, тъй като нормален 5V Arduino не може да се използва без промяна.
Стъпка 1: Съществуващи подробности за сензора
Сензорът за изкривяване ministick, който се предлага с дросела Thrustmaster Wathog, е добре известен като една от най -големите слабости с иначе отличен продукт. През годините имаше редица опити на хората да го заменят с нещо по -добро, но повечето се сблъскват с трудностите при свързването с цифровия I2C протокол, използван от него.
Точният сензор, използван в дросела на Warthog, е N35P112 - EasyPoint, който използва сензора за холов ефект AS5013, произведен от AMS.
Информационен лист:
ams.com/eng/Products/Magnetic-Position-Sens…
Интересното е, че устройството някога е било достъпно като пробивен модул от Sparkfun:
www.sparkfun.com/products/retired/10835
Сензорът е предназначен за навигационни приложения в неща като мобилни телефони и е изключително евтин. Според мен неприемливо в нещо, което струва близо 500 долара.
Стъпка 2: Pinout
Сензорът се свързва към печатната платка в дясната дроселова клапа чрез микро 5 -пинов конектор.
Раздаването е както следва:
-
Vcc +3.3VDC (
Локално регулиран от 5V от линеен регулатор от другата страна на платката, точно зад конектора, трябва да е добър до около 20mA, но по никакъв начин не съм тествал това)
- I2C SDA
- I2C SCL
- GND
- Бутон 1 (Нормално висок, вътрешен изход 5V)
Стъпка 3: Описание на протокола
Сензорът работи на I2C адрес 0x41 - всички команди за запис или четене започват с този адрес.
Когато дроселната клапа е свързана с компютъра, има преамбюл от около 250ms на I2C шината до адрес 0x40, предполагам, че това е за различна версия на сензора или нещо подобно, но не е от значение за нас.
Данните, изпратени на I2C шината при нормална употреба, са по -долу, това трябва да бъде симулирано от нашия микроконтролер, за да говори с дросела.
Настройка - Тези данни се изпращат веднъж, около 500 мс след свързването на USB, за да настроите оригиналния сензор за употреба.
Master Write: 0x0F (Контролен регистър 1)
Данни: 0x02 0b0000 0010 (инициира меко нулиране)
Master Write: 0x0F (Контролен регистър 1)
Главно четене: 0xF1 0b1111 0001 (нулира се до 11110000, lsb 1 означава, че валидните данни са готови за четене. Трябва да отговорим правилно на тази команда, за да бъдем разпознати като валидно подчинено устройство)
Master Write: 0x2E (Контролен регистър 2)
Данни: 0x 86 (това само задава ориентацията на магнита в оригиналния сензор)
Master Write: 0x0F (Контролен регистър 1)
Данни: 0x 80 0b1000 0000 (Поставя устройството в режим на готовност (автоматично измерване, не в режим на ниска мощност))
Цикъл: Това се повтаря на около 100Hz, за да се получат данни от сензора.
Master Write: 0x10 (X регистър)
Главно четене: (подчиненият изпраща X данни, 8 -битова стойност на 2 допълнени)
Master Write: 0x11 (Y регистър)
Главно четене: (подчиненият изпраща Y данни, 2 -та допълнена 8 -битова стойност)
Съответна част от протокола dump от логически анализатор:
Настройка Пишете на [0x82] + ACK
0x0F + ACK
0x02 + ACK
Настройка Пишете на [0x82] + ACK
0x0F + ACK
Настройка Прочетете до [0x83] + ACK
0xF1 + NAK
Настройка Пишете на [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 работят с 5V, това се нуждае от 3.3V съвместима или модифицирана платка, за да работи, за да избегне повреда на вашия джойстик.
Стъпка 5: Калибриране
След като вашият нов сензор е монтиран, дроселът ще се нуждае от калибриране.
За да калибрирате дросела, ще използвате инструмента за калибриране на дросела. Това може да бъде изтеглено от редица източници като:
forums.eagle.ru/showthread.php?t=65901
Не използвайте калибриране на Windows.
За да извлечете максимума от мода, трябва да промените няколко стойности във вашия конфигурационен файл за калибриране.
Променете:
Standard_DZ_SX = 0x10;
Standard_DZ_SY = 0x10;
Редове в A10_calibration.txt до:
Standard_DZ_SX = 0x01;
Standard_DZ_SY = 0x01;
Това ще се промени в мъртва зона на контрола на забиване от 10 на 1 и ще даде много по -добър контрол. Можете да играете с тази настройка и след това да калибрирате отново и да видите какво ви харесва най -много.
Препоръчано:
Надстройка на батерията на Logitech G930: 5 стъпки
Надстройка на батерията Logitech G930: Кратко ръководство за надграждане на батерията на безжична слушалка logitech G930
Надстройка на Racing Drone: 10 стъпки
Надстройка на Racing Drone: Това е моят стъпка по стъпка процес на надграждане на състезателен дрон
Надстройка на хардуера на SmartTAG: LCD подсветка: 4 стъпки
Надстройка на хардуера на SmartTAG: LCD подсветка: Оригиналният SmartTAG (Малайзия) се доставя с LCD без подсветка, което е неудобно за проверка на баланса на картата при слабо осветление. Видях моя приятел BP Tan да модифицира едно устройство, за да включи подсветката, той с радост ме беше научил и
Поправка и надстройка на хладилник/фризер (Bosch KSV29630): 5 стъпки
Поправка и надстройка на хладилник/фризер (Bosch KSV29630): Ремонт & Надстройте вместо да замените & Rebuy! Симптоми: когато хладилникът се опитва да запали компресора, понякога работи, понякога се проваля, като мига зелената лампа за температура. Може да успее да стартира компресора, но след
Thrustmaster Warthog Joystick Addon: 5 стъпки (със снимки)
Thrustmaster Warthog Joystick Addon: здравей, моля те, бъди нежен към мен .. това е първата ми инструкция.имах нужда от още няколко бутона и оси на моя " warthog " джойстик, за игра на елит опасно. не е забавно смяната между джойстика и клавиатурата с " разрив " на твоя той