Thrustmaster Warthog Slew Sensor อัพเกรด I2C: 5 ขั้นตอน
Thrustmaster Warthog Slew Sensor อัพเกรด I2C: 5 ขั้นตอน
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 และให้การควบคุมที่ดีขึ้นมาก คุณสามารถเล่นกับการตั้งค่านี้แล้วปรับเทียบใหม่และดูสิ่งที่คุณชอบมากที่สุด

แนะนำ: