Daftar Isi:
- Langkah 1: Solder Pin Header ke Port I/O Tambahan Arduino
- Langkah 2: Tambahkan Perpustakaan Joystick Arduino ke IDE Anda
- Langkah 3: Flash Kode Ke Arduino
- Langkah 4: Lakukan Pengkabelan
- Langkah 5: Ikat Penerima
- Langkah 6: Sesuaikan Kode dengan Keadaan Anda
- Langkah 7: Kalibrasi Joystick yang Diemulasi
Video: R/C ke Jembatan USB: 7 Langkah
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Mengubah sinyal PPM dari penerima radio menjadi posisi joystick
Gunakan untuk memainkan game favorit Anda dan simulator penerbangan dengan pemancar radio R/C Anda. Instruksi ini menggunakan Arduino dari littleBits dan penerima DSMX ditambah potongan kode sederhana untuk melakukan konversi ini.
Anda akan perlu
- Kekuasaan
- Arduino
- kabel USB
- pin header
- kabel jumper
- penerima radio dengan output PPM.
Langkah 1: Solder Pin Header ke Port I/O Tambahan Arduino
Untuk memberi daya pada receiver (RX), pin header perlu ditambahkan ke Arduino. Ini juga akan membuat pengkabelan antara Bit dan RX jauh lebih mudah. Lihat https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit untuk informasi lebih lanjut.
Langkah 2: Tambahkan Perpustakaan Joystick Arduino ke IDE Anda
Anda dapat menemukan perpustakaan di GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Terima kasih, Matthew Heironimus, untuk menulisnya.
Hanya Arduino tertentu yang dapat meniru HID seperti joystick. Karena mikrokontroler littleBits adalah Arduino Leonardo, Anda siap menggunakannya.
Langkah 3: Flash Kode Ke Arduino
#include #define inputPin 16#define channels 4 #define lo 800 //sesuaikan dengan output RX#define hi 1600 //sesuaikan dengan output RX#define filter 10int channel[channels]; int PreviousValue[saluran]; int counter = 0;Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, false, true, true, false, false, false);void setup(){ Joystick.setXAxisRange(lo, Hai); Joystick.setYAxisRange(lo, hai); Joystick.setThrottleRange(lo, hai); Joystick.setRudderRange(lo, hai); Joystick.mulai(); Serial.begin(9600); pinMode(inputPin, INPUT); }void loop(){ if(pulseIn(inputPin, HIGH) > 3000) { for(int i = 0; i <= channels-1; i++) { channel=pulseIn(inputPin, HIGH); } for(int i = 0; i <= saluran-1; i++) { if((saluran > 2000) || (saluran <500)) { saluran = nilai sebelumnya; } else { saluran = (Nilai sebelumnya+saluran)/2; penghitung++; } } Joystick.setXAxis(saluran[0]); Joystick.setYAxis(saluran[1]); Joystick.setThrottle(saluran [2]); Joystick.setRudder(saluran[3]); } if(counter > filter) { for(int i = 0; i <= channel-1; i++) { Serial.print("channel "); Serial.print(i+1); Serial.print(": "); Serial.println(saluran); nilai sebelumnya=saluran; } penghitung=0; } }
Perlu diketahui bahwa kode yang menjembatani antara sinyal R/C dan USB HID yang diemulasi hadir dalam bentuk yang paling sederhana. Fungsi yang digunakan di sini – pulseIn – adalah fungsi pemblokiran. Baca di sini, dan di sini, bagaimana menerapkan pendekatan non-blocking menggunakan interupsi.
Langkah 4: Lakukan Pengkabelan
Hubungkan kabel jumper / kabel DuPont antara Bit dan RX. Konektor di ujung kabel ini harus perempuan. Kami menghubungkan GND (biru), VCC (coklat) dan sinyal (oranye) dari port PPM RX ke GND, VCC, dan d16 di Arduino.
Langkah 5: Ikat Penerima
Putuskan sambungan Arduino dari daya. Pasang harness pengikat ke lokasi konektor bertanda BIND pada RX. Nyalakan pemancar radio Anda dan alihkan ke mode ikat. Selanjutnya menerapkan daya ke Arduino. Proses bind berhasil ketika LED di receiver menyala.
Langkah 6: Sesuaikan Kode dengan Keadaan Anda
Konstanta hi dan lo dalam sketsa Arduino perlu diubah untuk mencerminkan output aktual dari penerima yang Anda gunakan.
#tentukan 800
#tentukan hai 1600
Sinyal di dalam pulsa PPM idealnya berkisar dari 1000μs hingga 2000s. RX yang digunakan dalam nilai output yang Dapat Diinstruksikan ini kira-kira antara 800 dan 1600 dan sedikit berbeda pada setiap saluran. Untuk mengetahui jangkauan receiver Anda, buka Serial Monitor di Arduino IDE untuk melihat output RX Anda. Ini akan terlihat seperti ini:
saluran 1: 728
saluran 2: 729 saluran 3: 703 saluran 4: 726 saluran 1: 1681 saluran 2: 1639 saluran 3: 1613 saluran 4: 1676
Setelah Anda memiliki gagasan yang lebih jelas tentang kisaran yang dihasilkan RX Anda, pilih perkiraan yang baik untuk hi dan lo dan ubah konstanta yang sesuai. Kemudian upload sketsa ke Arduino lagi.
Langkah 7: Kalibrasi Joystick yang Diemulasi
Hubungkan perangkat ke komputer Anda dan gunakan fungsi kalibrasi OS Anda untuk mengkalibrasi joystick yang ditiru. Alat yang bagus untuk Linux adalah jstest-gtk.
Peningkatan lebih lanjut
- Tulis kode non-blocking (lihat Langkah 3)
- Tetapkan rentang per saluran, bukan secara global (lihat Langkah 6)
Bacaan lebih lanjut
- Redcon CM703
- PPM