Turinys:

R/C į USB tiltą: 7 žingsniai
R/C į USB tiltą: 7 žingsniai

Video: R/C į USB tiltą: 7 žingsniai

Video: R/C į USB tiltą: 7 žingsniai
Video: Жесткий диск на твою Sony A74 A7Siii и FX3 2024, Lapkritis
Anonim
R/C į USB tiltą
R/C į USB tiltą

Konvertuoja PPM signalus iš radijo imtuvo į vairasvirtės padėtį

Naudokite jį norėdami žaisti mėgstamus žaidimus ir skrydžio simuliatorius su savo R/C radijo siųstuvu. Ši instrukcija naudoja „Arduino“iš „LittleBits“ir DSMX imtuvą bei paprastą kodo fragmentą, kad atliktų šią konversiją.

Jums reikės

  • Galia
  • Arduino
  • USB kabeliai
  • kaiščių antraštės
  • trumpiklis
  • radijo imtuvas su PPM išvestimi.

1 žingsnis: litavimo kaiščių antraštės prie papildomų „Arduino“įvesties/išvesties prievadų

Lituoklių kaiščių antraštės prie papildomų „Arduino“įvesties/išvesties prievadų
Lituoklių kaiščių antraštės prie papildomų „Arduino“įvesties/išvesties prievadų

Norint įjungti maitinimą imtuvu (RX), prie „Arduino“reikia pridėti kaiščių antraštes. Tai taip pat labai palengvins laidų sujungimą tarp „Bit“ir RX. Daugiau informacijos rasite

2 veiksmas: pridėkite „Arduino“vairasvirtės biblioteką prie savo IDE

Pridėkite „Arduino“vairasvirtės biblioteką prie savo IDE
Pridėkite „Arduino“vairasvirtės biblioteką prie savo IDE

Biblioteką rasite „GitHub“, https://github.com/MHeironimus/ArduinoJoystickLib… Ačiū, Matthew Heironimus, kad parašėte.

Tik tam tikri „Arduinos“gali imituoti HID kaip vairasvirtę. Kadangi „LittleBits“mikrovaldiklis yra „Arduino Leonardo“širdyje, jums gera eiti.

3 veiksmas: perkelkite kodą į „Arduino“

#include #define inputPin 16#define channels 4 #define lo 800 // sureguliuoti pagal RX išvestį#define hi 1600 // prisitaikyti prie RX išvesties#apibrėžti filtrą 10int kanalas [kanalai]; int previousValue [kanalai]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, false, true, true, false, false, false); void setup () {Joystick.setXAxisRange (lo, sveiki); Joystick.setYAxisRange (štai, sveiki); Joystick.setThrottleRange (štai, sveiki); Joystick.setRudderRange (štai, labas); Vairasvirtė.pradėti (); 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); } for (int i = 0; i <= kanalai-1; i ++) {if ((kanalas > 2000) || (kanalas <500)) {kanalas = ankstesnisVertė ; } else {channel = (previousValue +kanalas )/2; skaitiklis ++; }} Joystick.setXAxis (kanalas [0]); Joystick.setYAxis (kanalas [1]); Joystick.setThrottle (kanalas [2]); Joystick.setRudder (kanalas [3]); } if (skaitiklis> filtras) {for (int i = 0; i <= channels-1; i ++) {Serial.print ("channel"); Serijinis atspaudas (i+1); Serial.print (":"); Serial.println (kanalas ); previousValue = kanalas ; } skaitiklis = 0; }}

Atminkite, kad kodas, jungiantis R/C signalą su emuliuotu USB HID, yra paprasčiausios formos. Čia naudojama funkcija - pulseIn - yra blokavimo funkcija. Skaitykite čia ir čia, kaip įgyvendinti neužblokuojantį metodą naudojant pertraukas.

4 žingsnis: atlikite laidus

Atlikite laidus
Atlikite laidus
Atlikite laidus
Atlikite laidus

Prijunkite jungiamąjį laidą / „DuPont“kabelius tarp „Bit“ir RX. Šių kabelių gale esančios jungtys turi būti moteriškos. Mes prijungiame GND (mėlyna), VCC (ruda) ir signalą (oranžinė) iš RX PPM prievado prie GND, VCC ir d16 „Arduino“.

5 žingsnis: suriškite imtuvą

Atjunkite „Arduino“nuo maitinimo šaltinio. Įdėkite įrišimo diržus į jungties vietą, pažymėtą BIND ant RX. Įjunkite radijo siųstuvą ir įjunkite įrišimo režimą. Tada įjunkite maitinimą „Arduino“. Įrišimo procesas buvo sėkmingas, kai imtuve užsidega šviesos diodas.

6 veiksmas: sureguliuokite kodą pagal savo aplinkybes

Arduino eskizo konstantos hi ir lo turi būti pakeistos, kad atspindėtų faktinį jūsų naudojamo imtuvo išėjimą.

#define 800

#define labas 1600

Signalai PPM impulso viduje idealiai svyruoja nuo 1000μs iki 2000μs. Šiame instrukciniame išvestyje naudojamas RX reikšmės yra maždaug nuo 800 iki 1600 ir yra šiek tiek skirtingos kiekviename kanale. Norėdami sužinoti, koks yra jūsų imtuvo diapazonas, atidarykite „Arduino IDE“serijos monitorių, kad pamatytumėte savo RX išvestį. Tai atrodys panašiai:

1 kanalas: 728

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

Kai turėsite aiškesnį supratimą apie diapazoną, kurį išleidžia jūsų RX, pasirinkite gerą apytikslį hi ir lo ir atitinkamai pakeiskite konstantas. Tada vėl įkelkite eskizą į „Arduino“.

7 žingsnis: kalibruokite emuliuotą vairasvirtę

Prijunkite įrenginį prie kompiuterio ir kalibruokite emuliuotą vairasvirtę naudodami savo OS kalibravimo funkciją. Geras „Linux“įrankis yra „jstest-gtk“.

Tolesni patobulinimai

  • Parašykite neužblokuojantį kodą (žr. 3 veiksmą)
  • Nustatykite kanalo diapazonus, o ne visame pasaulyje (žr. 6 veiksmą)

Papildoma literatūra

  • „Redcon CM703“
  • PPM

Rekomenduojamas: