
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51


Мен JETI DC-16 таратқышты 2 режимнен 1 режимге ауыстыруды шештім, ол негізінен Дроссель мен Лифтті солдан оңға және керісінше ауыстырады. Миымның сол/оң жақтағы шатасуына байланысты мен модельдердің бірін бұзғым келмеді, сондықтан FSX -те аздап жаттығуға бола ма деп ойладым.
Мен JETI таратқыштарын Joystick режимін қораптан тыс қолдайтынын оқыдым және сынап көрдім, бірақ мен осьтер мен коммутаторлардың тапсырмаларына толық икемділікті және TX -ты нақты модельдегідей қолдануды қалаймын. Қабылдағыштың шығуын қолдана отырып, сонымен қатар DC-16 сигналын өңдеуге және араластырғыштарды, ұшу фазаларын, қосарланған тарифтерді қолдануға болады.
Жақында мен USB HID енгізу құрылғысын, мысалы Джойстикті Pro Micro сияқты арзан Arduino -дан қалай жасауға болатыны туралы жақсы оқулық таптым:
www.instructables.com/id/Create-a-Joystick…
Бұл FSX -те ұшақты / тікұшақты / кез келген нәрсені басқаруға қажет нәрсенің бәрін қосады! Көптеген осьтер мен түймелер қол жетімді.
Менде тек JETI RSAT2 бос болғандықтан, мен оны Arduino -мен байланыстыруды шештім және Джойстик кітапханасымен бірге шағын PPM талдаушысын енгізуге тырыстым.
Менің ойымша, осы қадамдарды орындаған кез келген адам Arduino -ны қосу мен бағдарламалауды біледі деп ойлаймын. Мен ақаулар мен зақымдарға кепілдік бермеймін!
Жабдықтар
Саған қажет болады…
- Joystick кітапханасы қолдайтын кез келген Arduino, мен Sparkfun Pro Micro 5V / 16 MHz қолдандым
- Arduino IDE соңғы нұсқасы
- PPM сигналын шығаратын кез келген RC қабылдағышы, JETI RSAT2 сияқты
- бірнеше секіргіш сымдар (мин. 3)
- Arduino IDE -де орнатылған Джойстик кітапханасы
- arduino-таймер кітапханасы:
1 -қадам: RX пен Arduino байланыстырыңыз


Сымдар өте қарапайым. Мен Arduino -ны USB -ден ғана қуаттаймын деп шештім, себебі ол джойстикке ұқсайды. Бұл Arduino -ны 5В -пен қамтамасыз етеді, оны RC қабылдағышты қуаттандыру үшін де пайдалануға болады.
Мен реттелетін шығуды қамтамасыз ететін Pin VCC және ең жақын Gnd түйреуішін қолдандым - оны PPM коннекторының + және - түйреуіштеріне қосыңыз. Arduino қосылған кезде ресивер де қосылады.
PPM сигналы үшін мен оларды ажырату үшін үзулерді қолдануды шештім. Үзілістер бар, мысалы. Pin 3 -те, оны тек осында жалғаңыз - arduino -да «жергілікті RC -түйреуіш» жоқ, бірақ қабылдағыш сигналында оқудың әр түрлі әдістері болуы мүмкін.
Мен RX кернеу дабылын өшіруге тура келді, өйткені USB қуатымен кернеу тек 4,5 В шамасында болады, бірақ өте тұрақты, сондықтан ешқандай проблема жоқ.
2 -қадам: PPM сигналдарын алу


Қабылдағыш пен TX қосылған кезде мен суретте көрсетілгендей PPM сигналдарын алдым. Мәңгілік қайталанатын 16 арна. Егер RSAT бойынша Failsafe өшірілген болса және таратқыш өшірілсе, PPM шығысы ажыратылады.
PPM туралы қосымша ақпаратты мына жерден алуға болады:
- https://kk.wikipedia.org/wiki/Pulse-position_modul…
- https://wiki.rc-network.de/index.php/PPM
Мен бұл жағдайда нақты заттармен ұшпайтындықтан, мен теориялық уақытқа мән бермедім және таяқтарды толық солдан оңға қарай жылжытқанда, менің қабылдағышым нені қатты шығаратынын осциллографта білдім (TX стандартты параметрлері). -100% ұзындығы 600 микс, ал +100% -дан 1600 микс дейінгі импульстарға сәйкес келеді. Мен сондай -ақ Arduino кодымда үзіліс импульсінің ұзақтығына мән бермедім (400μs), бірақ мен кадр аралығын мин. 3000 мкс.
3 -қадам: таратқышты конфигурациялау



Басқару беттерінің нақты орнын білу қажет болғандықтан, RC функциясына бір арна / «серво» жеткілікті. Демек, таратқыштың қарапайым қондырғысын жасауға болады - бұл қалыпты RC моделіне ұқсас. Эйлерон, лифт, руль және дроссельдің негізгі функциялары әрқайсысы сәйкесінше бір серво таратқыш арнаны қажет етеді. Мен сонымен қатар қақпақтарды, тежегіштерді және редукторларды қостым, әзірге 9 арнаны бос қалдырдым. Назар аударыңыз, ілмектер ұшу фазасына қойылды және олар таяқша, сырғытпа немесе түйме арқылы тікелей басқарылмайды.
4 -қадам: Джойстикті іске қосыңыз


Джойстик кітапханасы өте қарапайым және бірнеше мысалдар мен тесттерді ұсынады. Алдымен Arduino сәйкес джойстик ретінде табылғанын, кіріс бөліміндегі сілтемелер мен кітапхананың өзі жақсы нұсқаулық беретінін тексеру пайдалы болуы керек.
Құрылғылар мен принтерлердің басқару тақтасында Arduino «Sparkfun Pro Micro» болып көрінді, ал джойстиктің сынақ терезесінде 7 ось пен қолдау көрсетілетін түймелер көп болды. Ардуинода бағдарламаланған кезде тіпті қалпақ қосқышты қолдануға болады.
5 -қадам: Arduino кодтау


Әлі де жетіспейтін нәрсе - PPM сигналының нақты талдауы және Джойстик осьтері мен түймелеріне тағайындау. Мен келесі карта жасауды шештім:
Арна / функция / джойстикті тағайындау:
- Дроссель -> Дроссель осі
- Эйлерон -> X осі
- Лифт -> Y осі
- Руль -> X айналу осі
- Қақпақтар -> Y айналу осі
- Тежегіш -> Z осі
- Gear -> 0 түймесі
Беріліс төмен болған кезде джойстиктің бірінші түймесі басылады және берілісті көтергенде босатылады. Алайда, бұл FSX үшін FSUIPC талап етеді, қораптан тыс, FSX беріліс қорабын ауыстыруға арналған түймені қабылдайды, бұл менің модельдерімде болып жатқан жағдай емес.
Мен кодтың қазіргі нұсқасын көптеген түсініктемелермен қамтамасыз еттім, бұл мен үшін өте жақсы жұмыс істейді - тапсырманы өзгертуге немесе жаңа функцияларды қосуға болады. Соңғы 9 RC арнасы қазіргі уақытта қолданылмайды.
Орнату үшін джойстик класы инициализациялануы керек, негізінен сандық ось диапазондарын анықтау арқылы:
/ * Осьтер ауқымын орнатыңыз (тақырыпта анықталған, 0 - 1000) */
Joystick.setXAxisRange (CHANNEL_MIN, CHANNEL_MAX); Joystick.setYAxisRange (CHANNEL_MIN, CHANNEL_MAX); …
0 -ден 1000 -ға дейінгі мәндерді қолдана отырып, импульстің ұзындығын (600 - 1600 мкс) джойстик мәндеріне масштабсыз тікелей салыстыруға болады.
DIN 3 цифрлық кіріс ретінде қосылады, тартулар қосылады және үзіліс қосылады:
pinMode (PPM_PIN, INPUT_PULLUP);
attachInterrupt (digitalPinToInterrupt (PPM_PIN), PPM_Pin_Changed, CHANGE);
Жөндеу мақсатында мен arduino-таймер кітапханасын қолдана отырып, сериялық интерфейс арқылы тұрақты түрде бірнеше басып шығаруды қостым:
егер (SERIAL_PRINT_INTERVAL> 0) {
scheduler.every (SERIAL_PRINT_INTERVAL, (void*) -> bool {SerialPrintChannels (); true қайтару;}); }
Түйреуіштің логикалық мәні өзгерген сайын түйреуіштің үзілуі шақырылады, сондықтан PPM сигналының әр жиегі үшін. Импульстің ұзындығын micros () көмегімен қарапайым уақыт бойынша бағалаңыз:
uint32_t curTime = микросхемалар ();
uint32_t pulseLength = curTime - edgeTime; uint8_t curState = digitalRead (PPM_PIN);
Ағымдағы түйреуіштің күйін бағалау және оны импульстік ұзындықпен және өткен импульстармен біріктіру арқылы жаңа импульстарды жіктеуге болады. Келесі шарттар кадраралық алшақтықты анықтайды:
if (lastState == 0 && pulseLength> 3000 && pulseLength <6000)
Кейінгі импульстер үшін импульстің ұзындығы джойстик осінің диапазонына сәйкес келу үшін импульстің ұзындығын кесу және бұру арқылы ось күйіне салыстырылады:
uint16_t rxLength = импульстік ұзындық;
rxLength = (rxLength> 1600)? 1600: rxLength; rxLength = (rxLength <600)? 600: rxLength; rxChannels [curChannel] = rxLength - 600;
RxChannels массиві ақырында таяқша / жүгірткі мен түйме позицияларын көрсететін 0 - 1000 аралығындағы 16 мәнді қамтиды.
16 арнаны алғаннан кейін джойстикке салыстыру орындалады:
/ * осьтер */
Joystick.setThrottle (арналар [0]); Joystick.setXAxis (арналар [1]); Joystick.setYAxis (1000 - арналар [2]); Joystick.setRxAxis (арналар [3]); Joystick.setRyAxis (арналар [4]); Joystick.setZAxis (1000 - арна [5]); / * түймелері */ Joystick.setButton (0, (арналар [6] <500? 1: 0)); / * деректерді USB арқылы жаңарту */ Joystick.sendState ();
Мен кодта кейбір осьтерді төңкердім, бұл міндетті емес, өйткені осьті серво бағытын немесе FSX -тегі тапсырманы аудару арқылы төңкеруге болады. Дегенмен, мен серво бағыттарын, сондай -ақ FSX -тің түпнұсқасын сақтауға шешім қабылдадым.
Түйме шектік арна 7 арқылы қосылады немесе өшіріледі.
Жоспарлаушыға құсбелгі қоюды ұмытпаңыз, әйтпесе отладтаудың іздері көрінбейді.
void loop () {
scheduler.tick (); }
Мен қосқан скриншотта 1 -канал 1000 -нан (толық дроссель) 0 -ге (жұмыссыз) ауыстырылғанын көруге болады.
FSX кез келген басқа джойстик сияқты Arduino -ны анықтайды, сондықтан түйме мен осьтерді тағайындаңыз және ұшудан көңілді болыңыз!
Маған бұл тәсіл ұнады, сіз таратқышты нақты модель сияқты пайдалана аласыз, мысалы. ұшу кезеңдерін қолдану және т.
Ұсынылған:
ESP8266 Shield негізіндегі Arduino үшін UDP/IP сериялық шлюзі: 8 қадам

ESP8266 Shield негізіндегі Arduino үшін UDP/IP сериялы шлюзі: Мен 2016 жылы «Arduino -ны IP желісіне қосу үшін өзіңіздің Wi -Fi шлюзін қалай жасауға болады» деген нұсқаулық жарияладым. Мен кодты жақсартқаннан кейін мен бұл шешімді қолданамын, дегенмен қазір ESP8266 қалқандары бар
3.3V құрылғылары үшін қарапайым DIY логикалық түрлендіргіші: 4 қадам

3.3V құрылғылары үшін қарапайым DIY логикалық түрлендіргіші: Бұл жазбада мен сізге 5V -ден 3,3В -қа дейінгі логикалық түрлендіргішті 5V датчиктерін жаңа Arduino тақталарына және Raspberry Pi -ге қосу үшін қалай жасауға болатынын көрсетемін. Көпшілігіңіз Arduino және Raspberry Pi duri -мен ойнағанды ұнатасыз
Arduino негізіндегі байланыссыз инфрақызыл термометр - IR негізіндегі термометр Arduino көмегімен: 4 қадам

Arduino негізіндегі байланыссыз инфрақызыл термометр | Ардуиноны қолданатын инфрақызыл термометр: Сәлеметсіз бе, балалар, біз индуктивті емес термометр жасаймыз, өйткені кейде сұйықтықтың/қатты заттың температурасы тым жоғары немесе төмен болады, содан кейін онымен байланыс жасау және оны оқу қиын. сол кездегі температура
Arduino негізіндегі жобалар үшін NRF24L01 трансивер модулін қолданатын сымсыз байланыс: 5 қадам (суреттермен)

Arduino негізіндегі жобалар үшін NRF24L01 трансивер модулін қолданатын сымсыз байланыс: Бұл менің роботтар мен микроконтроллерлер туралы екінші нұсқаулық. Сіздің роботыңыздың тірі және күтілгендей жұмыс істеп тұрғанын көру өте керемет, ал егер сіз роботты немесе басқа заттарды сымсыз жылдамдықпен басқарсаңыз, одан да қызықты болады деп ойлаймын
1А -дан 40А -ға дейінгі ток күші 1000 Вт дейінгі тұрақты ток қозғалтқышы үшін ағымдағы BOOST түрлендіргіші: 3 қадам

1000А дейін тұрақты ток қозғалтқышы үшін 1А-дан 40А-ға дейінгі ағымдағы BOOST түрлендіргіші: Сәлеметсіз бе! Бұл бейнеде сіз 1000 Вт және 40 Амперке дейінгі тұрақты ток қозғалтқыштарының транзисторлары мен трансформаторы бар орталық ток трансформаторы үшін ток күшейткіш схемасын жасауды үйренесіз. шығудағы ток өте жоғары, бірақ кернеу