Mündəricat:

USB Körpüsünə R/C: 7 addım
USB Körpüsünə R/C: 7 addım

Video: USB Körpüsünə R/C: 7 addım

Video: USB Körpüsünə R/C: 7 addım
Video: Мы сделали игру Mr.Eskaizo. Благодаря Мигель. #Frikiretrogamer #Gameplay 2024, Iyul
Anonim
USB körpüsünə R/C
USB körpüsünə R/C

Radio qəbuledicisindən PPM siqnallarını joystick mövqelərinə çevirir

R/C radio ötürücünüzlə ən sevdiyiniz oyunları və uçuş simulyatorlarını oynamaq üçün istifadə edin. Bu Təlimat, bu çevrilməni həyata keçirmək üçün LittleBits -dən bir Arduino və DSMX qəbuledicisi və sadə bir kod parçasından istifadə edir.

Sizə lazım olacaq

  • Güc
  • Arduino
  • USB kabellər
  • pin başlıqları
  • tullanan tel
  • PPM çıxışı olan bir radio qəbuledicisi.

Addım 1: Arduinonun Əlavə I/O Portlarına Lehim Pin Başlıqları

Arduinonun Əlavə I/O Portlarına Lehim Pin Başlıqları
Arduinonun Əlavə I/O Portlarına Lehim Pin Başlıqları

Alıcını (RX) gücləndirmək üçün Arduinoya pin başlıqlarının əlavə edilməsi lazımdır. Bu da Bit və RX arasındakı naqilləri çox asanlaşdıracaq. Daha çox məlumat üçün https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit səhifəsinə baxın.

Addım 2: Arduino Joystick Kitabxanasını IDE -yə əlavə edin

Arduino Joystick Kitabxanasını IDE -yə əlavə edin
Arduino Joystick Kitabxanasını IDE -yə əlavə edin

Kitabxananı GitHub -da tapa bilərsiniz, https://github.com/MHeironimus/ArduinoJoystickLib… Yazdığınız üçün təşəkkür edirəm, Matthew Heironimus.

Yalnız müəyyən Arduinolar bir joystick kimi bir HID təqlid edə bilər. LittleBits mikrodenetleyicisi ürəkdə bir Arduino Leonardo olduğu üçün getməyiniz yaxşıdır.

Addım 3: Kodu Arduino üzərinə yandırın

#include #define inputPin 16#kanalları təyin edin 4 #define lo 800 // RX çıxışına uyğunlaşdırın#hi 1600 təyin edin // RX çıxışına uyğunlaşdırın#filtri təyin edin 10 kanal [kanallar]; int previousValue [kanallar]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, doğru, doğru, yalan, yalan, yalan, yalan, yalan, doğru, doğru, yalan, yalan); void setup () {Joystick.setXAxisRange salam); Joystick.setYAxisRange (bax, salam); Joystick.setThrottleRange (bax, salam); Joystick.setRudderRange (bax, salam); Joystick.begin (); Serial.begin (9600); pinMode (girişPin, GİRİŞ); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= kanallar-1; i ++) {kanal = pulseIn (inputPin, HIGH); } üçün (int i = 0; i <= kanallar-1; i ++) {əgər ((kanal > 2000) || (kanal <500)) {kanal = əvvəlkiValue ; } başqa {kanal = (əvvəlkiValue +kanal )/2; sayğac ++; }} Joystick.setXAxis (kanal [0]); Joystick.setYAxis (kanal [1]); Joystick.setThrottle (kanal [2]); Joystick.setRudder (kanal [3]); } if (sayğac> filtr) {üçün (int i = 0; i <= kanallar-1; i ++) {Serial.print ("kanal"); Serial.çap (i+1); Serial.print (":"); Serial.println (kanal ); əvvəlkiValue = kanal ; } sayğac = 0; }}

Unutmayın ki, R/C siqnalı ilə təqlid edilmiş USB HID arasında körpü olan kod ən sadə formada gəlir. Burada istifadə olunan funksiya - pulseIn - bloklama funksiyasıdır. Burada və burada fasilələrdən istifadə edərək bloklanmayan bir yanaşmanın necə tətbiq ediləcəyini oxuyun.

Addım 4: Kabel çəkin

Kabel çəkin
Kabel çəkin
Kabel çəkin
Kabel çəkin

Keçid telini / DuPont kabellərini Bit və RX arasına bağlayın. Bu kabellərin ucundakı bağlayıcıların dişi olması lazımdır. RX -in PPM portundan GND (mavi), VCC (qəhvəyi) və siqnalı (narıncı) Arduino üzərindəki GND, VCC və d16 -ya bağlayırıq.

Addım 5: Alıcını bağlayın

Arduino'yu gücdən ayırın. Bağlayıcı kəməri RX -də BIND işarələnmiş bağlayıcı yerinə qoyun. Radio ötürücünüzü yandırın və bağlama rejiminə keçirin. Sonra Arduinoya güc tətbiq edin. Alıcıdakı LED yandıqda bağlama prosesi uğurlu oldu.

Addım 6: Kodu şəraitə uyğunlaşdırın

Arduino eskizindəki hi və lo sabitləri, istifadə etdiyiniz alıcının faktiki çıxışını əks etdirmək üçün dəyişdirilməlidir.

#800 təyin edin

#salam 1600

PPM nəbzinin içindəki siqnallar ideal olaraq 1000μs -dən 2000μs -ə qədərdir. Bu Təlimatlandırılan çıxışlarda istifadə olunan RX təxminən 800 ilə 1600 arasında dəyişir və hər kanalda bir qədər fərqlidir. Alıcınızın hansı diapazonda olduğunu öyrənmək üçün RX -in çıxışını görmək üçün Arduino IDE -də Serial Monitoru açın. Buna bənzər görünəcək:

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 -in çıxdığı diapazon haqqında daha aydın təsəvvür əldə etdikdən sonra hi və lo üçün yaxşı yaxınlaşmaları seçin və sabitləri buna uyğun olaraq dəyişdirin. Sonra eskizi yenidən Arduino -ya yükləyin.

Addım 7: Emulated Joystick'i kalibr edin

Cihazı kompüterinizə bağlayın və təqlid olunan joysticki kalibr etmək üçün OS -nin kalibrləmə funksiyasından istifadə edin. Linux üçün yaxşı bir vasitə jstest-gtk-dir.

Əlavə təkmilləşdirmələr

  • Bloklamayan kod yazın (3-cü addıma baxın)
  • Qlobal olaraq deyil, hər kanal üçün diapazon təyin edin (bax: Adım 6)

Əlavə oxu

  • Redcon CM703
  • PPM

Tövsiyə: