
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00

Энэ бол 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 хийх

Мэдрэгч нь баруун гар талын тохируулагч хэсгийн ПХБ -д микро 5 зүү холбогчоор холбогддог.
Pinout нь дараах байдалтай байна.
-
Vcc +3.3VDC (
Удирдах зөвлөлийн нөгөө талд байрлах шугаман зохицуулагчаар 5В -аас орон нутгийн хэмжээнд зохицуулагдсан нь 20мА орчим байх ёстой, гэхдээ би үүнийг туршиж үзээгүй)
- I2C SDA
- I2C SCL
- GND
- Товчлуур 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 самбарууд нь 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 хүртэлх үхсэн бүс болж өөрчлөгдөж, илүү сайн хяналтыг өгөх болно. Та энэ тохиргоог ашиглан тоглож, дараа нь дахин тохируулж, хамгийн их дуртай зүйлээ харах боломжтой.
Зөвлөмж болгож буй:
I2C / IIC LCD дэлгэц - Arduino ашиглан SPI -IIC модулийг ашиглан I2C LCD дэлгэц рүү SPI LCD ашиглах: 5 алхам

I2C / IIC LCD дэлгэц | IUC LCD дэлгэц дээр SPI LCD дэлгэцийг SPI -ийг IIC модулийг ашиглан Arduino ашиглан ашиглаарай: Сайн байна уу залуусаа, ердийн SPI LCD 1602 -ийг холбоход хэт олон утас байдаг тул үүнийг arduino -той холбоход маш хэцүү боловч зах зээл дээр боломжтой нэг модуль байдаг. SPI дэлгэцийг IIC дэлгэц болгон хөрвүүлэх тул та зөвхөн 4 утас холбох хэрэгтэй
I2C / IIC LCD дэлгэц - SPI LCD дэлгэцийг I2C LCD дэлгэц болгон хөрвүүлэх: 5 алхам

I2C / IIC LCD дэлгэц | SPI LCD дэлгэцийг I2C LCD дэлгэц болгон хөрвүүлэх: spi lcd дэлгэцийг ашиглахад хэт олон холболт шаардлагатай бөгөөд үүнийг хийх нь үнэхээр хэцүү тул i2c lcd -ийг spi lcd болгон хөрвүүлэх модулийг оллоо
Тэмдэгтийн LCD I2c адаптер (I2c холболтын жишээ): 12 алхам (зурагтай)

Тэмдэгтийн LCD I2c адаптер (I2c холболтын жишээ): Би тэмдэгт харуулах i2c адаптерийн холболтын схемийг хийж байна. Миний сайтын шинэчлэлтийг шалгаарай. Одоо би утсан холболтын схемийг миний салаа биш анхны номын санг ашиглахын тулд нэмж байна. тэмдэгт LCD дэлгэцийн хувьд сэрээтэй прож
Thrustmaster Warthog Joystick Addon: 5 алхам (зурагтай)

Thrustmaster Warthog Joystick Addon: Сайн байна уу, надад зөөлөн хандаарай .. энэ бол миний анхны зааварчилгаа юм. Надад "warthog" дээр хэдэн товчлуур, тэнхлэг хэрэгтэй байсан. джойстик, элит тоглоход аюултай. джойстик болон гарын хооронд " хагарал " чиний дээр тэр
Миний хаалган дээр хэн байгаа вэ? PIR Motion Sensor/Range Sensor Project: 5 алхам

Миний хаалган дээр хэн байгаа вэ? PIR Motion Sensor/Range Sensor Project: Манай төсөл нь PIR болон зайны мэдрэгчээр дамжуулан хөдөлгөөнийг мэдрэх зорилготой юм. Arduino код нь хэрэглэгчид ойрхон байгааг хэлэхийн тулд харааны болон аудио дохиог гаргана. MATLAB код нь хэрэглэгчид хэн нэгэн ойрхон байгааг мэдэгдэхийн тулд и -мэйл дохио илгээх болно