Բովանդակություն:

R/C դեպի USB Bridge: 7 քայլ
R/C դեպի USB Bridge: 7 քայլ

Video: R/C դեպի USB Bridge: 7 քայլ

Video: R/C դեպի USB Bridge: 7 քայլ
Video: HBO 4, ախտորոշում և ինքնուրույն ճշգրտում 2024, Նոյեմբեր
Anonim
R/C դեպի USB կամուրջ
R/C դեպի USB կամուրջ

Ռադիոընդունիչից PPM ազդանշանները փոխակերպում է ջոյսթիկի դիրքերի

Օգտագործեք այն ձեր սիրած խաղերն ու թռիչքների սիմուլյատորները ձեր R/C ռադիոհաղորդիչի հետ խաղալու համար: Այս հրահանգը օգտագործում է Arduino- ն LittleBits- ից և DSMX ընդունիչից, ինչպես նաև կոդի պարզ հատված `այս փոխակերպումը կատարելու համար:

Ձեզ պետք կգա

  • Ուժ
  • Արդուինո
  • USB մալուխներ
  • կապի վերնագրեր
  • jumper մետաղալար
  • PPM թողարկում ունեցող ռադիոընդունիչ:

Քայլ 1. Sոդեք վերնագրերը Arduino- ի լրացուցիչ I/O նավահանգիստներին

Oldոդում տեղադրեք վերնագրեր Arduino- ի լրացուցիչ I/O նավահանգիստներին
Oldոդում տեղադրեք վերնագրեր Arduino- ի լրացուցիչ I/O նավահանգիստներին

Ստացողը (RX) սնուցելու համար Arduino- ին անհրաժեշտ է ավելացնել պին վերնագրեր: Սա նաև շատ ավելի հեշտ կդարձնի Bit- ի և RX- ի միջև լարերի փոխադրումը: Լրացուցիչ տեղեկությունների համար տե՛ս

Քայլ 2. Ավելացրեք Arduino Joystick գրադարանը ձեր IDE- ին

Ավելացրեք Arduino Joystick գրադարանը ձեր IDE- ին
Ավելացրեք Arduino Joystick գրադարանը ձեր IDE- ին

Գրադարանը կարող եք գտնել GitHub- ում ՝ https://github.com/MHeironimus/ArduinoJoystickLib… Շնորհակալություն, Մեթյու Հեյրոնիմուս, այն գրելու համար:

Միայն որոշ Արդուինոսներ կարող են ընդօրինակել HID- ը `որպես ջոյսթիկի: Քանի որ littleBits միկրոկոնտրոլերը սրտով Արդուինո Լեոնարդո է, դու լավ ես գնում:

Քայլ 3. Լրացրեք կոդը Arduino- ի վրա

#ներառել#սահմանել մուտքագրում Pin 16#սահմանել ալիքներ 4#սահմանել lo 800 // հարմարեցնել ելքի RX#սահմանել hi 1600 // հարմարեցնել RX ելքին#սահմանել զտիչ 10int ալիք [ալիքներ]; int previousValue [ալիքներ]; int հաշվիչ = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, ճշմարիտ, ճշմարիտ, կեղծ, կեղծ, կեղծ, կեղծ, ճշմարիտ, ճշմարիտ, կեղծ, կեղծ, կեղծ); void setup () {Joystick.setXA Ողջու՜յն); 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 <= channel-1; i ++) {channel = pulseIn (inputPin, HIGH); } (int i = 0; i <= ալիքներ-1; i ++) {if ((channel > 2000) || (channel <500)) {channel = previousValue ; } else {channel = (previousValue +channel )/2; հաշվիչ ++; }} Joystick.setXAxis (ալիք [0]); Joystick.setYAxis (ալիք [1]); Joystick.setThrottle (ալիք [2]); Joystick.setRudder (ալիք [3]); } if (counter> filter) {for (int i = 0; i <= channel-1; i ++) {Serial.print ("channel"); Serial.print (i+1); Serial.print (":"); Serial.println (ալիք ); previousValue = ալիք ; } հաշվիչ = 0; }}

Խնդրում ենք տեղյակ լինել, որ ծածկագիրը, որը կամրջում է R/C ազդանշանի և ընդօրինակված USB HID- ի միջև, գալիս է իր ամենապարզ ձևով: Այստեղ օգտագործվող գործառույթը `pulseIn- ը արգելափակման գործառույթ է: Կարդացեք այստեղ և այստեղ, թե ինչպես կարելի է իրականացնել ընդհատումների միջոցով չարգելափակող մոտեցում:

Քայլ 4: Կատարեք լարերի միացում

Կատարեք լարերը
Կատարեք լարերը
Կատարեք լարերը
Կատարեք լարերը

Միացրեք jumper մետաղալարեր / DuPont մալուխներ Bit- ի և RX- ի միջև: Այս մալուխների վերջում միակցիչները պետք է լինեն իգական: Մենք կապում ենք GND (կապույտ), VCC (շագանակագույն) և ազդանշան (նարնջագույն) RX- ի PPM նավահանգստից մինչև Arndino- ի GND, VCC և d16:

Քայլ 5: Կապեք ստացողի հետ

Անջատեք Arduino- ն հոսանքից: Տեղադրեք ամրացնող զրահը RX- ի վրա BIND նշված միակցիչի վայրում: Միացրեք ձեր ռադիոհաղորդիչը և միացրեք այն միացման ռեժիմին: Հաջորդը ուժը կիրառեք Arduino- ի վրա: Միացման գործընթացը հաջող էր, երբ ստացողի LED- ն միանում էր:

Քայլ 6: Կոդը հարմարեցրեք ձեր հանգամանքներին

Arduino էսքիզի hi և lo հաստատունները պետք է փոփոխվեն `արտացոլելու համար օգտագործվող ընդունիչի իրական ելքը:

#սահմանի 800

#սահմանիր բարև 1600

PPM զարկերակի ներսում գտնվող ազդանշանները իդեալականորեն տատանվում են 1000μs- ից մինչև 2000μs: Այս Instructable ելքերի մեջ օգտագործվող RX- ը մոտավորապես կազմում է 800 -ից 1600 -ի սահմաններում և մի փոքր տարբերվում է յուրաքանչյուր ալիքում: Պարզելու համար, թե որ տիրույթն ունի ձեր ընդունիչը, բացեք Arduino IDE- ի Serial Monitor- ը `ձեր RX- ի ելքը տեսնելու համար: Նման տեսք կունենա.

ալիք 1: 728

ալիք 2: 729 ալիք 3: 703 ալիք 4: 726 ալիք 1: 1681 ալիք 2: 1639 ալիք 3: 1613 ալիք 4: 1676

Երբ ավելի հստակ պատկերացում ունենաք այն տիրույթի մասին, որը թողարկում է ձեր RX- ը, hi և lo- ի համար ընտրեք լավ մոտավորություններ և համապատասխանաբար փոփոխեք հաստատունները: Հետո էսքիզը նորից վերբեռնեք Arduino- ում:

Քայլ 7: Կալիբրացնել Emulated Joystick- ը

Միացրեք սարքը ձեր համակարգչին և օգտագործեք ձեր ՕՀ -ի ստուգաչափման գործառույթը `նմանակված ջիստիկը չափաբերելու համար: Linux- ի համար լավ գործիք է jstest-gtk:

Լրացուցիչ բարելավումներ

  • Գրեք չարգելափակող ծածկագիր (տես Քայլ 3)
  • Սահմանեք միջակայքերը մեկ ալիքի համար, ոչ գլոբալ (տես Քայլ 6)

Լրացուցիչ ընթերցում

  • Redcon CM703
  • PPM

Խորհուրդ ենք տալիս: