Turinys:
- 1 žingsnis: litavimo kaiščių antraštės prie papildomų „Arduino“įvesties/išvesties prievadų
- 2 veiksmas: pridėkite „Arduino“vairasvirtės biblioteką prie savo IDE
- 3 veiksmas: perkelkite kodą į „Arduino“
- 4 žingsnis: atlikite laidus
- 5 žingsnis: suriškite imtuvą
- 6 veiksmas: sureguliuokite kodą pagal savo aplinkybes
- 7 žingsnis: kalibruokite emuliuotą vairasvirtę
Video: R/C į USB tiltą: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
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ų
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
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
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:
Sukurkite interaktyvų „Rainbow“tiltą naudodami „Minecraft Raspberry Pi Edition“: 11 žingsnių
Sukurkite interaktyvų tiltą „Rainbow“naudodami „Minecraft Raspberry Pi Edition“: vakar pamačiau savo 8 metų sūnėną, žaidžiantį „Minecraft“su „Raspberry Pi“, kurį jam daviau anksčiau, tada supratau, kad naudojant kodą, sukurtas pritaikytas ir įdomus „Minecraft“. pi LED blokų projektas. „Minecraft Pi“yra puikus būdas pradėti
Kaip padaryti USB atmintinę naudojant trintuką - „Pasidaryk pats“USB disko dėklas: 4 žingsniai
Kaip padaryti USB atmintinę naudojant trintuką | „Pasidaryk pats“USB įrenginio dėklas: šis tinklaraštis yra apie tai, „Kaip padaryti USB atmintinę naudojant trintuką | „Pasidaryk pats“USB įrenginio dėklas " Tikiuosi jums patiks
Kaip padaryti H tiltą: 15 žingsnių
Kaip padaryti H tiltą: H tiltas yra grandinės tipas, kurį galite naudoti, kad grįžtamasis nuolatinės srovės variklis suktųsi pagal laikrodžio rodyklę ir prieš laikrodžio rodyklę. Kitaip tariant, ši grandinė leidžia greitai pakeisti variklio kryptį sukimas naudojant jungiklį ar valdiklį c
„Arduino“akselerometro pamoka: valdykite laivo tiltą naudodami servo variklį: 5 žingsniai
„Arduino“akselerometro pamoka: valdykite laivų tiltą naudodami servo variklį: Akselerometro jutikliai dabar yra daugelyje mūsų išmaniųjų telefonų, kad suteiktų jiems platų naudojimo ir galimybių spektrą, kuriuos naudojame kasdien, net nežinodami, kad už tai atsakingas akselerometras. Viena iš šių galimybių yra valdymas
Lengvas 5 minučių USB saulės įkroviklis/išgyvenimo USB įkroviklis: 6 žingsniai (su nuotraukomis)
Lengvas 5 minučių USB saulės įkroviklis/išgyvenimo USB įkroviklis: Sveiki vaikinai! Šiandien aš ką tik padariau (tikriausiai) paprasčiausią USB saulės baterijų įkroviklį! Pirmiausia atsiprašau, kad neįkėliau jums pamokomų dalykų, vaikinai .. Per pastaruosius kelis mėnesius (iš tikrųjų ne keletą, o gal savaitę ar daugiau) turėjau keletą egzaminų. Bet