İçindekiler:

R/C - USB Köprüsü: 7 Adım
R/C - USB Köprüsü: 7 Adım

Video: R/C - USB Köprüsü: 7 Adım

Video: R/C - USB Köprüsü: 7 Adım
Video: Şerit Takip Sistemi Kaza Anı 🚘 Lane Tracking System Accident ⚡️🆘⚠️⛔️ 2024, Kasım
Anonim
R/C'den USB'ye Köprü
R/C'den USB'ye Köprü

Bir radyo alıcısından gelen PPM sinyallerini joystick konumlarına dönüştürür

R/C radyo vericinizle en sevdiğiniz oyunları ve uçuş simülatörlerini oynamak için kullanın. Bu Eğitilebilir Kitap, bu dönüşümü yapmak için littleBits'ten bir Arduino ve bir DSMX alıcısı ve ayrıca basit bir kod parçacığı kullanır.

İhtiyacın olacak

  • Güç
  • Arduino
  • USB kabloları
  • pin başlıkları
  • atlama teli
  • PPM çıkışlı bir radyo alıcısı.

Adım 1: Pin Başlıklarını Arduino'nun Ek G/Ç Bağlantı Noktalarına Lehimleyin

Arduino'nun Ek G/Ç Bağlantı Noktalarına Lehim Pin Başlıkları
Arduino'nun Ek G/Ç Bağlantı Noktalarına Lehim Pin Başlıkları

Alıcıya (RX) güç sağlamak için Arduino'ya pin başlıklarının eklenmesi gerekir. Bu aynı zamanda Bit ile RX arasındaki kablolamayı da çok daha kolay hale getirecektir. Daha fazla bilgi için https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit adresine bakın.

Adım 2: Arduino Joystick Kitaplığını IDE'nize Ekleyin

Arduino Joystick Kitaplığını IDE'nize Ekleyin
Arduino Joystick Kitaplığını IDE'nize Ekleyin

Kütüphaneyi GitHub'da bulabilirsiniz, https://github.com/MHeironimus/ArduinoJoystickLib… Yazdığınız için teşekkürler Matthew Heironimus.

Yalnızca belirli Arduino'lar, bir joystick gibi bir HID'yi taklit edebilir. LittleBits mikrodenetleyici özünde bir Arduino Leonardo olduğundan, gitmeye hazırsınız.

Adım 3: Kodu Arduino'ya Flashlayın

#include #define inputPin 16#kanalları tanımla 4 #define lo 800 //RX çıkışına ayarla#define hi 1600 //RX çıkışına ayarla#define filtre 10int kanal[kanallar]; int öncekiDeğer[kanallar]; 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, Selam); Joystick.setYAxisRange(lo, hi); Joystick.setThrottleRange(lo, merhaba); Joystick.setRudderRange(lo, merhaba); Joystick.begin(); Seri.başla(9600); pinMode(inputPin, INPUT); }void loop(){ if(pulseIn(inputPin, HIGH) > 3000) { for(int i = 0; i <= kanallar-1; i++) { channel=pulseIn(inputPin, HIGH); } for(int i = 0; i <= kanallar-1; i++) { if((kanal > 2000) || (kanal <500)) { kanal = öncekiDeğer; } else { kanal = (öncekiDeğer+kanal)/2; sayaç++; } } Joystick.setXAxis(kanal[0]); Joystick.setYAxis(kanal[1]); Joystick.setThrottle(kanal[2]); Joystick.setRudder(kanal[3]); } if(counter > filtre) { for(int i = 0; i <= kanallar-1; i++) { Serial.print("channel "); Serial.print(i+1); Seri.print(": "); Serial.println(kanal); öncekiDeğer=kanal; } sayaç=0; } }

Lütfen R/C sinyali ile öykünülmüş USB HID arasında köprü kuran kodun en basit biçiminde geldiğini unutmayın. Burada kullanılan işlev – pulseIn – bir engelleme işlevidir. Burada ve burada, kesintileri kullanarak engelleyici olmayan bir yaklaşımın nasıl uygulanacağını okuyun.

Adım 4: Kablolamayı Yapın

Kablolamayı Yap
Kablolamayı Yap
Kablolamayı Yap
Kablolamayı Yap

Bit ve RX arasına atlama teli / DuPont kabloları bağlayın. Bu kabloların ucundaki konnektörlerin dişi olması gerekmektedir. RX'in PPM portundan GND (mavi), VCC (kahverengi) ve sinyali (turuncu) Arduino üzerinde GND, VCC ve d16'ya bağlarız.

Adım 5: Alıcıyı Bağlayın

Arduino'yu güçten ayırın. Bağlama donanımını RX üzerinde BIND olarak işaretlenmiş konektör konumuna yerleştirin. Radyo vericinizi açın ve bağlama moduna getirin. Ardından Arduino'ya güç uygulayın. Alıcıdaki LED yandığında bağlama işlemi başarılı olmuştur.

Adım 6: Kodu Koşullarınıza Göre Ayarlayın

Arduino çizimindeki hi ve lo sabitlerinin, kullandığınız alıcının gerçek çıktısını yansıtacak şekilde değiştirilmesi gerekir.

# 800'ü tanımla

#define merhaba 1600

PPM darbesinin içindeki sinyaller ideal olarak 1000μs ile 2000μs arasında değişir. Bu Eğitilebilir Tabloda kullanılan RX, kabaca 800 ile 1600 arasında değerler verir ve her kanalda biraz farklıdır. Alıcınızın hangi menzile sahip olduğunu öğrenmek için, RX'inizin çıktısını görmek için Arduino IDE'deki Seri Monitörü açın. Buna benzer görünecektir:

kanal 1: 728

kanal 2: 729 kanal 3: 703 kanal 4: 726 kanal 1: 1681 kanal 2: 1639 kanal 3: 1613 kanal 4: 1676

RX'inizin çıktı verdiği aralık hakkında daha net bir fikriniz olduğunda, hi ve lo için iyi yaklaşımlar seçin ve sabitleri buna göre değiştirin. Ardından taslağı tekrar Arduino'ya yükleyin.

7. Adım: Öykünülmüş Joystick'i kalibre edin

Cihazı bilgisayarınıza bağlayın ve öykünülmüş joystick'i kalibre etmek için işletim sisteminizin kalibrasyon işlevini kullanın. Linux için iyi bir araç jstest-gtk'dir.

Diğer geliştirmeler

  • Engellemeyen kod yazın (bkz. Adım 3)
  • Aralıkları genel olarak değil, kanal başına ayarlayın (bkz. Adım 6)

daha fazla okuma

  • Redcon CM703
  • PPM

Önerilen: