Boeing 737 – „Motorový“ panel

Pár slov na úvod

Původně jsem o sdílení tohoto „panelu“ vůbec neuvažoval. Co se týče tohoto panelu, opět jsem nezačínal „na zelené louce“. Vždy se snažím co nejméně upravovat projekt, na kterém stavím. Možná to má něco společného s leností. Chtěl jsem si jen postavit jednoduchý panel – volně dostupný doplněk Honeycomb Bravo Quadrant B737. Ale díky uspořádání mého simulátorového kokpitu jsem nakonec skončil návrhem úplně nového panelu, ze zmíněného projektu jsem použil jen „madla“ spínačů; Takže, snad i pro tu mizivou pravděpodobnost, že to bude někomu dalšímu užitečné, to sdílím…

Galerie

Popis je dobrá věc, ale obrázky jsou lepší:

Panel je relativně malý. Každá „sekce“ má rozměry přibližně 4×4 cm (1,5 x 1,5 palce). Vlevo bude přepínač parkovací brzdy a LED kontrolka signalizující, zda je parkovací brzda zapnutá nebo vypnutá. V prostřední „kopulovité“ sekci budou skryty dva přepínače přívodu paliva do motorů a v pravé „sekci“ – té s jedním otvorem – bude tlačítko pro vypnutí varování zasunutého podvozku – HORN CUTOUT.

Funkčnost je tedy stejná jako u Honeycomb Bravo Quadrant B737 Add-On. Panel je rozdělen na „tělo“ a „kryt spínačů motoru“. Je to tak záměrně kvůli snažšímu tisku … a … také, kdyby to byl jeden kus, později, až by jste chtěli namontovat ony spínače, zjistili by jste, že se jedná o pokročilejší kouzelnické číslo 🙂

Kryt spínačů motoru má zespodu 4 díry, kam mají přijít 4 závitové vložky do plastu pro šrouby velikosti M3. Kryt se pak zespodu přišroubuje k tělu.

Zapojení

Níže je obrázek zapojení panelu:

Boeing 737 – „Motorový“ panel – Zapojení

Z hlediska zapojení je tento panel velmi jednoduchý. Má 3 přepínače, 1 tlačítko a 1 LED, takže můžeme použít stejný „přístup“ jako u panelu ELT, jen s více přepínači.

Na výše uvedeném schématu zapojení vidíte, že každá komponenta má jednu nohu (vstup) připojenou k zemi (GROUND) a druhou k nějakému vstupu/výstupu Arduina. LED má katodu připojenou k zemi a anodu (delší nebo mírně zakřivená noha) k Arduinu přes 330Ω rezistor (abychom jí zajistili bezpečný proud).

Tři přepínače mají prostřední nohu (noha 1) připojenou k zemi (GROUND) a nohu číslo 3 ke vstupům Arduina. Použil jsem přepínače typu KN3(C)-102AP, které jsou typu ON-ON, ale lze použít i typ ON-OFF. Protože zde potřebujeme přepínače, zajímá nás pouze jeden stav, buď ON, nebo OFF. Pokud není v ON, víme, že musí být OFF. Použití nohy 3 pro vstupy Arduina byla jen moje volba, můžete použít nohu 2, pokud chcete.

Zapojení vodičů na tlačítku PBS-33B je takové, jak ho uchopíte při pájení, nezáleží na tom – dokud je jedna noha připojena k zemi a druhá k Arduinu.

Možná si všimnete, že zemnící vodiče mají hnědou a hnědobílou barvu, místo černé jako v mých jiných zapojeních…) Je to proto, že jsem pro tento panel použil ethernetový kabel. Pár hnědého a hnědo-bílého vodiče jsem použil pro společné zemnění.

Také jsem nechtěl komponenty panelu pevně připojovat k propojovacímu ethernet kabelu – kvůli opravám a údržbě. Proto jsem mezi komponenty panelu a vodič, který to vše spojuje s Arduinem, zakrimpoval „prostřední“ konektor. 5 pinů je pro „signálové“ kabely a jeden je pro „zemnící“ vodiče. Ten pro zemnící vodiče je připojen k „redukci“, která spojuje pět zemnících vodičů do jednoho pinu (ten hnědý a hnědo-bílý drát v ethernetovém kabelu). To můžete vidět na fotografiích:

Níže je galerie s použitými díly… snad vám pomohou najít alternativy, až za pár měsíců odkazy níže přestanou být platné 🙁

Programování

Stejně jako zapojení, ani programování by vám nemělo přivodit bezesné noci, jako například zkoušky na vysoké škole nebo čekání na nové epizody vašeho oblíbeného seriálu…

Definice vstupů/výstupů

Nejprve je potřeba definovat vstupy. Máme zde 4 tlačítka a jeden LED výstup. Pro všechny platí, že není moc co nastavovat kromě PINu, ke kterému jsou připojeny. A ten váš se může lišit 🙂 Pak jim prostě dejte nějaké rozumné názvy. Já jsem si je definoval takto:

Engine Panel – Definice vstupů v MobiFlight

Počínaje vybraným řádkem, EP je zkratka pro Engine Panel (Panel motoru), a pokračuji takto:

NázevPopisPIN
EP_HC_BTNTlačítko – Horn Cutout53
EP_LE_IGN_SWStartovací spínač levého motoru51
EP_RE_IGN_SWStartovací spínač pravého motoru49
EP_PBRK_SWPřepínač parkovací brzdy47
EP_PBRK_LEDLED indikátor parkovací brzdy45

Programování tlačítka Horn Cutout

Pro tlačítko (spínač) vypnutí varovného zvonku zasunutého podvozku – Horn Cutout a další spínače použijeme „události PMDG“. Pokud vám to nic neříká… je to jen způsob, jak spustit nějakou akci v letadlech od PMDG, většinou interakci s nějakým spínačem, tlačítkem, pákou atd. v kokpitu. Nastavení je snadné, protože MobiFlight je všechny (myslím) zná. Většina z nich také vyžaduje nějaký parametr, což může znamenat stisknutí, uvolnění, tažení myši… ale v našem případě tlačítek a spínačů bude jako hodnota parametru stačit hodnota 1 nebo 0, kde 1 obvykle znamená „stisknuto“ a 0 znamená „uvolnit“. Pro více informací si přečtěte dokumentaci k SDK, která je dodávána s PMDG 737-800.

Takže pro ovládání tlačítka pro vypnutí varovného zvonku vytvořte v MobiFlightu novou konfiguraci vstupu (Input Config), dejte jí nějaký smysluplný název, například „EP – Horn Cutout Button“, jako jsem to udělal já, a klikněte na tlačítko vpravo se třemi tečkami nebo dvakrát klikněte na vytvořenou položku, čímž otevřete následující konfigurační dialog:

Engine Panel – Tlačítko umlčení zvonku – Při stisku

Zde v sekci Choose Input musíme vybrat Arduino desku, ke které je připojeno tlačítko vypnutí zvonku. To je možnost Module. Nastavil jsem ji na MF_Mega_CB. V seznamu Device vyberte PIN, ke kterému je připojeno tlačítko vypnutí zvonku – EP_HC_BTN.

Dále se v sekci Input settings postaráme o první záložku – On Press. V seznamu Action Type vyberte FSUIPC – PMDG – ID. Měla by se zobrazit nebo povolit následující sekce – Load preset, ve které klikněte na B737 (protože to nastavujeme pro Boeing 737) a v níže uvedeném seznamu najděte událost EVT_CONTROL_STAND_HORN_CUTOUT_SWITCH. Po jejím výběru klikněte na tlačítko Use vpravo od seznamu. Tím se umístí číslo 70345 do možnosti Event ID níže, v sekci Customize Settings. V možnosti Mouse Param by měla být předvybrána hodnota Custom Param. Pokud ne, vyberte ji. Poté do možnosti Custom Param zadejte hodnotu 1. To je vše pro událost stisknutí tlačítka – odešle se událost PMDG, která letadlu řekne, aby stisklo tlačítko Horn Cutout, což odpovídá tomu, co jsme udělali ve fyzickém světě.

Nyní přepněte na záložku On Release. Nastavte vše stejně jako pro On Press, kromě poslední možnosti Custom Param. Tu tentokrát nastavte na 0 – tím letadlu řeknete, aby uvolnilo tlačítko.

Engine Panel – Tlačítko umlčení zvonku – Při uvolnění

Programování spínačů pro startování motorů

Programování spínačů pro startování motorů se řídí stejným postupem jako v případě tlačítka pro vypnutí varovného zvonku. Liší se jen krátkým finále a dosednutím 🙂

Takže, opět musíte vytvořit novou konfiguraci vstupu (Input Config), pojmenovat ji např. EP – Left Engine Start Switch a nastavit záložku On Press:

Module -> MF_Mega_CB
Device -> EP_LE_IGN_SW

Action Type -> FSUIPC – PMDG – Event ID
Load preset -> B737, EVT_CONTROL_STAND_ENG1_START_LEVER
Kliněte na Use
Event ID -> 70320 (vyplněno tlačítkem Use)
Mouse Param -> Custom Param
Custom Param -> 1

stejně jako na následujícím obrázku:

Engine Panel – Startovací páka motoru – Při stisku

na záložce On Release, je zase všechno stejně, až na:

Custom Param -> 0

Engine Panel – Startovací páka motoru – Při uvolnění

Stejný postup platí i pro druhý spínač pro startování motoru, až na to, že u něj vyberete událost: EVT_CONTROL_STAND_ENG2_START_LEVER.

Programování spínače parkovací brzdy

Spínač parkovací brzdy může být trochu zapeklitější a záleží na tom, jakou možnost máte nastavenou pro brzdy v PMDG 737. Můžete mít buď Realistic, nebo Simple. Já mám realistic, takže vám ukážu nastavení pro něj. Také ukážu nastavení s obecným ovládáním parkovací brzdy pro jakékoli jiné letadlo, které používá standardní události.

Použití PMDG s realistickým nastavením brzd

Při použití nastavení realistických brzd v PMDG 737 funguje parkovací brzda takto:

  • Pro zatažení parkovací brzdy je nutné plně sešlápnout brzdové pedály a poté přepnout spínač parkovací brzdy do polohy „parkování“.
  • Pro uvolnění parkovací brzdy je nutné znovu plně sešlápnout brzdové pedály a čímž dojde k uvolnění parkovací brzdy (a automaticky se uvolní i spínač).

„Nastavení v MobiFlightu“ našeho spínače se tím vlastně zjednodušuje, protože stačí nastavit pouze akci pro stisknutí spínače (k uvolnění dojde automaticky plným sešlápnutím brzdových pedálů). Ano, zase to znamená, že brzdy nelze uvolnit pouhým „přepnutím“ spínače a nelze synchronizovat uvolnění spínače se simulátorem – k tomu by jste potřebovali magnetický spínač.

Nastavení je identické s ostatními dříve popsanými přepínači, liší se samozřejmě pouze událost.

V konfiguračním seznamu vstupů MobiFlightu (Input Conifig) vytvořte nový záznam. Pojmenujte ho nějakým pěkným názvem, například EP – Parking Brake Switch. V první sekci – Choose input, v možnosti Module vyberte MF_Mega_CB a jako Device vyberte EP_PBRK_SW.

Dále v sekci Input settings zůstaňte na první kartě – On Press. Jako Action Type vyberte FSUIPC – PMDG – Event ID. V sekci Load preset se ujistěte, že je vybrána možnost B737, a v níže uvedeném seznamu najděte možnost EVT_CONTROL_STAND_PARK_BRAKE_LEVER, vyberte ji a klikněte na tlačítko Use vpravo od ní. Event ID se nastaví na 70325. Jako Mouse Param by měla být vybrána možnost Custom Param. Pokud ne, vyberte ji. Poslední věc, kterou je třeba zadat, je 1 pro možnost Custom Param. Vše můžete vidět na obrázku níže:

Engine Panel – Spínač parkovací brzdy – PMDG Event – Při stisknutí

Jak už bylo napsáno, pro akci „On Release“ nic nepotřebujeme, takže se jen ujistěte, že je tam none:

Engine Panel – Spínač parkovací brzdy – PMDG Event – Při uvolnění

To je vše pro spínač parkovací brzdy s realistickými brzdami v PMDG 737. Dialogové okno můžete nyní zavřít tlačítkem Ok.

Nastavení brzdových pedálů s realistickými brzdami PMDG 737

Četl jsem mnoho diskusí a témat na fórech o leteckých simulátorech týkajících se realistického chování parkovací brzdy, i parkovací brzdy obecně, poté, co jej PMDG změnil. Také jsem s nimi měl problém. Měl jsem problémy s jejich uvolněním. Používám TPR: Thrustmaster Pendular Rudder a přiřazení os přes FSUIPC. Stejně jako mnoho dalších jsem zjistil, že z příslušné osy nedostávám plnou hodnotu, ani když pedály sešlápnu naplno. Někdy ano, někdy ne. Ale většinou to nestačilo k tomu, aby logika PMDG spustila uvolnění parkovací brzdy.

Takže jen jako taková rychlá poznámka stranou, níže je návod, jak jsem to vyřešil:

FSUIPC – Nastavení brzdy pro plné brždění

Na obrázku výše vidíte mé nastavení pro pravou brzdu v FSUIPC. Abych vyřešil problém s tím, že při brzdění ne vždy dosahuji plné hodnoty, přidal jsem 1 akční rozsah, který vidíte v pravé polovině obrázku. Rozsah je definován od hodnoty 15903 do 16383 – takže se jedná o téměř hraniční hodnoty pro plný tlak na brzdu. Z mých testů vím, že pokaždé, když plně sešlápnu brzdu, dosáhnu hodnoty přes 16k. Takže když jsem v tomto rozsahu a s použitím výše uvedeného nastavení, FSUIPC také odesílá událost „Brakes Right“. To bude mít za následek postupné zvyšování hodnoty tlaku na pravou brzdu až na krajní hodnotu 16384, i když jí při sešlápnutí pedálu nedosáhnu.

Levá brzda je nastavená stejně. A teď mi logika funguje pokaždé, i když může trvat dvě vteřiny nebo déle, než PMDG rozpozná, že brzdy jsou sešlápnuty na max. Což je ale také realistické, nárůst hydraulického tlaku také není okamžitý.

Použití výchozí události pro kontrolu parkovací brzdy

Tento přístup lze použít u všech letadel MSFS, která používají standardní ovládání parkovací brzdy. Použijeme offset FSUIPC 0x0BC8. Informace o tomto offsetu naleznete v dokumentu „FSUIPC7 Offsets Status.pdf“, který je distribuován s FSUIPC 7. Stejný offset používáme také v programování indikační LED pro parkovací brzdu (s použitím „výchozí události“ ovládání parkovací brzdy).

Offset 0x0BC8 má délku 2 bajty a je propojen s osou polohy parkovací brzdy simulátoru. Pro uvolnění parkovací brzdy musíme nastavit hodnotu 0. Pro aktivaci parkovací brzdy jej nastavíme na hodnotu 32767. Může nabývat hodnot v tomto rozsahu. I když nastavíte offset na 32767, hodnota se neobjeví okamžitě, ale bude se postupně zvyšovat až k této hodnotě, což odráží skutečné chování parkovací brzdy (její použití obvykle také není okamžité).

Takže opět vytvořte nový záznam v konfiguračním seznamu vstupů v MobiFlight. Dejte mu nějaký zajímavý název, například EP – Parking Brake Switch. V první sekci – Choose input, vyberte MF_Mega_CB v možnosti Module a EP_PBRK_SW jako Device.

Dále v sekci Input settings zůstaňte na první kartě – On Press. Jako Action Type vyberte FSUIPC – Offset. Poté se zaměřte na sekci Basic settings. V možnosti Offset zadejte 0x0BC8. V poli Value Type vyberte Int a v poli Size in Bytes vyberte 2. Hodnota Mask value with by se měla automaticky nastavit na 0xFFFF. Nakonec v sekci More Options nastavte hodnotu pro Set Value na 32767, což je hodnota pro plnou aplikaci parkovací brzdy.

Engine Panel – Spínač parkovací brzdy – FSUIPC Offset – Při stisknutí

Nastavení na kartě On Release je stejné jako na výše uvedené kartě On Press. Rozdíl je pouze v hodnotě Set Value v sekci More Options. Nyní má hodnotu 0 – úplné uvolnění parkovací brzdy.

Engine Panel – Spínač parkovací brzdy – FSUIPC Offset – Při uvolnění

To je vše pro variantu nastavení s „výchozí událostí“. Dialog můžete zavřít tlačítkem Ok.

Programování indikačního LED světla parkovací brzdy

Pro LED indikátor parkovací brzdy můžeme použít buď „obecný“ přístup, nebo číst stav světla parkovací brzdy z PMDG 737-800 (nebo jiného letadla). Ukážu vám obojí. V obou případech budeme muset vytvořit novou položku v konfiguracích výstupu MobiFlight. Dejte jí nějaký pěkný název, například EP – Parking Brake LED.

Použití stavu kontrolky parkovací brzdy PMDG

Pro přístup ke stavu kontrolky parkovací brzdy u PMDG 737 – 800 jsem zvolil metodu použití FSUIPC offsetu. FSUIPC poskytuje stav všech, nebo téměř všech spínačů a světel v kokpitu PMDG 737. Chcete-li najít potřebný offset a relevantní informace, projděte si dokument „Offset mapping for PMDG 737.pdf“, který je distribuován s FSUIPC.

Tam by jste zjistili, že stav kontrolky parkovací brzdy můžeme číst pomocí offsetu 0x6C3E, který má velikost 1 bajt a je typu booleovská hodnota. A jak asi tušíte, když světlo svítí, bude mít hodnotu 1 a když nesvítí, bude mít hodnotu 0.

Níže je popsáno, jak to sdělit MobiFlightu. Po otevření nově přidané výstupní konfigurace na první kartě – Sim Variable vyberte v prvním řádku možností s označením Select Variable Type možnost FSUIPC Offset . Poté přejděte přímo do sekce Base settings a v možnosti Offset nastavte hodnotu 0x6C3E. Ujistěte se, že Value Type je Int a Size in Bytes je 1. Mask value with by se měla nastavit na 0xFF.

Engine Panel – LED dioda parkovací brzdy – Sim Variable (offset PMDG)

Pak můžeme přejít přímo na záložku Display. Zde v sekci Display type vybereme Output Device 🙂 Module bude naše deska Arduino, takže MF_Mega_CB a Use type of bude LED / Output. Poslední věc, kterou musíme vybrat, je cílová LED, takže v seznamu Select Pins, níže v Display settings, zvolíme EP_PBRK_LED. To je vše. Nepotřebujeme žádnou transformaci ani přepočítávání proměnné, kterou dostáváme prostřednictvím offsetu ze simulátoru. Hodnota je booleovská, je 1, když je kontrolka parkovací brzdy zapnutá, což odpovídá tomu, co MobiFlight potřebuje k zapnutí LED (protože v tomto případě nepoužíváme PWM režim), a 0, když je kontrolka parkovací brzdy vypnutá. A stejná 0 vypne LED přes MobiFlight.

Engine Panel – LED dioda parkovací brzdy – Display

Použití „výchozí události“ ovládání parkovací brzdy

Tento přístup lze použít u všech letadel MSFS, která používají standardní ovládání parkovací brzdy. Ale také u PMDG 737. Upozorňuji ale, že v případě PMDG nemusí být LED kontrolka plně synchronizovaná s kontrolkou parkovací brzdy v kokpitu.

Použijeme offset FSUIPC 0x0BC8. Informace o tomto offsetu naleznete v dokumentu „FSUIPC7 Offsets Status.pdf„, který je distribuován s FSUIPC 7. Má velikost 2 bajty a představuje polohu parkovací brzdy. Když je parkovací brzda vypnutá, má hodnotu 0 a když je parkovací brzda zapnutá, má hodnotu 32767. Může nabývat hodnot v tomto rozsahu, protože odráží osu ovládání parkovací brzdy, která přechází mezi těmito dvěma koncovými hodnotami a simuluje aktivaci a uvolnění parkovací brzdy, což většinou není okamžitá akce.

Záložka Sim Variable se nastavuje stejně jako v předchozí části, liší se pouze informace o offsetu. Stručně řečeno:

Select Variable Type -> FSUIPC Offset
Offset -> 0x0BC8
Value Type -> Int
Size in Bytes -> 2
Mask value with -> 0xFFFF (mělo by být nastaveno automaticky)

Engine Panel – LED dioda parkovací brzdy – Sim Variable (Obecný Offset)

Protože hodnota se může pohybovat od 0 do 32767, nemůžeme ji jednoduše předat fyzické LED. MobiFlight očekává pro ovládání LED hodnoty 1 a 0, nebo 0 až 255 v případě použití PWM režimu. Proto musíme převést simulovanou hodnotu na hodnotu, kterou MobiFlight může použít. To provedeme na druhé kartě – Modify.

Engine Panel – LED dioda parkovací brzdy – Modify (Obecný Offset)

Na záložce Modify jsem přidal jeden jednoduchý modifikátor (Modifier) – Comparison. Což je v podstatě podmínka if. Na obrázku výše vidíte, jak je nakonfigurována. Říká se tam: „pokud je aktuální hodnota (ta přijatá ze simulátoru) 32767, nastavte hodnotu na 1, jinak nastavte na 0„. Jinými slovy, hodnota, která bude odeslána na LED diodu, bude 1 pro 32767 a 0 pro hodnoty od 0 do 32766 a případně jakékoli jiné číslo, které by se tam v důsledku jakékoliv chyby objevilo.

Ano, nevýhodou je, že LED dioda nebude odrážet stav, kdy parkovací brzda není zcela odjištěná. Logiku stavu však můžete snadno obrátit a nechat LED svítit, dokud hodnota nedosáhne 0, tedy, dokud parkovací brzda není zcela uvolněná. Nebo můžete sledovat, kdy hodnota překročí střední rozsah. To záleží na vašich preferencích. Každopádně je to jeden ze způsobů, jak převést hodnotu na logickou 0-1.

Nastavení záložky Display je pak stejné jako v kapitole Použití stavu kontrolky parkovací brzdy PMDG.

Pár myšlenek na závěr

Pokud můžete, zkuste najít lepší páčkové přepínače než KN3(C)-102AP, které jsem použil já. Jsou robustní, to je v pořádku. Ale „páčka“ je hladká a i když jsem vyrobil a přilepil k páčce vložku, „madla“ přepínačů (k jejich upevnění se používá i šroub) se kolem páčky stále otáčejí. Stačí k tomu i jen malý tlak, aby se tak stalo. Mohlo by pomoci, kdybych páky před lepením zdrsnil brusným papírem, nevím. Ale myslím, že vyrábějí přepínače se čtvercovými pákami (nebo jinými tvary), které se lépe hodí pro montáž jiných „madel“.

Ke stažení

Níže si můžete stáhnout soubory pro tisk panelu. Archiv obsahuje také projekt Autodesk Fusion, pokud byste chtěli provést další úpravy. Další soubor obsahuje programování MobiFlightu.

Odkazy

Začněme pár odkazy na zdrojové projekty …

A nějaké použité součástky

A použitý software:

Související četba

Pokud jste to náhodou zmeškali, možná byste se chtěli ponořit do některých článků z 1. fáze stavby kokpitu mého leteckého simulátoru…

  1. Můj “domácí kokpit”
  2. Přepínače, hejblátka a tak podobně
  3. Přístrojový panel – Hodiny DAVTRON
  4. Přístrojový panel – Rychloměr
  5. Přístrojový panel – Umělý horizont
  6. Přístrojový panel – Výškoměr
  7. PFD & MFD
  8. ELT Panel
  9. Kompas
  10. Ventilace
  11. Závěr první fáze, shrnutí, a poděkování

a z 2. fáze:

  1. Panel Elektrických jištičů