Daftar Isi:

R/C ke Jembatan USB: 7 Langkah
R/C ke Jembatan USB: 7 Langkah

Video: R/C ke Jembatan USB: 7 Langkah

Video: R/C ke Jembatan USB: 7 Langkah
Video: 3 Bocah Terlindas Truk Saat Selfie Di Atas Motor 2024, November
Anonim
R/C ke Jembatan USB
R/C ke Jembatan USB

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

Solder Pin Header ke Port I/O Tambahan Arduino
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

Tambahkan Perpustakaan Joystick Arduino ke IDE Anda
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

Lakukan Pengkabelan
Lakukan Pengkabelan
Lakukan Pengkabelan
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

Direkomendasikan: