Mundarija:

USB ko'prigiga R/C: 7 qadam
USB ko'prigiga R/C: 7 qadam

Video: USB ko'prigiga R/C: 7 qadam

Video: USB ko'prigiga R/C: 7 qadam
Video: Siyrot ko‘prigi va Tarozi oldida ~ Abdulloh Domla | Сийрот кўприги ва Тарози олдида ~ Абдуллоҳ Домла 2024, Noyabr
Anonim
USB ko'prigiga R/C
USB ko'prigiga R/C

Radio qabul qiluvchidan PPM signallarini joystik pozitsiyalariga o'zgartiradi

O'zingizning sevimli o'yinlaringizni va parvoz simulyatorlarini R/C radio uzatgichingiz bilan o'ynash uchun foydalaning. Ushbu yo'riqnomada bu konvertatsiya qilish uchun LittleBits -dan Arduino va DSMX qabul qiluvchisi va oddiy kod parchasi ishlatiladi.

Sizga kerak bo'ladi

  • Quvvat
  • Arduino
  • USB kabellari
  • sarlavhalar
  • o'tish simlari
  • PPM chiqishi bilan radio qabul qilgich.

1 -qadam: Arduino -ning qo'shimcha kiritish -chiqarish portlariga lehim pin sarlavhalari

Arduino -ning qo'shimcha kiritish -chiqarish portlariga lehim pin sarlavhalari
Arduino -ning qo'shimcha kiritish -chiqarish portlariga lehim pin sarlavhalari

Qabul qilgichni (RX) quvvatlantirish uchun Arduino -ga pin sarlavhalarini qo'shish kerak. Bu, shuningdek, Bit va RX o'rtasidagi simlarni ancha osonlashtiradi. Qo'shimcha ma'lumot olish uchun https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit ga qarang.

2 -qadam: Arduino Joystik kutubxonasini IDE -ga qo'shing

IDE -ga Arduino Joystick kutubxonasini qo'shing
IDE -ga Arduino Joystick kutubxonasini qo'shing

Siz kutubxonani GitHub -da topishingiz mumkin, https://github.com/MHeironimus/ArduinoJoystickLib… Rahmat, Metyu Xeyronimus, uni yozganingiz uchun.

Faqat ba'zi Arduinolar HIDga taqlid qila oladilar. LittleBits mikrokontroleri Arduino Leonardo bo'lgani uchun, siz borishga tayyormiz.

3 -qadam: Kodni Arduino -ga ulang

#include #define inputPin 16#kanallarni belgilash 4 #define lo 800 // RX chiqishiga moslashtiring#belgilang salom 1600 // RX chiqishiga sozlang#aniqlang 10intli kanal [kanallar]; int previousValue [kanallar]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, rost, rost, yolg'on, yolg'on, yolg'on, yolg'on, rost, rost, yolg'on, yolg'on); void setup () {Joystick.setXAxisRange salom); Joystick.setYAxisRange (lo, salom); Joystick.setThrottleRange (lo, salom); Joystick.setRudderRange (lo, salom); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, INPUT); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= kanallar-1; i ++) {kanal = pulseIn (inputPin, HIGH); } uchun (int i = 0; i <= kanallar-1; i ++) {if ((kanal > 2000) || (kanal <500)) {kanal = oldingiValue ; } boshqa {kanal = (oldingiValue +kanal )/2; hisoblagich ++; }} Joystick.setXAxis (kanal [0]); Joystick.setYAxis (kanal [1]); Joystick.setThrottle (kanal [2]); Joystick.setRudder (kanal [3]); } if (hisoblagich> filtr) {uchun (int i = 0; i <= kanallar-1; i ++) {Serial.print ("kanal"); Ketma -ket chop etish (i+1); Serial.print (":"); Serial.println (kanal ); oldingiValue = kanal ; } hisoblagich = 0; }}

Shuni yodda tutingki, R/C signali va taqlid qilingan USB HID o'rtasida ko'prik bo'lgan kod eng oddiy shaklda keladi. Bu erda ishlatiladigan funksiya - pulseIn - blokirovka qiluvchi funksiya. Bu erda va uzilishlar yordamida blokirovka qilinmaydigan yondashuvni qanday amalga oshirish kerakligini o'qing.

4 -qadam: simlarni ulang

Ulanish ishlarini bajaring
Ulanish ishlarini bajaring
Ulanish ishlarini bajaring
Ulanish ishlarini bajaring

Bit va RX o'rtasida o'tish simini / DuPont kabelini ulang. Ushbu kabellarning oxiridagi ulagichlar ayol bo'lishi kerak. Biz RXning PPM portidan GND (ko'k), VCC (jigarrang) va signalni (to'q sariq) Arduino -dagi GND, VCC va d16 ga ulaymiz.

5 -qadam: Qabul qilgichni ulang

Arduino -ni elektr tarmog'idan uzing. Bog'lanish jabduqlarini RXda BIND deb belgilangan ulagich joyiga joylashtiring. Radio uzatgichni yoqing va ulanish rejimiga o'tkazing. Keyin Arduino -ga kuch qo'llang. Qabul qilgichdagi LED yoqilganda bog'lash jarayoni muvaffaqiyatli bo'ldi.

6 -qadam: Kodni sizning sharoitingizga moslashtiring

Siz ishlatayotgan qabul qilgichning haqiqiy chiqishini aks ettirish uchun Arduino eskizidagi hi va lo doimiylarini o'zgartirish kerak.

#aniqlang 800

Salom 1600

PPM pulsining ichidagi signallar idealdan 1000 mikrondan 2000 mikrongacha o'zgaradi. Bu ko'rsatma chiqishda ishlatiladigan RX taxminan 800 dan 1600 gacha va har bir kanalda biroz farq qiladi. Qabul qiluvchining qaysi diapazoniga ega ekanligini bilish uchun Arduino IDE -dagi Serial Monitor -ni ochib, RX -ning chiqishini ko'ring. Bu shunga o'xshash ko'rinadi:

1 -kanal: 728

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

Siz RX chiqaradigan diapazon haqida aniq tasavvurga ega bo'lganingizdan so'ng, salom va lo uchun yaxshi taxminlarni tanlang va shunga mos ravishda konstantalarni o'zgartiring. Keyin eskizni yana Arduino -ga yuklang.

7 -qadam: taqlid qilingan joystikni sozlang

Qurilmani kompyuterga ulang va operatsion tizimingizning kalibrlash funktsiyasidan foydalanib, taqlid qilingan joystikni sozlang. Linux uchun yaxshi vosita-bu jstest-gtk.

Qo'shimcha yaxshilanishlar

  • Bloklamaydigan kodni yozing (3-qadamga qarang)
  • Butun dunyo bo'ylab emas, balki har bir kanal uchun diapazonni o'rnating (6 -qadamga qarang)

Qo'shimcha o'qish

  • Redcon CM703
  • PPM

Tavsiya: