Агуулгын хүснэгт:

Thrustmaster Warthog Sensor I2C -ийг нүүлгэв: 5 алхам
Thrustmaster Warthog Sensor I2C -ийг нүүлгэв: 5 алхам

Видео: Thrustmaster Warthog Sensor I2C -ийг нүүлгэв: 5 алхам

Видео: Thrustmaster Warthog Sensor I2C -ийг нүүлгэв: 5 алхам
Видео: Небольшое сравнение Thrustmaster Hotas Warthog и Hotas Cougar 2024, Есдүгээр
Anonim
Thrustmaster Warthog Sensor I2C -ийг сайжруулсан
Thrustmaster Warthog 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 тохируулагч дээр яг ашигладаг мэдрэгч нь AMS -ийн хийсэн AS5013 танхимын эффект мэдрэгч IC -ийг ашигладаг N35P112 - EasyPoint юм.

Мэдээллийн хуудас:

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

Сонирхолтой нь уг төхөөрөмжийг нэг удаа Sparkfun -ийн задлах модуль болгон ашиглах боломжтой байв.

www.sparkfun.com/products/retired/10835

Мэдрэгч нь гар утас гэх мэт зүйлийг удирдах зориулалттай бөгөөд маш хямд юм. Миний бодлоор бараг 500 долларын үнэтэй зүйлийг хүлээн зөвшөөрөх боломжгүй юм.

Алхам 2: Pinout хийх

Pinout
Pinout

Мэдрэгч нь баруун гар талын тохируулагч хэсгийн ПХБ -д микро 5 зүү холбогчоор холбогддог.

Pinout нь дараах байдалтай байна.

  1. Vcc +3.3VDC (

    Удирдах зөвлөлийн нөгөө талд байрлах шугаман зохицуулагчаар 5В -аас орон нутгийн хэмжээнд зохицуулагдсан нь 20мА орчим байх ёстой, гэхдээ би үүнийг туршиж үзээгүй)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Товчлуур 1 (Ихэвчлэн өндөр, дотоод 5V татах)

Алхам 3: Протоколын тайлбар

Протоколын тодорхойлолт
Протоколын тодорхойлолт

Мэдрэгч нь 0x41 I2C хаяг дээр ажилладаг - бүх хаягийг бичих эсвэл унших командыг энэ хаягаар эхлүүлнэ.

Хий тохируулагчийг компьютерт холбоход I2C автобусанд 0x40 хаягийг оруулах 250мм орчим оршил байдаг бөгөөд энэ нь өөр мэдрэгчийн хувилбар эсвэл үүнтэй төстэй зүйлд зориулагдсан гэж бодож байна, гэхдээ энэ нь бидэнд хамаагүй.

I2C автобусанд ердийн хэрэглээнд илгээсэн өгөгдлийг доор харуулав, тохируулагчтай ярихын тулд үүнийг манай микроконтроллероор дуурайх ёстой.

Тохиргоо - Энэхүү өгөгдлийг USB холболт хийснээс хойш ойролцоогоор 500 м -ийн дараа анхны мэдрэгчийг ашиглахаар тохируулах зорилгоор илгээдэг.

Мастер бичих: 0x0F (Хяналтын бүртгэл 1)

Өгөгдөл: 0x02 0b0000 0010 (зөөлөн дахин эхлүүлэх)

Мастер бичих: 0x0F (Хяналтын бүртгэл 1)

Мастер Унших: 0xF1 0b1111 0001 (11110000 болгож дахин тохируулна, lsb 1 нь хүчин төгөлдөр өгөгдлийг уншихад бэлэн болсон гэсэн үг юм. Хүчинтэй боол төхөөрөмж гэж хүлээн зөвшөөрөхийн тулд бид энэ тушаалд зөв хариулах ёстой)

Мастер бичих: 0x2E (Хяналтын бүртгэл 2)

Өгөгдөл: 0x 86 (энэ нь анхны мэдрэгч дэх соронзны чиглэлийг тохируулдаг)

Мастер бичих: 0x0F (Хяналтын бүртгэл 1)

Өгөгдөл: 0x 80 0b1000 0000 (Төхөөрөмжийг идэвхгүй горимд тохируулна (автомат хэмжилт, бага чадлын горимд биш))

Loop: Мэдрэгчийн өгөгдлийг авахын тулд үүнийг 100 Гц орчим давтана.

Мастер бичих: 0x10 (X бүртгэл)

Мастер унших: (боол нь X өгөгдлийг илгээдэг, 2 -ийн нэмэлт 8 битийн утга)

Мастер бичих: 0x11 (Y бүртгэл)

Мастер унших: (боол нь Y өгөгдлийг илгээдэг, 2 -ийн нэмэлт 8 битийн утга)

Логик анализаторын протоколын хаягдлын холбогдох хэсэг:

[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 код

Мэдрэгчийг дуурайхын тулд хавсаргасан 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 хүртэлх үхсэн бүс болж өөрчлөгдөж, илүү сайн хяналтыг өгөх болно. Та энэ тохиргоог ашиглан тоглож, дараа нь дахин тохируулж, хамгийн их дуртай зүйлээ харах боломжтой.

Зөвлөмж болгож буй: