İçindekiler:
- Adım 1: Pin Başlıklarını Arduino'nun Ek G/Ç Bağlantı Noktalarına Lehimleyin
- Adım 2: Arduino Joystick Kitaplığını IDE'nize Ekleyin
- Adım 3: Kodu Arduino'ya Flashlayın
- Adım 4: Kablolamayı Yapın
- Adım 5: Alıcıyı Bağlayın
- Adım 6: Kodu Koşullarınıza Göre Ayarlayın
- 7. Adım: Öykünülmüş Joystick'i kalibre edin
Video: R/C - USB Köprüsü: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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
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
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
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:
KaKu Köprüsü (Klik-aan Klik-uit): 4 Adım
KaKu Köprüsü (Klik-aan Klik-uit): Bu KakuBridge çok ucuz (< 8 $) ve Klik-aan Klik-uit cihazları (CoCo) için domotica sistemi kurması çok basit. Bir web sayfasındaki uzaktan kumanda ile 9 adede kadar cihazı kontrol edebilirsiniz. Üstelik KakuBridge ile her cihazı programlayabilirsiniz.
Ucuz NMEA/AIS Hub - Yerleşik Kullanım için RS232 - Wifi Köprüsü: 6 Adım
Ucuz NMEA/AIS Hub - Yerleşik Kullanım için RS232 - Wifi Köprüsü: 9 Ocak 2021 Güncellemesi - Ekstra TCP bağlantısı eklendi ve daha fazla müşteri bağlanırsa son bağlantıyı yeniden kullanın 13 Aralık 2020 Güncellemesi - Mevcut yönlendiricileri olan tekneler için kodun yapılandırma sürümü eklenmedi GirişBu NMEA / AIS RS232'den WiFi köprüsüne
Raspberry Pi Kurumsal Ağ WiFi Köprüsü: 9 Adım
Raspberry Pi Enterprise Network WiFi Köprüsü: Yazan: Riley Barrett ve Dylan HallandBu projenin amacı, Weemo Smart Plug, Amazon Echo, Gaming Console veya herhangi bir Wi-Fi özellikli cihazın bir IoT cihazına bağlanmasına izin vermektir. Raspberry Pi Zero kullanarak WPA_EAP Enterprise Network
ESP8266 Kullanan Alexa Uyumlu IR Köprüsü: 3 Adım
Bir ESP8266 Kullanarak Alexa Uyumlu IR Köprüsü: Akıllı TV'mi Alexa üzerinden kontrol etmenin bir yolunu istedim. Maalesef benim Hi-Sense 65quot; Smart TV, WiFi üzerinden kontrol edilme özelliğine sahip değildir. Onunla arayüz oluşturmak için kullanabileceğim bir çeşit API'si olsaydı güzel olurdu
Raspberry Pi Ethernet - Wifi Köprüsü: 7 Adım
Raspberry Pi Ethernet - Wifi Bridge: Çeşitli Raspberry Pies, cihazlar ve diğer bilgisayarlar ve ağ ekipmanlarından oluşan bir test ağım var, hepsi bir Ubiquity güvenlik duvarı/yönlendiricisi tarafından yönetiliyor ve internete bağlı olmasını istiyorum, böylece yapabilirim güncellemeleri, yazılımı vb. çekin. Talihsiz