جدول المحتويات:

ترقية Thrustmaster Warthog Slew Sensor I2C: 5 خطوات
ترقية Thrustmaster Warthog Slew Sensor I2C: 5 خطوات

فيديو: ترقية Thrustmaster Warthog Slew Sensor I2C: 5 خطوات

فيديو: ترقية Thrustmaster Warthog Slew Sensor I2C: 5 خطوات
فيديو: Thrustmaster Warthog Slew Upgrade 2024, سبتمبر
Anonim
ترقية Thrustmaster Warthog Slew Sensor I2C
ترقية Thrustmaster Warthog Slew Sensor I2C

هذا دليل تقريبي حول كيفية التفاعل مع بروتوكول I2C المستخدم في مستشعر ThrustmasterWarthog Throttle slew. يمكن استخدام هذا للترقية من ministick القياسي عديم الفائدة إلى حد ما إلى شيء أفضل ، ولكن لا يزال يستخدم وحدة تحكم USB القياسية في وحدة الخانق. هذا مبني على منشور أصلي على:

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

الفهم الأساسي إذا تم افتراض بروتوكول I2C لمعظم الخطوات التالية ، للحصول على شرح ممتاز ، انتقل إلى:

learn.sparkfun.com/tutorials/i2c

أي أسئلة محددة ، لا تتردد في طرحها ، وسأحاول أن أضيف إلى هذا المستعصي في المستقبل بمزيد من المعلومات ذات الصلة. هذا ليس مكتملًا بأي حال من الأحوال ، ولكن يجب أن يكون نقطة انطلاق جيدة.

يتم توفير بعض كود Arduino التجريبي ولكن يرجى أخذ هذا كمرجع فقط حيث لا يمكن استخدام Arduino 5V العادي دون تعديل.

الخطوة 1: تفاصيل جهاز الاستشعار الحالي

تفاصيل جهاز الاستشعار الموجود
تفاصيل جهاز الاستشعار الموجود

من المعروف جيدًا أن مستشعر الفتحة الصغيرة الذي يأتي مع Thrustmaster Wathog throttle هو أحد أكبر نقاط الضعف مع منتج ممتاز. كان هناك عدد من المحاولات من قبل الأشخاص لاستبدالها بشيء أفضل على مر السنين ، لكن معظمهم واجهوا صعوبات في التعامل مع بروتوكول I2C الرقمي الذي يستخدمه.

المستشعر الدقيق المستخدم في خنق Warthog هو N35P112 - EasyPoint ، والذي يستخدم مستشعر تأثير القاعة AS5013 IC المصنوع من AMS.

ورقة البيانات:

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

من المثير للاهتمام أن الوحدة كانت متاحة مرة واحدة كوحدة اندلاع بواسطة Sparkfun:

www.sparkfun.com/products/retired/10835

المستشعر مخصص لتطبيقات الملاحة في أشياء مثل الهواتف المحمولة ، وهو رخيص للغاية. في رأيي غير مقبول في شيء يكلف ما يقرب من 500 دولار.

الخطوة 2: Pinout

Pinout
Pinout

يتصل المستشعر بـ PCB في وحدة الخانق اليمنى عبر موصل micro 5 pin.

Pinout على النحو التالي:

  1. Vcc + 3.3VDC (

    منظم محليًا من 5 فولت بواسطة منظم خطي على الجانب الآخر من اللوحة ، خلف الموصل مباشرةً ، يجب أن يكون جيدًا حتى 20 مللي أمبير ، لكنني لم أختبر هذا بأي حال من الأحوال)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. الزر 1 (مرتفع عادةً ، سحب داخلي 5 فولت)

الخطوة 3: وصف البروتوكول

وصف البروتوكول
وصف البروتوكول

يعمل المستشعر على عنوان I2C 0x41 - تبدأ جميع أوامر الكتابة أو القراءة بهذا العنوان.

عندما يكون الخانق متصلاً بالكمبيوتر ، هناك تمهيد بحوالي 250 مللي ثانية على ناقل I2C لعنوان 0x40 ، أفترض أن هذا إصدار مستشعر مختلف أو شيء مشابه ، لكنه ليس مناسبًا لنا.

البيانات المرسلة على ناقل I2C في الاستخدام العادي أدناه ، يجب محاكاة ذلك بواسطة وحدة التحكم الدقيقة الخاصة بنا للتحدث إلى دواسة الوقود.

الإعداد - يتم إرسال هذه البيانات مرة واحدة ، حوالي 500 مللي ثانية بعد توصيل USB ، لتعيين المستشعر الأصلي للاستخدام.

كتابة رئيسية: 0x0F (سجل التحكم 1)

البيانات: 0x02 0b0000 0010 (يبدأ إعادة تعيين ضعيف)

كتابة رئيسية: 0x0F (سجل التحكم 1)

قراءة رئيسية: 0xF1 0b1111 0001 (إعادة التعيين إلى 11110000 ، يشير lsb 1 إلى أن البيانات الصالحة جاهزة للقراءة. يجب أن نرد على هذا الأمر بشكل صحيح ليتم التعرف عليه كجهاز تابع صالح)

كتابة رئيسية: 0x2E (سجل التحكم 2)

البيانات: 0x 86 (هذا فقط يحدد اتجاه المغناطيس في المستشعر الأصلي)

كتابة رئيسية: 0x0F (سجل التحكم 1)

البيانات: 0x 80 0b1000 0000 (ضبط الجهاز على وضع الخمول (القياس التلقائي ، ليس في وضع الطاقة المنخفضة))

التكرار التكراري: يتكرر هذا عند حوالي 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 بجهد 5 فولت ، وهذا يحتاج إلى لوحة متوافقة أو معدلة 3.3 فولت لتعمل على تجنب تلف عصا التحكم الخاصة بك.

الخطوة 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 ، ويعطي تحكمًا أفضل بكثير. يمكنك اللعب بهذا الإعداد ثم إعادة معايرته ورؤية ما يعجبك أكثر.

موصى به: