สารบัญ:

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 สามารถใช้เพื่ออัพเกรดจาก ministick มาตรฐานที่ค่อนข้างไร้ประโยชน์ไปเป็นสิ่งที่ดีกว่า แต่ยังคงใช้คอนโทรลเลอร์ USB มาตรฐานในหน่วยเค้น สิ่งนี้อ้างอิงจากโพสต์ต้นฉบับเมื่อ:

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

ความเข้าใจพื้นฐานหากใช้โปรโตคอล I2C สำหรับขั้นตอนส่วนใหญ่ต่อไปนี้ สำหรับคำอธิบายที่ยอดเยี่ยม ให้ไปที่:

learn.sparkfun.com/tutorials/i2c

คำถามเฉพาะใด ๆ โปรดถามฉันและฉันจะพยายามเพิ่มข้อมูลที่ยากขึ้นนี้ในอนาคตด้วยข้อมูลที่เกี่ยวข้องมากขึ้น นี่ยังไม่สมบูรณ์ แต่ควรเป็นจุดเริ่มต้นที่ดี

มีโค้ดสาธิต Arduino บางตัวให้ แต่โปรดใช้สิ่งนี้เป็นข้อมูลอ้างอิงเท่านั้นเนื่องจาก Arduino 5V ปกติไม่สามารถใช้งานได้โดยไม่ต้องดัดแปลง

ขั้นตอนที่ 1: รายละเอียดเซนเซอร์ที่มีอยู่

รายละเอียดเซนเซอร์ที่มีอยู่
รายละเอียดเซนเซอร์ที่มีอยู่

ministick slew sensor ที่มาพร้อมกับ Thrustmaster Wathog throttleis ที่รู้จักกันดีว่าเป็นหนึ่งในจุดอ่อนที่ใหญ่ที่สุดด้วยผลิตภัณฑ์ที่ยอดเยี่ยมอย่างอื่น มีคนพยายามหลายครั้งที่จะแทนที่มันด้วยสิ่งที่ดีกว่าในช่วงหลายปีที่ผ่านมา แต่ส่วนใหญ่ต้องเผชิญกับความยากลำบากในการเชื่อมต่อกับโปรโตคอล I2C ดิจิทัลที่ใช้โดยโปรโตคอลนี้

เซ็นเซอร์ที่แน่นอนที่ใช้ในคันเร่ง Warthog คือ N35P112 - EasyPoint ซึ่งใช้ IC เซ็นเซอร์เอฟเฟกต์ฮอลล์ 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 โดยตัวควบคุมเชิงเส้นที่อีกด้านหนึ่งของบอร์ด ด้านหลังตัวเชื่อมต่อ ควรจะดีถึง arround 20mA แต่ฉันไม่มีทางทดสอบสิ่งนี้)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. ปุ่ม 1 (ปกติสูง 5V pullup ภายใน)

ขั้นตอนที่ 3: คำอธิบายโปรโตคอล

คำอธิบายโปรโตคอล
คำอธิบายโปรโตคอล

เซ็นเซอร์ทำงานบนที่อยู่ I2C 0x41 - คำสั่งเขียนหรืออ่านทั้งหมดเริ่มต้นด้วยที่อยู่นี้

เมื่อเค้นเชื่อมต่อกับคอมพิวเตอร์ มีคำนำประมาณ 250 มิลลิวินาทีบนบัส I2C เพื่อระบุตำแหน่ง 0x40 ฉันคิดว่านี่เป็นรุ่นเซ็นเซอร์อื่นหรือสิ่งที่คล้ายกัน แต่ไม่เกี่ยวข้องกับเรา

ข้อมูลที่ส่งบนบัส I2C ในการใช้งานปกติอยู่ด้านล่าง ไมโครคอนโทรลเลอร์ของเราต้องจำลองข้อมูลนี้เพื่อพูดคุยกับคันเร่ง

ตั้งค่า - ข้อมูลนี้จะถูกส่งครั้งเดียว ประมาณ 500ms หลังจากเชื่อมต่อ USB เพื่อตั้งค่าเซ็นเซอร์เดิมสำหรับการใช้งาน

เขียนหลัก: 0x0F (ลงทะเบียนควบคุม 1)

ข้อมูล: 0x02 0b0000 0010 (เริ่มซอฟต์รีเซ็ต)

เขียนหลัก: 0x0F (ลงทะเบียนควบคุม 1)

Master Read: 0xF1 0b1111 0001 (รีเซ็ตเป็น 11110000, lsb 1 หมายถึงข้อมูลที่ถูกต้องพร้อมที่จะอ่าน เราต้องตอบกลับคำสั่งนี้อย่างถูกต้องเพื่อให้รู้จักเป็นอุปกรณ์สเลฟที่ถูกต้อง)

เขียนหลัก: 0x2E (ลงทะเบียนควบคุม 2)

ข้อมูล: 0x 86 (นี่เป็นเพียงการกำหนดทิศทางของแม่เหล็กในเซ็นเซอร์เดิม)

เขียนหลัก: 0x0F (ลงทะเบียนควบคุม 1)

ข้อมูล: 0x 80 0b1000 0000 (ตั้งค่าอุปกรณ์เป็นโหมดว่าง (การวัดอัตโนมัติ ไม่อยู่ในโหมดพลังงานต่ำ))

วนซ้ำ: ทำซ้ำที่ประมาณ 100Hz เพื่อรับข้อมูลเซ็นเซอร์

เขียนหลัก: 0x10 (ลงทะเบียน X)

Master Read: (สเลฟส่งข้อมูล X, 2 ค่าเสริม 8 บิต)

เขียนหลัก: 0x11 (ลงทะเบียน Y)

Master Read: (สเลฟส่งข้อมูล 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 ส่วนใหญ่ใช้ไฟ 5V ซึ่งต้องใช้บอร์ดที่เข้ากันได้หรือดัดแปลง 3.3V เพื่อหลีกเลี่ยงความเสียหายต่อจอยสติ๊กของคุณ

ขั้นตอนที่ 5: การปรับเทียบ

การสอบเทียบ
การสอบเทียบ

เมื่อเซ็นเซอร์ใหม่ของคุณได้รับการติดตั้งแล้ว เค้นจะต้องสอบเทียบ

ในการปรับเทียบคันเร่ง คุณจะต้องใช้เครื่องมือสอบเทียบคันเร่ง สามารถดาวน์โหลดได้จากแหล่งต่าง ๆ เช่น:

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

อย่าใช้การปรับเทียบหน้าต่าง

เพื่อให้ได้ประโยชน์สูงสุดจากม็อด คุณต้องเปลี่ยนค่าสองสามค่าในไฟล์การกำหนดค่าการปรับเทียบของคุณ

เปลี่ยน:

Standard_DZ_SX = 0x10;

มาตรฐาน_DZ_SY = 0x10;

บรรทัดใน A10_calibration.txt ถึง:

Standard_DZ_SX = 0x01;

มาตรฐาน_DZ_SY = 0x01;

สิ่งนี้จะเปลี่ยนเป็นโซนตายในการควบคุมการสังหารจาก 10 เป็น 1 และให้การควบคุมที่ดีขึ้นมาก คุณสามารถเล่นกับการตั้งค่านี้แล้วปรับเทียบใหม่และดูสิ่งที่คุณชอบมากที่สุด

แนะนำ: