Мазмуну:

USB көпүрөсүнө R/C: 7 кадам
USB көпүрөсүнө R/C: 7 кадам

Video: USB көпүрөсүнө R/C: 7 кадам

Video: USB көпүрөсүнө R/C: 7 кадам
Video: (SUB) [Couple Daily & Travel] VLOG о поездке пары в Чечхон 2024, Ноябрь
Anonim
USB көпүрөсүнө R/C
USB көпүрөсүнө R/C

PPM сигналдарын радио кабылдагычтан джойстик позициясына айландырат

Аны R/C радио өткөргүчүңүз менен сүйүктүү оюндарды жана учуу тренажерлерин ойноо үчүн колдонуңуз. Бул Instructable бул конверсияны жасоо үчүн кичине биттерден Arduino жана DSMX ресиверин жана жөнөкөй коддун үзүндүсүн колдонот.

Сага керек болот

  • Күч
  • Arduino
  • USB кабелдери
  • пин баштары
  • секирүүчү зым
  • PPM чыгышы бар радио кабылдагыч.

1 -кадам: Ардуинонун кошумча I/O портторуна Solder Pin Headers

Solder Pin Ардуинонун кошумча I/O портторунун башчылары
Solder Pin Ардуинонун кошумча I/O портторунун башчылары

Ресиверди (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 микроконтроллери Ардуино Леонардо болгондуктан, барганыңыз дурус.

3 -кадам: Кодду Arduinoго жаркылдатыңыз

#include #define inputPin 16#каналдарды аныктоо 4 #define lo 800 // RX чыгуусуна тууралоо#аныктоо hi 1600 // RX чыгуусуна тууралоо#филтрди аныктоо 10int канал [каналдар]; int previousValue [каналдар]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, false, false, 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 <= channels-1; i ++) {channel = pulseIn (inputPin, HIGH); } үчүн (int i = 0; i <= каналдар-1; i ++) {эгер ((канал > 2000) || (канал <500)) {канал = мурункуValue ; } else {channel = (previousValue +channel )/2; counter ++; }} Joystick.setXAxis (канал [0]); Joystick.setYAxis (канал [1]); Joystick.setThrottle (канал [2]); Joystick.setRudder (канал [3]); } if (counter> filter) {for (int i = 0; i <= channels-1; i ++) {Serial.print ("channel"); Serial.print (i+1); Serial.print (":"); Serial.println (канал ); previousValue = канал ; } counter = 0; }}

Сураныч, R/C сигналы менен эмуляцияланган USB HIDдин ортосунда көпүрө болгон код эң жөнөкөй түрдө келгенин унутпаңыз. Бул жерде колдонулган функция - pulseIn - бөгөө функциясы. Бул жерде жана үзгүлтүктөрдү колдонуу менен блокировкасыз ыкманы кантип ишке ашыруу керектигин окуңуз.

4 -кадам: Зымдарды өткөрүңүз

Кабелдерди жасаңыз
Кабелдерди жасаңыз
Кабелдерди жасаңыз
Кабелдерди жасаңыз

Бит менен RXтин ортосуна секирүүчү зым / DuPont кабелин туташтырыңыз. Бул кабелдердин аягындагы бириктиргичтер аял болушу керек. Биз GND (көк), VCC (күрөң) жана сигналды (кызгылт сары) RXтин PPM портунан Arduinoдогу GND, VCC жана d16га туташтырабыз.

5 -кадам: Алуучуну байлаңыз

Ардуинону бийликтен ажыратыңыз. RXте BIND деп белгиленген туташтыргычтын ордуна байлоочу байламтаны коюңуз. Радио өткөргүчтү күйгүзүп, байлоо режимине которуңуз. Кийинки күчтү Arduinoго колдонуңуз. Кабыл алуу LED жарыгы күйгүзүлгөндө ийгиликтүү болгон.

6 -кадам: Кодексти шарттарыңызга тууралаңыз

Arduino эскизиндеги hi жана lo константалары сиз колдонгон ресивердин чыныгы өндүрүшүн чагылдыруу үчүн өзгөртүлүшү керек.

#аныктоо мына 800

#Салам 1600

PPM импульсунун ичиндеги сигналдар идеалдуу түрдө 1000μsден 2000μsке чейин. Бул Instructable жыйынтыктарында колдонулган RX болжол менен 800 менен 1600 ортосунда баалуулуктарга ээ жана ар бир каналда бир аз айырмаланат. Сиздин кабылдагычыңыздын кайсы диапазону бар экенин билүү үчүн, 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

Сунушталууда: