Სარჩევი:

Thrustmaster Warthog Slew Sensor I2C განახლება: 5 ნაბიჯი
Thrustmaster Warthog Slew Sensor I2C განახლება: 5 ნაბიჯი

ვიდეო: Thrustmaster Warthog Slew Sensor I2C განახლება: 5 ნაბიჯი

ვიდეო: Thrustmaster Warthog Slew Sensor I2C განახლება: 5 ნაბიჯი
ვიდეო: Hardware Review: Delta Sim Electronics Thumbstick Upgrade für Thrustmaster HOTAS Warthog 2024, ივნისი
Anonim
Thrustmaster Warthog Slew Sensor I2C განახლება
Thrustmaster Warthog Slew Sensor I2C განახლება

ეს არის უხეში სახელმძღვანელო იმის შესახებ, თუ როგორ უნდა მოხდეს ინტერფეისი I2C პროტოკოლთან, რომელიც გამოიყენება ThrustmasterWarthog– ის გასროლის სენსორზე. ეს შეიძლება გამოყენებულ იქნას საკმაოდ უსარგებლო სტანდარტული მინისტრიკიდან რაიმე უკეთესზე გადასასვლელად, მაგრამ მაინც გამოიყენოთ სტანდარტული USB კონტროლერი გასროლის განყოფილებაში. ეს ემყარება ორიგინალურ პოსტს:

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

ძირითადი გაგება, თუ I2C პროტოკოლი არის გათვალისწინებული შემდეგი ნაბიჯების უმეტესობისთვის, შესანიშნავი ახსნისთვის გადადით:

learn.sparkfun.com/tutorials/i2c

ნებისმიერი კონკრეტული შეკითხვა, თავისუფლად დამისვით და მე შევეცდები მომავალში დავამატო ეს აუტანელი უფრო შესაბამისი ინფორმაციით. ეს არ არის სრულყოფილი, მაგრამ უნდა იყოს კარგი საწყისი წერტილი.

მოცემულია Arduino– ს რამდენიმე დემო კოდი, მაგრამ გთხოვთ ეს მხოლოდ მინიშნებად მიიჩნიოთ, რადგან ჩვეულებრივი 5V Arduino– ს გამოყენება არ შეიძლება მოდიფიკაციის გარეშე.

ნაბიჯი 1: არსებული სენსორის დეტალები

არსებული სენსორის დეტალები
არსებული სენსორის დეტალები

მინისტრის სენსორი, რომელსაც გააჩნია Thrustmaster Wathog throttleis, კარგად არის ცნობილი, რომ სხვაგვარად შესანიშნავი პროდუქტის ერთ -ერთი ყველაზე დიდი სისუსტეა. წლების განმავლობაში იყო არაერთი მცდელობა ადამიანების მიერ მისი უკეთესით შეცვლის შესახებ, მაგრამ უმეტესობა შეექმნა სირთულეებს მის მიერ გამოყენებულ ციფრულ I2C პროტოკოლთან ურთიერთობისას.

ზუსტი სენსორი, რომელიც გამოიყენება Warthog– ის დროს, არის N35P112 - EasyPoint, რომელიც იყენებს AS5013 დარბაზის ეფექტის სენსორ IC– ს, რომელიც დამზადებულია AMS– ის მიერ.

Მონაცემთა ფურცელი:

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

საინტერესოა, რომ ერთეული ერთხელ ხელმისაწვდომი იყო სპარკფუნის მიერ ბრეაკოუტ მოდულის სახით:

www.sparkfun.com/products/retired/10835

სენსორი განკუთვნილია ნავიგაციის პროგრამებისთვის, როგორიცაა მობილური ტელეფონები და ძალიან იაფია. ჩემი აზრით, მიუღებელია ისეთ რამეში, რაც თითქმის $ 500 ღირს.

ნაბიჯი 2: Pinout

პინოუტი
პინოუტი

სენსორი უკავშირდება PCB– ს მარჯვენა ხელის გასროლის ერთეულში მიკრო 5 პინიანი კონექტორის საშუალებით.

Pinout არის შემდეგი:

  1. Vcc +3.3VDC (

    ადგილობრივად რეგულირდება 5V– დან ხაზოვანი მარეგულირებელი დაფის მეორე მხარეს, კონექტორის უკან, კარგი უნდა იყოს 20mA– ის გარშემო, მაგრამ მე არავითარ შემთხვევაში არ გამომიცდია ეს)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. ღილაკი 1 (ჩვეულებრივ მაღალი, შიდა 5 ვ აწევით)

ნაბიჯი 3: პროტოკოლის აღწერა

პროტოკოლის აღწერა
პროტოკოლის აღწერა

სენსორი მუშაობდა I2C მისამართზე 0x41 - ყველა ჩაწერის ან წაკითხვის ბრძანება იწყება ამ მისამართით.

როდესაც საჰაერო ხომალდი კომპიუტერთან არის დაკავშირებული, I2C ავტობუსში არის დაახლოებით 250ms პრეამბულა 0x40 მისამართისთვის, მე ვთვლი, რომ ეს არის სხვა სენსორული ვერსიისთვის ან მსგავსი რამისთვის, მაგრამ ეს ჩვენთვის არ არის შესაბამისი.

ნორმალური გამოყენებისას I2C ავტობუსზე გაგზავნილი მონაცემები ქვემოთ მოცემულია, ეს უნდა იყოს იმიტირებული ჩვენი მიკროკონტროლის მიერ, რომ დაელაპარაკოს სადგამს.

დაყენება - ეს მონაცემები იგზავნება ერთხელ, USB- ის შეერთების შემდეგ დაახლოებით 500ms, ორიგინალური სენსორის გამოსაყენებლად.

სამაგისტრო წერა: 0x0F (კონტროლის რეგისტრაცია 1)

მონაცემები: 0x02 0b0000 0010 (იწყებს რბილ გადატვირთვას)

სამაგისტრო წერა: 0x0F (კონტროლის რეგისტრაცია 1)

სამაგისტრო წაკითხვა: 0xF1 0b1111 0001 (აღდგება 11110000, lsb 1 ნიშნავს, რომ სწორი მონაცემები წასაკითხად მზად არის. ჩვენ სწორად უნდა ვუპასუხოთ ამ ბრძანებას, რომ აღიარებულ იქნას როგორც მოქმედი მონა მოწყობილობა)

სამაგისტრო წერა: 0x2E (საკონტროლო რეგისტრაცია 2)

მონაცემები: 0x 86 (ეს ადგენს მაგნიტის ორიენტაციას ორიგინალურ სენსორში)

სამაგისტრო წერა: 0x0F (კონტროლის რეგისტრაცია 1)

მონაცემები: 0x 80 0b1000 0000 (აყენებს მოწყობილობას უმოქმედო რეჟიმში (ავტომატური გაზომვა, არა დაბალი ენერგიის რეჟიმში))

მარყუჟი: ეს მეორდება დაახლოებით 100 Hz– ზე სენსორის მონაცემების მისაღებად.

სამაგისტრო წერა: 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 დაფების უმეტესობა მუშაობს 5V– ზე, ამისათვის საჭიროა 3.3V თავსებადი ან მოდიფიცირებული დაფა, რომ არ დააზიანოთ თქვენი ჯოისტიკი.

ნაბიჯი 5: კალიბრაცია

კალიბრაცია
კალიბრაცია

მას შემდეგ, რაც თქვენი ახალი სენსორი დამონტაჟდება, გრუნტს დასჭირდება დაკალიბრება.

თქვენი გრიპის დასაკალიბრებლად თქვენ გისურვებთ გაზქურის დაკალიბრების ინსტრუმენტს. მისი გადმოწერა შესაძლებელია მრავალი წყაროდან, როგორიცაა:

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

არ გამოიყენოთ ფანჯრების კალიბრაცია.

იმისათვის, რომ მიიღოთ მაქსიმუმი მოდიდან, თქვენ უნდა შეცვალოთ რამდენიმე მნიშვნელობა კალიბრაციის კონფიგურაციის ფაილში.

Შეცვალე:

სტანდარტული_DZ_SX = 0x10;

სტანდარტული_DZ_SY = 0x10;

ხაზები A10_calibration.txt to:

სტანდარტული_DZ_SX = 0x01;

სტანდარტული_DZ_SY = 0x01;

ეს შეიცვლება მკვდარ ზონაში კონტროლის კონტროლზე 10 -დან 1 -მდე და მისცემს ბევრად უკეთეს კონტროლს. თქვენ შეგიძლიათ ითამაშოთ ამ პარამეტრით და შემდეგ ხელახლა დაკალიბრება და ნახეთ რა მოგწონთ ყველაზე მეტად.

გირჩევთ: