Съдържание:

R/C към USB мост: 7 стъпки
R/C към USB мост: 7 стъпки

Видео: R/C към USB мост: 7 стъпки

Видео: R/C към USB мост: 7 стъпки
Видео: USB Ports, Cables, Types, & Connectors 2024, Ноември
Anonim
R/C към USB мост
R/C към USB мост

Преобразува PPM сигнали от радиоприемник в позиции на джойстика

Използвайте го, за да играете любимите си игри и симулатори на полети с вашия R/C радиопредавател. Този Instructable използва Arduino от littleBits и DSMX приемник плюс прост фрагмент от код, за да направи това преобразуване.

Ще имаш нужда

  • Мощност
  • Arduino
  • USB кабели
  • пинови заглавки
  • джъмпер тел
  • радиоприемник с PPM изход.

Стъпка 1: Запоявайте заглавки на щифтове към допълнителните I/O портове на Arduino

Запоявайте заглавки на щифтове към допълнителните I/O портове на Arduino
Запоявайте заглавки на щифтове към допълнителните I/O портове на Arduino

За да захранвате приемника (RX), към Arduino трябва да се добавят пинови заглавки. Това също ще улесни окабеляването между Bit и RX. Вижте https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit за повече информация.

Стъпка 2: Добавете библиотеката с джойстик Arduino към вашата IDE

Добавете библиотеката на джойстика Arduino към вашата IDE
Добавете библиотеката на джойстика Arduino към вашата IDE

Можете да намерите библиотеката в GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Благодаря ви, Матю Хейронимус, че я написахте.

Само някои Arduinos могат да подражават на HID като джойстик. Тъй като микроконтролерът на littleBits е Arduino Leonardo по сърце, добре е да отидете.

Стъпка 3: Прехвърлете кода към Arduino

#include #define inputPin 16#дефинирайте канали 4#дефинирайте lo 800 // настройте към изхода на RX#определете hi 1600 // настройте към изхода на RX#дефинирайте филтър 10int канал [канали]; int previousValue [канали]; int counter = 0; Джойстик_ Джойстик (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, true, true, false, false, false); void setup () {Joystick.setXAxisRange здравей); Joystick.setYAxisRange (ето, здравей); Joystick.setThrottleRange (ето, здравей); Joystick.setRudderRange (ето, здравей); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, INPUT); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= канали-1; i ++) {канал = pulseIn (inputPin, HIGH); } за (int i = 0; i <= канали-1; i ++) {ако ((канал > 2000) || (канал <500)) {канал = предишна стойност ; } else {канал = (предишна стойност +канал )/2; брояч ++; }} Joystick.setXAxis (канал [0]); Joystick.setYAxis (канал [1]); Joystick.setThrottle (канал [2]); Joystick.setRudder (канал [3]); } if (брояч> филтър) {for (int i = 0; i <= канали-1; i ++) {Serial.print ("канал"); Serial.print (i+1); Serial.print (":"); Serial.println (канал ); previousValue = канал ; } брояч = 0; }}

Моля, имайте предвид, че кодът, който се свързва между R/C сигнала и емулирания USB HID, идва в най -простата си форма. Използваната тук функция - pulseIn - е блокираща функция. Прочетете тук и тук, как да приложите неблокиращ подход, използвайки прекъсвания.

Стъпка 4: Направете окабеляване

Направете окабеляване
Направете окабеляване
Направете окабеляване
Направете окабеляване

Свържете кабела на джъмпера / DuPont кабелите между бита и RX. Съединителите в края на тези кабели трябва да са женски. Свързваме GND (синьо), VCC (кафяво) и сигнал (оранжево) от PPM порта на RX към GND, VCC и d16 на Arduino.

Стъпка 5: Обвържете приемника

Изключете Arduino от захранването. Поставете свързващия сноп в мястото на конектора, означено с BIND на RX. Включете радиопредавателя и го превключете в режим на свързване. След това приложете захранване към Arduino. Процесът на свързване беше успешен, когато светодиодът в приемника се включи.

Стъпка 6: Приспособете кода към вашите обстоятелства

Константите hi и lo в скицата на Arduino трябва да бъдат променени, за да отразяват действителния изход на приемника, който използвате.

#дефинирайте 800

#дефинирайте здравей 1600

В идеалния случай сигналите в PPM импулса варират от 1000μs до 2000μs. RX, използван в тази инструкция, извежда стойности приблизително между 800 и 1600 и е малко по -различен за всеки канал. За да разберете какъв обхват има вашият приемник, отворете Serial Monitor в Arduino IDE, за да видите изхода на вашия RX. Ще изглежда подобно на това:

канал 1: 728

канал 2: 729 канал 3: 703 канал 4: 726 канал 1: 1681 канал 2: 1639 канал 3: 1613 канал 4: 1676

След като имате по -ясна представа за обхвата, който извежда вашият RX, изберете добри приближения за hi и lo и съответно променете константите. След това качете скицата отново в Arduino.

Стъпка 7: Калибрирайте емулирания джойстик

Свържете устройството към компютъра си и използвайте функцията за калибриране на вашата ОС, за да калибрирате емулирания джойстик. Добър инструмент за Linux е jstest-gtk.

Допълнителни подобрения

  • Напишете блокиращ код (вижте Стъпка 3)
  • Задайте диапазони за канал, не глобално (вижте Стъпка 6)

Допълнителна информация

  • Redcon CM703
  • PPM

Препоръчано: