Daftar Isi:

Thrustmaster Warthog Slew Sensor I2C Upgrade: 5 Langkah
Thrustmaster Warthog Slew Sensor I2C Upgrade: 5 Langkah

Video: Thrustmaster Warthog Slew Sensor I2C Upgrade: 5 Langkah

Video: Thrustmaster Warthog Slew Sensor I2C Upgrade: 5 Langkah
Video: Hardware Review: Delta Sim Electronics Thumbstick Upgrade für Thrustmaster HOTAS Warthog 2024, Juni
Anonim
Thrustmaster Warthog Slew Sensor I2C Upgrade
Thrustmaster Warthog Slew Sensor I2C Upgrade

Ini adalah panduan kasar tentang cara berinteraksi dengan protokol I2C yang digunakan pada sensor slew throttle ThrustmasterWarthog. Ini dapat digunakan untuk meningkatkan dari ministick standar yang cukup tidak berguna ke sesuatu yang lebih baik, Tetapi masih menggunakan pengontrol USB standar di unit throttle. Ini didasarkan dari posting asli di:

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

Pemahaman dasar jika protokol I2C diasumsikan untuk sebagian besar langkah-langkah berikut, untuk penjelasan yang sangat baik kunjungi:

learn.sparkfun.com/tutorials/i2c

Setiap pertanyaan spesifik, jangan ragu untuk bertanya kepada saya, dan saya akan mencoba menambahkan ini ke masa depan dengan informasi yang lebih relevan. Ini tidak berarti lengkap, tetapi harus menjadi titik awal yang baik.

Beberapa kode demo Arduino disediakan tetapi harap hanya mengambil ini sebagai referensi karena Arduino 5V normal tidak dapat digunakan tanpa modifikasi.

Langkah 1: Detail Sensor yang Ada

Detail Sensor yang Ada
Detail Sensor yang Ada

Sensor slew ministick yang hadir dengan throttle Thrustmaster Wathog dikenal sebagai salah satu kelemahan terbesar dengan produk yang sangat baik. Ada sejumlah upaya oleh orang-orang untuk menggantinya dengan sesuatu yang lebih baik selama bertahun-tahun, tetapi sebagian besar menghadapi kesulitan antarmuka dengan protokol I2C digital yang digunakan olehnya.

Sensor persis yang digunakan pada throttle Warthog adalah N35P112 - EasyPoint, yang menggunakan IC sensor hall effect AS5013 buatan AMS.

Lembaran data:

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

Menariknya unit ini pernah tersedia sebagai modul breakout oleh Sparkfun:

www.sparkfun.com/products/retired/10835

Sensor dimaksudkan untuk aplikasi navigasi dalam hal-hal seperti ponsel, dan sangat murah. Menurut pendapat saya tidak dapat diterima dalam sesuatu yang harganya hampir $500.

Langkah 2: Pinout

Pinout
Pinout

Sensor terhubung ke PCB di unit throttle tangan kanan melalui konektor mikro 5 pin.

Pinoutnya adalah sebagai berikut:

  1. Vcc +3.3VDC (

    Diatur secara lokal dari 5V oleh regulator linier di sisi lain papan, tepat di belakang konektor, seharusnya bagus untuk sekitar 20mA, tetapi saya sama sekali tidak menguji ini)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Tombol 1 (Biasanya tinggi, pullup 5V internal)

Langkah 3: Deskripsi Protokol

Deskripsi Protokol
Deskripsi Protokol

Sensor dioperasikan pada alamat I2C 0x41 - semua perintah tulis atau baca dimulai dengan alamat ini.

Ketika throttle terhubung ke komputer, ada pembukaan sekitar 250ms di bus I2C untuk mengatasi 0x40, saya menganggap ini untuk versi sensor yang berbeda atau yang serupa, tetapi itu tidak relevan bagi kami.

Data yang dikirim pada bus I2C dalam penggunaan normal di bawah ini, ini harus disimulasikan oleh mikrokontroler kami untuk berbicara dengan throttle.

Setup - Data ini dikirim sekali, sekitar 500 ms setelah USB terhubung, untuk mengatur sensor asli untuk digunakan.

Penulisan Master: 0x0F (Register Kontrol 1)

Data: 0x02 0b0000 0010 (memulai soft reset)

Penulisan Master: 0x0F (Register Kontrol 1)

Master Read: 0xF1 0b1111 0001 (reset ke 11110000, lsb 1 menandakan data yang valid siap untuk dibaca. Kita harus membalas perintah ini dengan benar untuk dikenali sebagai perangkat slave yang valid)

Penulisan Master: 0x2E (Register Kontrol 2)

Data: 0x 86 (ini hanya mengatur orientasi magnet di sensor asli)

Penulisan Master: 0x0F (Register Kontrol 1)

Data: 0x 80 0b1000 0000 (Mengatur perangkat ke mode siaga (pengukuran otomatis, bukan mode daya rendah))

Loop: Ini diulang pada sekitar 100Hz untuk mendapatkan data sensor.

Master Tulis: 0x10 (register X)

Master Read: (slave mengirim data X, nilai 8 bit komplemen 2)

Master Tulis: 0x11 (registrasi Y)

Master Read: (slave mengirimkan data Y, nilai komplemen 2 8 bit)

Bagian yang relevan dari dump protokol dari penganalisis logika:

Atur Tulis ke [0x82] + ACK

0x0F + ACK

0x02 + ACK

Atur Tulis ke [0x82] + ACK

0x0F + ACK

Pengaturan Baca ke [0x83] + ACK

0xF1 + NAK

Atur Tulis ke [0x82] + ACK

0x2E + ACK

0x86 + ACK

Atur Tulis ke [0x82] + ACK

0x0F + ACK

0x80 + ACK

Atur Tulis ke [0x82] + ACK

0x10 + ACK

Pengaturan Baca ke [0x83] + ACK 0xFC + NAK

Setup Tulis ke [0x82] + ACK 0x11 + ACK

Pengaturan Baca ke [0x83] + ACK 0xFF + NAK

Langkah 4: Kode Arduino

Kode Arduino
Kode Arduino

Kode Arduino terlampir dapat digunakan untuk mensimulasikan sensor.

Harap dicatat: Sebagian besar papan Arduino menjalankan 5V, ini membutuhkan papan yang kompatibel atau dimodifikasi 3.3V agar berfungsi untuk menghindari kerusakan pada joystick Anda.

Langkah 5: Kalibrasi

Kalibrasi
Kalibrasi

Setelah sensor baru Anda dipasang, throttle perlu dikalibrasi.

Untuk mengkalibrasi throttle Anda, Anda akan menggunakan alat kalibrasi throttle. Ini dapat diunduh dari beberapa sumber seperti:

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

Jangan gunakan kalibrasi windows.

Untuk mendapatkan hasil maksimal dari mod, Anda perlu mengubah beberapa nilai dalam file konfigurasi kalibrasi Anda.

Mengubah:

Standar_DZ_SX = 0x10;

Standar_DZ_SY = 0x10;

Baris di A10_calibration.txt ke:

Standar_DZ_SX = 0x01;

Standar_DZ_SY = 0x01;

Ini akan berubah menjadi zona mati pada kontrol slew dari 10 menjadi 1, dan memberikan kontrol yang jauh lebih baik. Anda dapat bermain dengan pengaturan ini dan kemudian mengkalibrasi ulang dan melihat apa yang paling Anda sukai.

Direkomendasikan: