Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Funga RX na Arduino
- Hatua ya 2: Kupata Ishara kadhaa za PPM
- Hatua ya 3: Kusanidi Mpitishaji
- Hatua ya 4: Kuendesha Joystick
- Hatua ya 5: Kuandika Arduino
Video: Arduino Kulingana (JETI) PPM kwa USB Joystick Converter kwa FSX: 5 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Niliamua kubadili mpitishaji wangu wa JETI DC-16 kutoka Njia 2 kwenda Njia 1, ambayo kimsingi inabadilisha Throttle na Elevator kutoka kushoto kwenda kulia na kinyume chake. Kwa kuwa sikutaka kugonga moja ya mifano yangu kwa sababu ya kuchanganyikiwa kwa kushoto / kulia kwenye ubongo wangu, nilikuwa najiuliza ikiwa inawezekana kufanya mazoezi kidogo katika FSX.
Nilisoma na kujaribu watumaji wa JETI kweli wanaunga mkono hali ya Joystick nje ya sanduku, hata hivyo nilitaka kubadilika kamili kwa shoka na kazi za swichi na kutumia TX kama mfano halisi. Kwa kutumia pato la mpokeaji, inawezekana pia kuongeza usindikaji wa ishara katika DC-16 na utumie mixers, awamu za kukimbia, viwango viwili, chochote unachoweza kupanga hapo.
Hivi karibuni nimepata mafunzo mazuri ya jinsi ya kutengeneza kifaa cha kuingiza cha USB HID, ambacho ni Joystick, kutoka kwa Arduino ya bei rahisi kama Pro Micro:
www.instructables.com/id/Create-a-Joystick …….
Hii ingewezesha kila kitu kinachohitajika kudhibiti ndege / helikopta / chochote katika FSX! Shoka na vifungo vingi vinapatikana.
Kwa kuwa nilikuwa na vipuri tu vya JETI RSAT2, niliamua kuifungia waya na Arduino na kujaribu kutekeleza kichunguzi kidogo cha PPM pamoja na maktaba ya Joystick.
Nadhani mtu yeyote anayefuata hatua hizi anajua kuunganisha na kupanga programu ya Arduino. Sitachukua dhamana yoyote ya malfunctions au uharibifu!
Vifaa
Utahitaji…
- Arduino yoyote inayoungwa mkono na maktaba ya Joystick, nilitumia Sparkfun Pro Micro 5V / 16 MHz
- toleo la hivi karibuni la IDE ya Arduino
- mpokeaji yeyote wa RC akitoa ishara ya PPM, kama JETI RSAT2
- waya chache za kuruka (dak. 3)
- maktaba ya Joystick imewekwa katika Arduino IDE
- maktaba ya arduino-timer:
Hatua ya 1: Funga RX na Arduino
Wiring ni sawa sana. Niliamua kumpa nguvu Arduino kutoka USB, kwani itaiga kifaa cha Joystick. Hii itasambaza Arduino na 5V, ambayo inaweza kutumika pia kuwezesha mpokeaji wa RC.
Nilitumia Pin VCC, ambayo hutoa pato lililodhibitiwa, na pini ya karibu ya Gnd - inganisha tu kwa kiunganishi cha PPM + na - pini. Wakati Arduino inapata nguvu, mpokeaji sasa anajiinua, pia.
Kwa ishara ya PPM, niliamua kutumia vipingamizi ili kuzichanganua. Usumbufu unapatikana k.m. kwenye Pin 3, kwa hivyo unganisha tu hapo - hakuna "pin ya asili ya RC" kwenye arduino, lakini labda njia zaidi na tofauti za kusoma kwenye ishara ya mpokeaji.
Ilinibidi kuzima kengele ya voltage ya RX, kwani voltage ya VCC na usambazaji wa USB itakuwa karibu 4.5V tu - lakini ni thabiti kabisa, kwa hivyo hakuna shida kabisa.
Hatua ya 2: Kupata Ishara kadhaa za PPM
Wakati mpokeaji na TX inatumiwa, nilikuwa nikipata ishara za PPM kama inavyoonyeshwa kwenye picha. Njia 16, zilizorudiwa milele. Ikiwa Failsafe kwenye RSAT imezimwa na mtumaji amezimwa, pato la PPM litazimwa.
Habari zaidi juu ya PPM inapatikana hapa:
- https://en.wikipedia.org/wiki/Pulse-position_modul…
- https://wiki.rc-network.de/index.php/PPM
Kwa kuwa sizii vitu halisi katika kesi hii, sikujali nyakati za nadharia na nikagundua tu kwenye oscilloscope kile mpokeaji wangu alikuwa akitoa kiatomati wakati wa kusonga vijiti kutoka kushoto kabisa kwenda kulia kabisa (mipangilio ya kawaida katika TX). Ilionekana -100% inalingana na kunde zilizo na urefu wa 600µs, na + 100% hadi 1600µs. Sikujali pia urefu wa mapumziko ya pause (400µs) katika nambari yangu ya Arduino, lakini nilifikiri nafasi ya fremu ya min. 3000µs.
Hatua ya 3: Kusanidi Mpitishaji
Kwa kuwa tu nafasi halisi ya nyuso za kudhibiti inahitaji kujulikana, kituo / "servo" moja kwa kila kazi ya RC inatosha. Kwa hivyo, usanidi rahisi wa kusambaza unaweza kufanywa - sawa na mfano wa kawaida wa RC. Kazi kuu aileron, lifti, usukani na kaba kila moja inahitaji servo moja tu kwa mtiririko huo wa kupitisha kituo. Pia niliongeza flaps, breki na gia, na kuacha vituo 9 bure hadi sasa. Tafadhali kumbuka kuwa Flaps ziliwekwa kwenye ndege, na hazidhibitwi moja kwa moja kupitia fimbo, kitelezi au kitufe.
Hatua ya 4: Kuendesha Joystick
Maktaba ya Joystick ni rahisi kutumia, na hutoa mifano na vipimo. Inapaswa kusaidia kuangalia kwanza ikiwa Arduino hugunduliwa kama Joystick inayofaa, maagizo yaliyounganishwa katika sehemu ya kuingia na maktaba yenyewe hutoa mwongozo mzuri.
Katika jopo la kudhibiti Vifaa na Printers, Arduino ilikuwa ikionekana kama "Sparkfun Pro Micro", na dirisha la jaribio la furaha lilikuwa likionyesha shoka 7 na vifungo vingi vilivyoungwa mkono. Hata swichi ya kofia inaweza kutumika wakati imewekwa katika Arduino.
Hatua ya 5: Kuandika Arduino
Kinachokosekana bado ni utaftaji halisi wa ishara ya PPM na mgawo wa shoka na vifungo vya Joystick. Niliamua kwa ramani ifuatayo:
Kituo / Kazi / Mgawo wa Joystick:
- Kaba -> mhimili wa kukaba
- Aileron -> X mhimili
- Elevator -> Y mhimili
- Rudder -> X mhimili wa mzunguko
- Vipande -> Y mhimili wa mzunguko
- Akaumega -> Z mhimili
- Gia -> Kitufe 0
Wakati gia iko chini, kitufe cha kwanza cha Joystick kitasisitizwa na kitatolewa wakati wa kuinua gia. Walakini, hii itahitaji FSUIPC kwa FSX, nje ya sanduku, FSX itakubali kitufe tu cha kugeuza gia, ambayo sio haswa inayotokea na modeli zangu.
Nilitoa toleo langu la sasa la nambari na maoni mengi, ambayo yanafanya kazi vizuri kwangu - jisikie huru kubadilisha mgawo wako au kuongeza kazi mpya. Njia 9 za mwisho za RC hazitumiki kwa sasa.
Kwa usanidi, darasa la Joystick linahitaji kuanza, kimsingi kwa kufafanua safu za nambari za nambari:
/ * Weka safu ya shoka (imeainishwa kwa kichwa, 0 - 1000) * /
Joystick.setXAxisRange (CHANNEL_MIN, CHANNEL_MAX); Joystick.setYAxisRange (CHANNEL_MIN, CHANNEL_MAX); …
Kwa kutumia maadili kutoka 0 hadi 1000, inawezekana kuchora moja kwa moja urefu wa kunde (600 - 1600µs) kwa maadili ya faraja bila kuokoa.
DIN 3 imeanzishwa kama pembejeo ya dijiti, pullups imewezeshwa, na usumbufu umeambatanishwa:
pinMode (PPM_PIN, INPUT_PULLUP);
ambatishaKukatiza (digitalPinToInterrupt (PPM_PIN), PPM_Pin_Changed, CHANGE);
Kwa madhumuni ya utatuzi, niliongeza uchapishaji kupitia kiwambo cha serial katika vipindi vya kawaida, kwa kutumia maktaba ya timiri ya arduino:
ikiwa (SERIAL_PRINT_INTERVAL> 0) {
mpangilio kila (SERIAL_PRINT_INTERVAL, (batili *) -> bool {SerialPrintChannel (); rudi kweli;}); }
Usumbufu wa pini utaitwa wakati wowote thamani ya siri ya pini imebadilika, kwa hivyo kwa kila makali kwenye ishara ya PPM. Tathmini urefu wa kunde tu kwa kutumia muda rahisi kutumia micros ():
uint32_t curTime = micros ();
pigo la uint32_tLength = curTime - edgeTime; uint8_t curState = kusoma kwa dijiti (PPM_PIN);
Kwa kutathmini hali ya pini ya sasa na kuichanganya na urefu wa kunde na kunde zilizopita, kunde mpya zinaweza kuainishwa. Kufuatia masharti kutaona pengo la mwingiliano:
ikiwa (mwishoState == 0 && pulseLength> 3000 && pulseLength <6000)
Kwa kunde zinazofuata, urefu wa kunde utatengenezwa kwa hali ya mhimili kwa kukatwa na kupendelea urefu wa kunde ili kufanana na safu ya mhimili wa furaha:
uint16_t rxLength = urefu wa mapigo;
rxLength = (rxLength> 1600)? 1600: urefu wa rx; rxLength = (rxLength <600)? 600: urefu wa rx; rxChannel [curChannel] = urefu wa rx - 600;
Safu ya rxChannel mwishowe ina maadili 16 kutoka 0 - 1000, ikionyesha fimbo / kitelezi na nafasi za vifungo.
Baada ya kupokea njia 16, ramani ya Joystick inafanywa:
/ * shoka * /
Joystick.setThrottle (njia [0]); Joystick.setXAxis (vituo [1]); Joystick.setYAxis (1000 - vituo [2]); Joystick.setRxAxis (vituo [3]); Joystick.setRyAxis (vituo [4]); Joystick.setZAxis (1000 - vituo [5]); / * vifungo * / Joystick.setButton (0, (vituo [6] <500? 1: 0)); / * sasisha data kupitia USB * / Joystick.sendState ();
Nilipindua shoka kadhaa kwenye nambari, ambayo sio lazima kabisa, kwani mhimili unaweza pia kugeuzwa kwa kugeuza mwelekeo wa servo au mgawo katika FSX. Walakini, niliamua kuweka mwelekeo wa servo na pia mgawo wa asili wa FSX.
Kitufe kimewashwa au kuzimwa na kizuizi cha kituo cha 7.
Na usisahau kupeana kipanya ratiba… vinginevyo, hakuna chapa za utatuzi zitaonekana.
kitanzi batili () {
kipanya ratiba (); }
Katika picha ya skrini niliyoambatanisha unaweza kuona, kituo cha 1 kilihamishwa kutoka 1000 (kaba kamili) hadi 0 (bila kazi).
FSX itagundua Arduino kama Joystick nyingine yoyote, kwa hivyo toa tu kitufe na shoka na ufurahi kuchukua!
Kile ninachopenda sana juu ya njia hii ni, unaweza kutumia tu transmitter yako kama na mfano halisi, n.k. kutumia awamu za kukimbia nk.
Ilipendekeza:
Kubadilisha Kiotomatiki kwa Shelly EM Kulingana na Uzalishaji wa Paneli za jua: Hatua 6
Kubadilisha Auto Auto EM kulingana na Uzalishaji wa Paneli za jua: P1: matumizi ya nyumba (km " P1 = 1kW " ⇒ tunatumia 1kW) P2: uzalishaji wa paneli za jua (kwa mfano " P2 = - 4kW " hita hutumia 2kW wakati imewashwa.Tunataka kuiwasha ikiwa bidhaa ya jopo la jua
Raspberry Pi Kulingana na Kugusa Bure Moja kwa Moja Mfumo wa Kuosha mikono kwa Covid-19: 4 Hatua
Raspberry Pi Kulingana na Kugusa Bure Moja kwa Moja Mfumo wa Kuosha mikono kwa Covid-19: Ni mfumo rahisi wa kunawa mikono kwa kutumia sensorer za pir na bodi ya Raspberry pi. Maombi haya yameundwa kwa madhumuni ya usafi. Mfano unaweza kuwekwa katika maeneo ya umma, hospitali, maduka makubwa nk
Moja kwa moja Arduino Kulingana IR Kijijini Udhibiti Joto inaendeshwa: 7 Hatua
Joto Moja kwa Moja la Arduino Kulingana na Kijijini Udhibiti wa Joto: Hei, kuna nini, Jamani! Akarsh hapa kutoka CETech Umechoka kuamka katikati ya usingizi wa sauti kwa sababu tu joto la chumba chako ni la chini sana au la juu sana kwa sababu ya AC yako Bubu. Basi mradi huu ni kwa ajili yako.Katika mradi huu, tutafanya yetu
Jinsi ya Kupokea Takwimu kutoka kwa Microcontroller ya STM32 kulingana na PC: Hatua 5
Jinsi ya Kupokea Takwimu kutoka kwa Microcontroller ya STM32 kulingana na PC: Hapa katika mafunzo haya tumepitisha data kutoka kwa microcontroller kwenda kwa PC kutumia moja ya UART ya STM32l100 mcu
PWM Inasimamiwa Shabiki Kulingana na Joto la CPU kwa Raspberry Pi: Hatua 4 (na Picha)
PWM Inasimamiwa Shabiki Kulingana na Joto la CPU kwa Raspberry Pi: Kesi nyingi za Raspberry Pi huja na shabiki mdogo wa 5V ili kusaidia kupoza CPU. Walakini, mashabiki hawa kawaida huwa na kelele nzuri na watu wengi huziba kwenye pini ya 3V3 ili kupunguza kelele. Mashabiki hawa kawaida hupimwa kwa 200mA ambayo ni nzuri h