
Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49

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

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

Sensor terhubung ke PCB di unit throttle tangan kanan melalui konektor mikro 5 pin.
Pinoutnya adalah sebagai berikut:
-
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)
- I2C SDA
- I2C SCL
- GND
- Tombol 1 (Biasanya tinggi, pullup 5V internal)
Langkah 3: 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 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

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:
Upgrade Bor Tanpa Kabel Murah!: 4 Langkah

Upgrade Bor Cordless Murah !: Kali ini saya akan berbagi cara mengupgrade baterai bor Cordless murah. Yang akan kita upgrade hanya baterainya saja, karena bor murah memiliki kapasitas baterai kecil. Kami akan menambahkan beberapa fungsi pada baterai ! Fitur tambahan: Isi daya b
Layar LCD I2C / IIC - Gunakan LCD SPI ke Layar LCD I2C Menggunakan Modul SPI ke IIC Dengan Arduino: 5 Langkah

Layar LCD I2C / IIC | Menggunakan LCD SPI ke Layar LCD I2C Menggunakan Modul SPI ke IIC Dengan Arduino: Hai teman-teman karena LCD SPI 1602 yang normal memiliki terlalu banyak kabel untuk dihubungkan sehingga sangat sulit untuk menghubungkannya dengan arduino tetapi ada satu modul yang tersedia di pasaran yang dapat ubah tampilan SPI menjadi tampilan IIC sehingga Anda hanya perlu menghubungkan 4 kabel
Layar LCD I2C / IIC - Mengonversi LCD SPI ke Layar LCD I2C: 5 Langkah

Layar LCD I2C / IIC | Mengkonversi LCD SPI ke Layar LCD I2C: menggunakan layar lcd spi membutuhkan terlalu banyak koneksi yang sangat sulit untuk dilakukan jadi saya menemukan modul yang dapat mengubah lcd i2c ke lcd spi jadi mari kita mulai
Adaptor LCD I2c Karakter (Contoh Koneksi I2c): 12 Langkah (dengan Gambar)

Adaptor LCD I2c Karakter (Contoh Koneksi I2c): Saya sedang melakukan skema koneksi untuk adaptor i2c tampilan karakter. Periksa pembaruan di situs saya. Sekarang saya menambahkan juga skema koneksi kabel untuk menggunakan pustaka asli bukan forked saya. Pustaka LiquidCrystal Arduino untuk tampilan LCD karakter, proyeksi bercabang
Addon Thrustmaster Warthog Joystick: 5 Langkah (dengan Gambar)

Thrustmaster Warthog Joystick Addon: halo tolong bersikap lembut pada saya.. ini adalah instruksi pertama saya. Saya membutuhkan beberapa tombol dan sumbu lagi di "babi babi" joystick, untuk bermain elit berbahaya. tidak menyenangkan bertukar antara joystick dan keyboard dengan "keretakan" pada kamu dia