תוכן עניינים:

שדרוג Thrustmaster Warthog Slew I2C: 5 שלבים
שדרוג Thrustmaster Warthog Slew I2C: 5 שלבים

וִידֵאוֹ: שדרוג Thrustmaster Warthog Slew I2C: 5 שלבים

וִידֵאוֹ: שדרוג Thrustmaster Warthog Slew I2C: 5 שלבים
וִידֵאוֹ: Обзор джойстика - Thrustmaster HOTAS Warthog 2024, סֶפּטֶמבֶּר
Anonim
שדרוג Thrustmaster Warthog Slew חיישן I2C
שדרוג Thrustmaster Warthog Slew חיישן I2C

זהו מדריך גס כיצד להתממשק עם פרוטוקול I2C המשמש בחיישן המצערת ThrustmasterWarthog. ניתן להשתמש בזה כדי לשדרג מהמיניסטרט הסטנדרטי חסר התועלת למדי למשהו טוב יותר, אך עדיין להשתמש בבקר ה- USB הסטנדרטי ביחידת המצערת. זה מבוסס על פוסט מקורי על:

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

הבנה בסיסית אם פרוטוקול I2C מניח ברוב השלבים הבאים, להסבר מצוין עבור אל:

learn.sparkfun.com/tutorials/i2c

כל שאלה ספציפית, אל תהסס לשאול אותי, ואשתדל להוסיף על זה בעתיד עם מידע רלוונטי יותר. זה בהחלט לא שלם, אבל אמור להיות נקודת מוצא טובה.

מסופק קוד Arduino הדגמה כלשהו, אך אנא קח זאת רק כהפניה מכיוון שלא ניתן להשתמש ב- Arduino רגיל 5V ללא שינוי.

שלב 1: פרטי חיישן קיימים

פרטי חיישן קיימים
פרטי חיישן קיימים

חיישן ההנעה המיניסטי שמגיע עם מצערת Thrustmaster Wathog ידוע כאחת החולשות הגדולות ביותר עם מוצר מצוין אחרת. היו מספר ניסיונות של אנשים להחליף אותו במשהו טוב יותר לאורך השנים, אך רובם נתקלו בקשיים בהתממשקות עם פרוטוקול I2C הדיגיטלי המשמש אותו.

החיישן המדויק המשמש במצערת הווארטוג הוא N35P112 - EasyPoint, המשתמש בחיישן אפקט האולם AS5013 מתוצרת AMS.

טופס מידע:

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

מעניין שהיחידה הייתה זמינה פעם כמודול פריצה של Sparkfun:

www.sparkfun.com/products/retired/10835

החיישן מיועד ליישומי ניווט בדברים כמו טלפונים ניידים, והוא זול במיוחד. לדעתי לא מקובל במשהו שעולה כמעט 500 $.

שלב 2: Pinout

Pinout
Pinout

החיישן מתחבר ל- PCB ביחידת המצערת הימנית באמצעות מחבר מיקרו 5 פינים.

Pinout הוא כדלקמן:

  1. Vcc +3.3VDC (

    מוסדר מקומית מ- 5V על ידי וסת לינארי בצד השני של הלוח, ממש מאחורי המחבר, אמור להיות טוב עד 20mA, אבל בשום אופן לא בדקתי את זה)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. כפתור 1 (רגיל גבוה, פנימי 5V פנימי)

שלב 3: תיאור פרוטוקול

תיאור פרוטוקול
תיאור פרוטוקול

החיישן פעל על כתובת I2C 0x41 - כל פקודות הכתיבה או הקריאה מתחילות עם כתובת זו.

כאשר המצערת מתחברת למחשב, ישנה מבוא של כ- 250ms באוטובוס I2C לכתובת 0x40, אני מניח שזה לגרסת חיישן אחרת או משהו דומה, אבל זה לא רלוונטי עבורנו.

הנתונים הנשלחים באוטובוס I2C בשימוש רגיל נמצאים למטה, יש לדמות זאת על ידי המיקרו -בקר שלנו כדי לדבר עם המצערת.

התקנה - נתונים אלה נשלחים פעם אחת, בערך 500 ms לאחר חיבור ה- USB, כדי להגדיר את החיישן המקורי לשימוש.

כתיבת מאסטר: 0x0F (פקד בקרה 1)

נתונים: 0x02 0b0000 0010 (יוזם איפוס רך)

מאסטר כתיבה: 0x0F (פקד בקרה 1)

מאסטר קריאה: 0xF1 0b1111 0001 (מתאפס ל- 11110000, lsb 1 מסמן כי נתונים תקפים מוכנים לקריאה. עלינו להשיב לפקודה זו בצורה נכונה כדי להיות מוכר כמכשיר עבדים תקף)

כתיבת מאסטר: 0x2E (פקד בקרה 2)

נתונים: 0x86 (זה רק קובע את כיוון המגנט בחיישן המקורי)

מאסטר כתיבה: 0x0F (פקד בקרה 1)

נתונים: 0x 80 0b1000 0000 (מכשיר את המכשיר למצב סרק (מדידה אוטומטית, לא במצב צריכת חשמל נמוכה))

לולאה: הדבר חוזר על עצמו בסביבות 100 הרץ כדי לקבל נתוני חיישנים.

מאסטר כתיבה: 0x10 (רשום X)

מאסטר קריאה: (העבד שולח נתוני X, ערך משלים של 8 סיביות)

מאסטר כתיבה: 0x11 (רשום Y)

מאסטר קריאה: (העבד שולח נתוני Y, ערך משלים של 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 פועלים עם 5V, זה דורש לוח תואם או שונה של 3.3V כדי לעבוד כדי למנוע נזק לג'ויסטיק שלכם.

שלב 5: כיול

כִּיוּל
כִּיוּל

לאחר החיישן החדש שלך הותקן, המצערת תצטרך כיול.

כדי לכייל את המצערת שלך אתה תהיה הכלי לכיבוי המצערת. ניתן להוריד זאת ממספר מקורות כגון:

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

אין להשתמש בכיול חלונות.

על מנת להפיק את המקסימום מ mod אתה צריך לשנות כמה ערכים בקובץ תצורת הכיול שלך.

לשנות את ה:

Standard_DZ_SX = 0x10;

Standard_DZ_SY = 0x10;

קווים ב- A10_calibration.txt אל:

Standard_DZ_SX = 0x01;

Standard_DZ_SY = 0x01;

זה ישתנה לאזור מת על הבקרה האחידה מ -10 ל -1, וייתן שליטה טובה בהרבה. אתה יכול לשחק עם ההגדרה הזו ואז לכייל מחדש ולראות מה אתה הכי אוהב.

מוּמלָץ: