Jump to content

Search the Community

Showing results for tags 'konfiguracja'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • RC Model Technology
    • FrSky
    • OpenTX
    • Other
  • 77Hobby
    • FrSky Workshop
    • FAQ FrSky
  • Forum
    • How to use the Forum?
    • Welcome
    • Test

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


From where

Found 3 results

  1. Click here for English translation OpenTX oferuje prawie niczym nieograniczone możliwości konfigurowania modeli. W niniejszym artykule opisuję szczegółową i dosyć zaawansowaną konfigurację OpenTX dla helikoptera nitro, pracującego pod kontrolą Brain 2. Jeśli dopiero zaczynasz przygodę z OpenTX, polecam lekturę artykułu Czym jest OpenTX? Download Tutaj możesz pobrać pliki konfiguracyjne i komunikatów głosowych wykorzystywane w tym artykule. Plik konfiguracyjny OpenTX Companion Pliki WAV komunikatów głosowych Plik konfiguracyjny należy otworzyć w OpenTX Companion, przy użyciu profilu Horus X12S (można go potem skonwertować dla dowolnego innego radia, poprzez prostą zmianę profilu w Companion). Pliki dźwiękowe należy wgrać na kartę SD, do katalogu SOUNDS dla języka, którego używamy (np. \SOUNDS\pl, \SOUNDS\en, etc.). Aby dźwięki działały poprawnie w symulatorze radia OpenTX Companion, należy je także wgrać do katalogu wskazanego jako obraz karty SD symulatora. Informacje wstępne Celem artykułu jest zaprezentowanie – na przykładzie dosyć skomplikowanego technicznie modelu – kompletnej konfiguracji modelu helikoptera nitro w OpenTX. Jednocześnie zamiarem jest także pokazanie możliwości i potencjału tkwiącego w OpenTX. Dlatego z rozmysłem będę się starał użyć jak najwięcej narzędzi i różnych metod konfiguracji, tak by zaprezentować jak najwięcej z tego, co oferuje OpenTX. Wiele pokazanych funkcjonalności można w OpenTX ustawić w inny sposób. Starałem się wybrać taką metodę konfiguracji danej funkcjonalności, aby przy okazji "przemycić" nieco wiedzy na temat OpenTX ogólnie. Z tego samego powodu niektóre elementy, które nie są obecnie tak często używane w praktyce modelarskiej heli (np. tryb heli tail-free), zostaną jednak skonfigurowane i opisane. Poniższy opis – zapewne z niewielkimi modyfikacjami – będzie adekwatny dla każdego innego modelu helikoptera nitro. W znakomitej większości będzie także użyteczny przy konfigurowaniu helikopterów elektrycznych, czy każdego innego modelu RC. Pokazane przykłady wyzwalania liczników, alarmów, funkcji specjalnych, faz lotu, opis miksera, obsługiwania zmiennych globalnych, etc., zachowują uniwersalny charakter. Zakładam, że czytelnik posiada podstawową wiedzę z zakresu modelarstwa RC, konfiguracji OpenTX oraz jest zaznajomiony ze specyfiką i technicznymi aspektami modelarstwa jako takiego. Pomocna będzie wiedza dotycząca modeli RC helikopterów. Tym niemniej artykuł jest dosyć obszerny i wiele rzeczy wyjaśniam prawie od podstaw. Ze względu na specyfikę opisywanego zagadnienia zdecydowałem się na mieszanie języka polskiego z określeniami angielskimi. Szczególnie w modelarstwie helikopterów RC (choć nie tylko) w powszechnym użyciu są takie terminy jak expo, cyclic, tail, tail-gain, tail-free, heli, governor, etc. Dla niektórych określeń trudno nawet znaleźć polskie odpowiedniki lub są one niepraktyczne w codziennym użyciu. Będę się starał pisać jak najbardziej poprawną polszczyzną, ale nie będę za każdym razem wstawiać "skoku ogólnego łopat wirnika głównego" zamiast "pitch". Konfigurację OpenTX będę prezentował w OpenTX Companion, dzięki czemu będzie ona wyglądała bardzo podobnie dla każdego radia FrSky (polecam lekturę artykułu Czym jest OpenTX?). Będę używał profilu dla aparatury FrSky Horus X12S, ale nie ma to większego znaczenia. Omawiana konfiguracja będzie działała na każdym radiu pracującym pod kontrolą OpenTX, choć może być konieczne jest dostosowanie do danego modelu radia, a ściślej do ilości, rodzaju i nazw przełączników / potencjometrów (bez żadnych zmian działa na X10 / X10S oraz X9D; QX7 nie ma przełącznika SG, wymaga więc przedefiniowania tego jednego przełącznika) Będę pracował na OpenTX 2.2.3, co również nie ma większego znaczenia. Nie testowałem tego, ale konfiguracja powinna bez większych zmian działać także pod OpenTX serii 2.1. Testowe radio ustawione jest w MODE 2, co ma znaczenie wyłącznie, gdy dalej w tekście odwołuje się do prawego, czy lewego drążka. W dalszej części tekstu często odwołuję się do stanu konkretnych przełączników aparatur FrSky. Oznaczone one są wielkimi literami SA, SB, SC, SD, SE, etc. Ich ilość zależna jest od modelu radia. Przełączniki mogą być trój-pozycyjne (do siebie ↓, pozycja środkowa –, od siebie ↑) lub dwu-pozycyjne (do siebie ↓, od siebie ↑). Zatem np. zapis "SC–" oznacza pozycję środkową przełącznika SA, a zapis "SF↑" pozycję od siebie przełącznika SF). Pozycje "od siebie" oraz "do siebie" odnoszę do sytuacji, kiedy radio jest normalnie użytkowane (tj. trzymane w rękach lub zawieszone na tzw. "smyczy" czy szelkach, skierowane anteną w kierunku sterowanego modelu). Wszystkie zdjęcia i rysunki w tym artykule są miniaturami. Kliknij w miniaturę, aby zobaczyć obraz w pełnej rozdzielczości. Założenia projektu Przykładowy helikopter jest realnie istniejącym, oblatanym modelem. Wszystkie opisywane funkcjonalności zostały sprawdzone i działają poprawnie (tym niemniej sprawdź uwagę na końcu artykułu). Model wyposażony jest w następującą elektronikę zdalnego sterowania RC: odbiornik FrSky RX4R odbiornik redundantny FrSky XM+ czujnik telemetryczny FrSky Gas Suite z sondą temperatury PT1 czujnik telemetryczny FrSky GPS v2 kontroler flybarless MSH Brain 2 BT HD (dalej nazywanym kontrolerem FBL lub po prostu FBL; kontrolery Brain występuje także pod inną nazwą handlową – Ikon). inwerter sygnału MSH51645 czujnik obrotów silnika Spektrum SPMA9569, typu "backplate", czyli generujący impulsy na podstawie pracy wału korbowego, poprzez tylną pokrywę silnika nitro (czujnik podłączony jest to kontrolera Brain 2) Sygnał sterujący RC Do sterowania helikopterem użyłem ośmiu kanałów RC, podawanych w kolejności zgodnej ze domyślnymi oczekiwaniami kontrolera Brain 2: CH1: Ailerons (lotki) CH2: Elevator (ster wysokości) CH3: Throttle (przepustnica) CH4: Rudder / Tail (ster kierunku) CH5: Tail Gain (wzmocnienie P dla regulatora PID wirnika ogonowego) CH6: Pitch (nachylenie ogólne łopat wirnika głównego) CH7: Setup (tryby lotu) CH8: Aux (wykorzystywany do aktywacji tzw. "rescue", czyli trybu awaryjnego auto-poziomowania modelu) (w terminologii modelarstwa helikopterowego Ailerons i Elevator są określane wspólnie jako Cyclic, a Rudder jako Tail). Wartości kanałów sterujących odbiornika RX4R przekazywane są przez port SBUS OUT, podłączony poprzez inwerter MSH51645 do wejścia SAT-1 kontrolera Brain 2, zgodnie ze schematem: Brain 2 na porcie SAT-1 oczekuje nieodwróconego sygnału SBUS. FrSky na wyjściach SBUS swoich odbiorników używa sygnału odwróconego. Aby dostosować sygnał SBUS odbiornika do oczekiwań kontrolera Brain 2, należy go jeszcze raz odwrócić przy pomocy inwertera sygnału MSH51645 (podwójne odwrócenie daje pierwotny sygnał SBUS). Zamiast używać inwertera sygnału można zmodyfikować odbiornik w taki sposób, aby podłączyć się do sygnału SBUS, zanim zostanie on odwrócony i podany na standardowe wyjście SBUS odbiornika. Aby to osiągnąć trzeba się niestety wlutować w odpowiednim miejscu na płytce PCB odbiornika. Jednak dzięki temu eliminuje się konieczność użycia inwertera MSH51645. W przypadku odbiornika RX4R podłączenie się do odpowiedniego pinu na płytce PCB jest wymagające technicznie, ze względu na dużą skalę miniaturyzacji odbiornika RX4R. Dolutowanie się do właściwego pinu nie jest łatwe, choć przy odrobinie wprawy i przy użyciu odpowiednich narzędzi możliwe (podłączenie się do nieodwróconego sygnału SBUS jest o wiele prostsze w takich odbiornikach jak FrSky X4RSB, R-XSR, XSR-M, XM+ i innych). UWAGA: W przypadku stosowania zmodyfikowanego odbiornika lub innego inwertera sygnału, należy pamiętać, aby nie podłączać zasilania do portu SAT-1 kontrolera Brain 2 (na pinie zasilania portu SAT-1 występuje inny, separowany poziom napięcia zasilania). Zapewne z tego powodu oryginalny inwerter MSH51645 także nie przenosi linii zasilania, jest ona domyślnie rozłączona na płytce PCB inwertera MSH51546. Dodatkowo rozstaw pinów portu SAT-1 nie jest standardowy, tzn. pin zasilania nie jest pinem środkowym (tak jak popularnych modelarskich wtyczkach typu JR) – należy zatem zwrócić na to szczególną uwagę przy przygotowywaniu wtyku podłączanego do wejścia SAT-1 kontrolera Brain 2. Redundancja linku RC Odbiornik RX4R umożliwia podłączenie drugiego, zapasowego odbiornika, z którego będzie pobierany sygnał sterujący, w przypadku utraty zasięgu przez własne anteny RX4R. W przypadku modeli helikopterów użycie dodatkowego odbiornika może mieć szczególne znaczenie, gdyż konstrukcja helikoptera – zwykle głównie z włókna węglowego, z dużą ilością metalowych i blisko siebie położonych komponentów – może skutecznie blokować sygnał radiowy w niektórych pozycjach modelu względem nadajnika. Aby skorzystać z redundantnej konfiguracji, wyjście SBUS (OUT) odbiornika zapasowego podłącza się do portu wejścia SBUS (IN) odbiornika podstawowego. Oba odbiorniki binduje się do tego samego modelu w aparaturze – odbiornik podstawowy z obsługą telemetrii, odbiornik zapasowy bez telemetrii. FrSky XM+ jest idealnym odbiornikiem zapasowym ze względu na ultra-miniaturowe rozmiary i brak obsługi telemetrii. Anteny odbiornika głównego (RX4R) zlokalizowane są pod głowicą wirnika, zachowując kąt 90° między pojedynczymi antenami. Anteny odbiornika zapasowego (XM+) umiejscowione są pod belką ogonową helikoptera. Takie ustawienie anten powinno zapewnić znakomity odbiór sygnału RC, niezależnie od pozycji modelu. ... do uzupełnienia schemat połączeń wszystkich elementów Zasilanie Wszystkie komponenty elektryczne użyte w modelu akceptują zasilanie HV (ang. High Voltage), czyli do 8.4V. Dzięki temu instalacja elektryczna modelu może być zasilana bezpośrednio z akumulatora LiPo 2S, z pominięciem układu stabilizującego napięcie, tzw. BEC lub SBEC (w zależności od konstrukcji odpowiednio stabilizatory liniowe lub przełączające). Bezpośrednie zasilanie z baterii 2S eliminuje potencjalny punkt awarii (BEC/SBEC jest jednym z elementów ulegających najczęstszym usterkom) oraz niepożądane zakłócenia radiowe (przetwornice napięcia SBEC często wprowadzają zakłócenia). Bezpośrednie zasilanie oferuje praktycznie nieograniczoną wydajność prądową (zwykle większą niż jest potrzebna do zasilania nawet najmocniejszych serw cyfrowych), a także umożliwia łatwe odczytywanie napięcia zasilania instalacji modelu i przesyłania tej informacji w systemie telemetrii (więcej o tym w dalszej części artykułu). W przykładowym modelu mechanika helikoptera napędzana jest silnikiem nitro, który nie wymaga oddzielnego zasilania (nie ma układu zapłonowego). Można zamontować układ rozżarzający świecę. Nie jest to konieczne, choć na pewno wygodne. W przypadku braku BEC nie jest to wymagane, ale na wszelki wypadek w obwód zasilania podpięty został kondensator 4700µF, którego zadaniem jest filtrowanie ewentualnych, nagłych spadków napięcia. Telemetria Jedną z zalet OpenTX jest zaawansowany system telemetrii. Przykładową konfigurację systemu telemetrii w OpenTX 2.1 i nowszych opisałem w artykule Telemetria OpenTX 2.1. W przykładowym modelu wykorzystywane są następujące czujniki (parametry) telemetryczne: Odczytywane bezpośrednio z odbiornika RxBt – napięcie zasilania odbiornika, w tym przypadku tożsame z napięciem zasilania całej instalacji elektrycznej modelu) RSSI (ang. Received Signal Strenght Indicator) – wskaźnik poziomu odbieranego sygnału RC Odczytywane z czujnika FrSky GPS v2 GPS – współrzędne GPS GSpd – prędkość pozioma względem ziemi GAlt – wysokość względem poziomu morza (modyfikowana tak, aby pokazywać wysokość względem punktu startu) Date – aktualny czas i data (zobacz FAQ naszego Forum – Czas z czujnika telemetrycznego FrSky GPS) Odczytywane z czujnika FrSky Gas Suite GTp1 – temperatura silnika, mierzona na tylnej płycie silnika OS 105HZ-R (czujnik przepływu z Gas Suite nie jest wykorzystywany, gdyż w helikopterach sportowych poziom paliwa w zbiorniku jest doskonale widoczny). Odczytywane z kontrolera Brain 2 RPM – prędkość obrotowa wirnika głównego Wartości poszczególnych parametrów telemetrycznych odczytywane są przez Smart Port odbiornika RX4R, wysyłane zwrotnie do nadajnika i wykorzystywane w OpenTX np. do ustawiania alarmów. Wszystkie czujniki Smart Port – także występujący w tej roli kontroler Brain 2 – podłączone są do tej samej „szyny” Smart Port. Więcej szczegółów na temat różnych rodzajów portów używanych w FrSky i modelarstwie w ogóle znajduje się w artykule Porty nie tylko FrSky. Dzięki temu, że Brain 2 potrafi komunikować się z odbiornikami FrSky Smart Port, możliwe jest odczytywanie bardzo ważnego parametru – prędkości obrotowej wirnika głównego helikoptera (czujnik RPM). W niniejszej konfiguracji parametr ten jest logowany w OpenTX oraz możliwe jest głosowe odczytywanie aktualnej jego wartości, co jest bardzo użyteczne w trybie lotu bez aktywnego governora. Konfiguracja kontrolera flybarless MSH Brain 2 / Ikon 2 W niniejszym artykule używam kontrolera flybarless Brain 2 (sprzedawane także jako Ikon 2), ale co od zasady konfiguracja OpenTX będzie podobna dla dowolnego innego kontrolera FBL z wbudowanym modułem regulującym prędkość obrotową silnika (tzw. governor). Główne różnice względem innego kontrolera FBL będą zapewne związane z ilością i/lub kolejnością kanałów użytych do sterowania modelem oraz wykorzystywanymi funkcjami kontrolera FBL. Celem artykułu nie jest opisywanie konfiguracji kontrolerów flybarless MSH Brain 2, ale dla zrozumienia dalszej części artykułu konieczne jest podanie przynajmniej podstawowych informacji o tym, jak skonfigurowany został kontroler FBL. Postaram się też co jakiś czas wtrącić więcej informacji przydatnych przy konfiguracji kontrolerów Brain 2 / Ikon 2. Podaje informacje będą w znakomitej większości dotyczyły także pierwszych wersji kontrolerów Brain / Ikon (od strony konfiguracyjnej wersja 1 nie różni się znacząco od wersji 2). Podstawowe informacje o konfiguracji kontrolera flybarless Brain 2 W menu selekcji typu odbiornika został wybrany „Smart Port / OpenTX / FrSky”. Zostały zdefiniowane trzy tryby (style) lotu, wybierane kanałem CH7: Normalny (governor aktywny, parametry do spokojnego latania lub dla początkujących) Sport (governor aktywny, parametry do latania sportowego lub nawet akrobacyjnego 3D) Normalny bez governora (tryb do docierania silnika nitro lub w razie gdyby zawiódł czujnik RPM podłączony do governora Brain 2) Governor aktywny jest wyłącznie w trybach Normalnym oraz Sport. Docelowe obroty governora w tych trybach sterowane są poziomem kanału Throttle (CH3), zgodnie z dokumentacją Brain 2: 0-24% – bez governora 25-49% – prędkość 1 (ang. Speed 1; zalecane 40%) 50-74% – prędkość 2 (ang. Speed 2; zalecane 60%) 75-100% – prędkość 3 (ang. Speed 3; zalecane 85%) UWAGA: Brain 2 – i zapewne wiele innych kontrolerów FBL – odnosi się tutaj do wartości procentowych w zakresie 0-100%. FrSky używa zakresu od -100% do 100%. Wartości należy zatem odpowiednio przeliczyć. Przeliczenia najprościej dokonać wg wzoru, zakładając: X – zakres od -100% do +100% Y – zakres od 0% do 100% Wzór do przeliczania: X = Y - 100 + Y np. dla zalecanych 40% wartości Throttle w skali od 0-100% X = 40 - 100 + 40 X = -20 Zatem w konfiguracji OpenTX, aby aktywować tryb Speed 1 governora Brain 2, należy użyć wartości minus 20% (lub innej, przeliczonej wg podanego wyżej wzoru, odpowiadającej wymaganemu zakresowi 25-49% w skali 0-100%). W praktyce wartość tę można dobrać doświadczalnie, obserwując jaką wartość pokazuje program do konfiguracji Brain 2 (monitor kanałów Brain 2 w zakładce Transmitter Setup). Wracając do konfiguracji kontrolera Brain 2: Wartości expotential zarówno dla cyclic, tail jak i pitch w kontrolerze Brain 2 ustawione są na zero. Ich wartości są definiowane w OpenTX. Umożliwia to łatwą zmianę tych parametrów z poziomu radia, bez konieczności podłączania się do kontrolera FBL przez Bluetooth czy USB. Z punktu widzenia artykułu istotna jest również konfiguracja funkcji „rescue” oraz „tail gain”: Funkcja „rescue” (awaryjne auto-poziomowanie modelu) aktywowane jest kanałem Aux (CH8). Wartość kanału CH5 określa tzw. „tail gain”, czyli wzmocnienie członu proporcjonalnego P funkcjonalności regulatora PID kontrolera FBL, sterującego skokiem łopat (ang. pitch) wirnika ogonowego. Wartości dodatnie kanału CH5 określają wzmocnienie w trybie „heading lock”, a wartości ujemne w trybie „tail free” (jak łatwo zauważyć w tym miejscu konfiguracji Brain 2 stosuje skalę od -100% do +100%). Oczywiście konfiguracja kontrolerów Brain 2 jest o wiele bardziej złożona. Jednak pozostałe opcje nie mają wpływu na konfigurację OpenTX, a jednocześnie przedmiotem tego opracowania nie jest konfiguracja FBL. Dlatego nie będziemy zagłębiali się w pozostałe parametry konfiguracyjne kontrolera Brain 2. Obsługiwane funkcjonalności Zanim przejdę do szczegółowego opisu realizacji, opiszę jakie funkcjonalności będą przypisane do poszczególnych przełączników i potencjometrów aparatury RC. Oczywiście podane niżej, konkretne przełączniki zostały wybrane wyłącznie na podstawie osobistych preferencji. W OpenTX można przypisać dowolny przełącznik (czy potencjometr) do dowolnej funkcji. Przełącznik SF – tzw. "Kill-switch" Wszystkie modele RC mogą być potencjalnie niebezpieczne. Kill-switch – czyli przełącznik bezpieczeństwa – powinien być elementem konfiguracji każdego większego modelu. Przełącznik SF↓ (do siebie) powoduje bezwarunkowe wyłączenie silnika (bez względu na pozycje innych przełączników). W przypadku silnika nitro realizowane jest to przez całkowite zamknięcie przepustnicy. SF↑ powoduje „uzbrojenie silnika”, w przypadku silnika nitro przestawienie przepustnicy w pozycję biegu jałowego (ang. idle). Notka: Przełącznik SF – jako jedyny w naszym przykładzie – jest aktywny w pozycji SF↑ (tj. powoduje zadziałanie, w tym przypadku „uzbrojenie” silnika, w pozycji przełącznika od siebie). Taka konfiguracja zapewnia dodatkowe bezpieczeństwo użytkowania modelu. Odkładając radio na podłoże, aktywny przełącznik SF↑, będący w pozycji od siebie (w przypadku tego przełącznika jest to de-facto pozycja do dołu), zostanie co najwyżej przypadkowo przełączony w pozycję SF↓ (do siebie i w przypadku tego akurat przełącznika do góry). W ten sposób nastąpi jedynie wyłączenie silnika, a nie jego niekontrolowany start (w przypadku helikopterów jest jeszcze przełącznik Throttle-Hold / Spool-Up, ale bezpieczeństwa nigdy za wiele). Przełącznik SA – Throttle-Hold / Spool-Up W pozycji SA↓ powoduje zmianę wartości kanału Throttle (CH3), powodując rozruch silnika (Spool-Up) do poziomu określonego przełącznikiem Idle-Up (Idle-Up 1, 2 lub 3). W każdej innej pozycji (SA↓, SA–) powoduje pracę silnika na biegu jałowym, tzw. Throttle-Hold. Poziom biegu jałowego może być regulowany na bieżąco trymem Throttle, ale tylko gdy przełącznik SA jest w pozycjach Throttle-Hold (trymowanie poziomu biegu jałowego podczas lotu jest nieaktywne, aby uniknąć przypadkowego przestawienia poziomu biegu jałowego). Przełącznik SB – Idle-Up Poszczególne pozycje przełącznika (SB↑, SB–, SB↓) odpowiadają trzem poziomom obrotów silnika, ustawionym w governorze kontrolera Brain 2. Przełącznik SC – Tryby Lotu Poszczególne pozycje przełącznika (SC↑, SC–, SC↓) odpowiadają trzem trybom (stylom) lotu zdefiniowanym w kontrolerze Brain 2. Tryb trzeci zakłada brak governora i sterowanie przepustnicą przy pomocy tradycyjnej krzywej Throttle. Przełącznik SD – Heading Lock W pozycjach SD↑ oraz SD– kontroler FBL działa w tzw. trybie Heading Lock, tj. utrzymywania odchylenia (ang. yaw) modelu. W pozycji SD↓ belka ogonowa helikoptera jest „uwolniona” (ang. Tail Free lub Rate Mode), tj. helikopter obraca się pod wpływem sił aerodynamicznych działających na model. Przełącznik SH – Rescue W pozycji SH↓ aktywowana jest funkcja „rescue” (ratuj) kontrolera Brain 2, czyli awaryjne auto-poziomowanie helikoptera. Notka: SH to przełącznik chwilowy, a MSH rekomenduje, aby procedura „rescue” kontrolerów Brain 2 została wykonana w całości, do końca. Po aktywacji, przełącznik należy zatem trzymać w pozycji SH↓ aż do momentu całkowitego wypoziomowania helikoptera i nabrania wysokości (jeśli został ustawiony czas z dodatnim skokiem łopat wirnika głównego). Ewentualnie można funkcję „rescue” przypisać do innego wolnego przełącznika, który nie będzie przełącznikiem chwilowym, ale zwykłym, tj. pozostającym w danej pozycji. Przełącznik SG – Odczytywanie wybranych parametrów telemetrycznych W pozycjach SG– i SG↓ co 15 sekund odczytywane są głosowo wartości wybranych parametrów telemetrycznych. W użytym przykładzie odpowiednio prędkość obrotowa wirnika głównego RPM oraz temperatura silnika GTp1. Potencjometr obrotowy S2 – wzmocnienie P dla wirnika ogonowego Parametr wzmocnienia P dla wirnika ogonowego jest tym, od którego zalecane jest rozpoczęcie procesu dostrajania parametrów regulatora PID kontrolera Brain 2. Do potencjometru obrotowego S2 przypisane będą wartości odpowiadające zakresowi żądanej regulacji. Brain 2 zaleca rozpoczęcie dostrajania od wartości 45%, więc zakres można ustawić na np. 35-55%, z wartością 45% przypadającą na środek regulacji. Drążki i trymy Drążki skonfigurowane są w sposób standardowy, a trymy wyłączone. Trym Throttle będzie obsługiwany w specjalny sposób, zapewniający wygodne ustawienie obrotów biegu jałowego silnika nitro. Expo i zakresy maksymalne Parametry expo (czyli zmienna czułość drążków wg krzywej wykładniczej) oraz zakresy maksymalne wychyleń będą regulowane w radiu (nie w kontrolerze Brain 2) i powiązane będą z wyborem trybów lotu (przełącznik SC). Jak pisałem wcześniej, umiejscowienie tych parametrów w konfiguracji OpenTX, a nie w konfiguracji Brain 2, umożliwia łatwą zmianę expo z poziomu radia, bez konieczności podłączania się via Bluetooth lub USB do kontrolera FBL. Taki wybór podyktowany jest wyłącznie wygodą zmiany parametrów expo w trakcie ustawiania helikoptera. Z technicznego punktu widzenia nie ma większego znaczenia, czy expo będą zdefiniowane w radiu, czy kontrolerze FBL. Należy natomiast unikać podwójnego konfigurowania expo (tzn. jednocześnie w radiu i kontrolerze FBL). Failsafe Failsafe odbiornika zostanie skonfigurowany w taki sposób, aby wycentrować drążki, przymknąć przepustnicę do biegu jałowego (Throttle-Hold), aktywować funkcję „rescue” kontrolera Brain 2 oraz ustawić minimalny, dodatni skok łopat. Dzięki temu w razie ewentualnej utraty połączenia RC model ma szansę na stosunkowo łagodne lądowanie (na pewno z mniejszymi szkodami, niż gdyby tylko wyłączyć silnik, albo w ogóle nie skonfigurować failsafe). Co bardzo istotne, takie ustawienie failsafe daje także szansę na odzyskanie kontroli. Inną opcją (na pewno w przypadku modeli z silnikiem elektrycznym) jest całkowite wyłączenie silnika. W przypadku silnika nitro oznacza to jednak brak możliwości ponownego startu w powietrzu i konieczność lądowania auto-rotacyjnego. Z drugiej strony w przypadku kraksy modelu z pracującym silnikiem (nawet na biegu jałowym) istnieje możliwość niekontrolowanego ponownego rozruchu silnika, ze wszystkimi tego konsekwencjami. UWAGA: Pozostawiam do indywidualnej oceny i wyboru, czy dla silnika nitro bezpieczniej jest pozostawić kanał Throttle jako failsafe w pozycji biegu jałowego, czy jego całkowite zgaszenie / wyłączenie. Opisywane wyżej ustawienia failsafe stosuję na własny użytek i mogą one stanowić pewną wskazówkę lub inspirację, ale każdy modelarz musi sam ocenić jakie ustawienia failsafe są właściwe dla danego modelu i miejsca, w którym lata. W razie wypadku lub awarii modelu każdy z nas jest indywidualnie odpowiedzialny za spowodowane szkody, a failsafe nie zastępuje zdrowego rozsądku, ani dobrego ubezpieczenia OC. Więcej o funkcjonalności failsafe: Failsafe - niedoceniana funkcjonalność Failsafe odbiorników FrSky Timery Zostaną skonfigurowane dwa liczniki (timery): Flight – odliczający czas trwania lotu, od zera Fuel – odliczający czas w dół, od zadanej ilości minut dobranych tak, by informować o rezerwie paliwa Oba timery będą startowanie automatycznie, ale dopiero w sytuacji, gdy zostanie uzbrojony silnik (przełącznik Kill-switch SF↑) oraz – jednocześnie, ale tylko po raz pierwszy w danym locie – zostanie uruchomiony wirnik główny (przełącznik Spool-Up SA↓). Kolejne przełączanie SA nie będzie powodować zatrzymania liczników. Dzięki temu można wielokrotnie przeprowadzać procedurę auto-rotacji, a timery będą kontynuować odliczanie bez przerw. Timery zostaną zatrzymane dopiero po zgaszeniu silnika (przełącznik Kill-switch SF↓). Alarmy / komunikaty głosowe Do każdego, używanego przełącznika zostanie przypisany komunikat głosowy, tak by w opisowy sposób i bez potrzeby spoglądania na ekran, uzyskać potwierdzenie aktywowania żądanej funkcji. Dodatkowo, na przełączniku SG, zostanie podpięte odczytywanie wartości parametrów telemetrycznych RPM i GTp1 (odpowiednio obroty wirnika głównego i temperatura silnika mierzona na tylnej płycie silnika nitro). Dla kluczowych parametrów telemetrycznych zostaną ustawiona alarmy głosowe i wibracyjne: RXBt – gdy napięcie RxBt (zasilania elektroniki i serwomechanizmów) spadnie poniżej 7.4V (mierzone przez więcej niż 3 sekundy, aby uniknąć zbyt wczesnych komunikatów w przypadku chwilowych spadków napięcia lub napięcia oscylującego na granicy 7.4V). Alarm będzie komunikatem głosowym, odczytywanym co 20s, połączonym z alarmem wibracyjnym aktywowanym co 60s. Alarm ten będzie automatycznie kasowany, gdy napięcie wróci do poziomu 8.0V. GTp1 – gdy temperatura na tylnej płycie silnika przekroczy 49°C zostanie aktywowane głosowe odczytywanie temperatury co 10s oraz zostanie aktywowany alarm wibracyjny co 30s. Jest to szczególnie przydatne w trakcie docierania silnika, chroni przed jego zatarciem. Alarmy wibracyjne są dodatkowym zabezpieczeniem w razie, gdyby regulacja głośności w radiu została ustawiona na minimum lub zbyt cicho. Regulację głośności można przypisać w konfiguracji OpenTX radia (nie modelu) do dowolnego potencjometru, w naszym przypadku do S1. Przy aktywacji modelu będziemy sprawdzać, czy potencjometr S1 jest w pozycji maksymalnej głośności. Logowanie zdarzeń Logowanie wybranych parametrów telemetrycznych będzie włączane tak samo jak timery, tj. kiedy przełączniki Kill-switch oraz jednocześnie Spool-Up – ale Spool-Up tylko po raz pierwszy w danym locie – będą aktywowane. Zatrzymanie logowania nastąpi po zgaszeniu silnika. W momencie aktywacji logowania zostanie także zresetowany parametr GAlt, czyli wysokość GPS względem poziomu morza. Dzięki resetowi, zamiast poziomu morza jako poziom odniesienia zostanie ustawiona aktualnie odczytywana wysokość GPS. Wszelkie kolejne pomiary będą podawane i logowane względem tej wysokości, w praktyce dając dość dokładny zapis wysokości lotu względem punktu startu. Należy pamiętać, że szczególnie pierwsze uruchomienie czujnika GPS v2 może zając nieco czasu, nawet do kilku minut (zwykle 1-3 min). Warto te kilka minut poczekać, dzięki temu pomiary GPS będą bardziej dokładne. Ekrany telemetryczne Zostanie ustawionych kilka przykładowych ekranów telemetrycznych, pokazujących najważniejsze parametry oraz podgląd kanałów RC. Implementacja Poniżej skoncentruje się już na zaprezentowaniu i dosyć szczegółowym omówieniu konfiguracji OpenTX Companion, realizującej zaprezentowane wcześniej założenia. OpenTX Companion – zakładka Setup (Ustawienia) W zakładce Setup ustawia się podstawowe parametry modelu, takie jak nazwa, zdjęcie, parametry bindowania odbiornika, etc. W artykule skupimy się na sekcjach timerów, ostrzeżeń oraz failsafe. Istotnym parametrem – który nie zawiera się w żadnej z wymienionych wyżej sekcji – jest parametr Extended Limits (Rozszerzone Limity). Do pełnego zrozumienia działania tej opcji niezbędna jest wiedza o tym jak działają reguły zakładek Inputs (Wejścia), Mixes (Miksery) oraz Outputs (Wyjścia), dlatego opcję Extended Limits omawiam dopiero przy okazji omawiania zakładki Outputs. W tej chwili napiszę tylko, że z mojego doświadczenia wynika, że kontroler Brain 2 wymaga zaznaczenia tej opcji. Timery (liczniki) Timery liczą czas, gdy przypisany do nich przełącznik jest aktywny. W najprostszej konfiguracji wystarczy przypisać dowolny przełącznik, np. Kill-switch i timer będzie odliczał czas, kiedy przełącznik pozostanie aktywny, czyli np. w pozycji SF↑, jeśli taka zostanie przypisane do licznika. W naszym przykładzie jednak chcemy, aby timer odliczał czas od chwili, kiedy po raz pierwszy uruchomiony zostanie wirnik główny (Kill-switch + SpoolUp), do momentu wyłączenia silnika przełącznikiem Kill-switch. Jednocześnie licznik na działać bez przerw, nawet gdy w międzyczasie wielokrotnie przełączymy Throttle-Hold / Spool-Up, np. aby ćwiczyć lądowanie auto-rotacyjne. Takiej funkcjonalności nie da się osiągnąć zwykłym przełącznikiem. OpenTX posiada jednak wirtualne przełączniki logiczne, które można użyć w konfiguracji tak samo jak przełączniki fizyczne. Przełącznikami logicznymi można jednak sterować w zaawansowany sposób, używając funkcji logicznych, zależności czasowych, wyzwalania w przypadku zaistnienia określonych warunków i wiele więcej. Przełączniki logiczne oznaczone są wielką literą L i numerem, składającym się z dwóch cyfr, np. L07. OpenTX oferuje 64 przełączniki logiczne. Każdy przełącznik logiczny może przyjmować dwa stany: aktywny / logiczna wartość: prawda nie aktywny / logiczna wartość: fałsz W tym miejscu konieczne jest wyjaśnienie, kiedy przełącznik OpenTX (każdy, fizyczny lub logiczny) będzie uważany za aktywny na potrzeby definiowania reguł na ekranie Logical Switches. Przełącznik fizyczny uważany będzie za aktywny, kiedy będzie pozostawał w określonej (oczekiwanej) pozycji. Np. SF przełączony od siebie, czyli SF↑. Przełącznik logiczny będzie aktywny, gdy zostaną określone warunki zdefiniowane regułami w zakładce Logical Switches, np. gdy jednocześnie dwa przełączniki fizyczne będą w określonych pozycjach, gdy gdy wartość napięcia będzie poniżej 7.4V dłużej niż 3 sekundy, etc. Do osiągnięcia zamierzonego celu sterowania timerami, używam przełącznika L02, skonfigurowanego w zakładce Logical Switches w następujący sposób: Definiowanie przełącznika logicznego L02 rozpoczyna się od zdefiniowania prostszego przełącznika L01, który będzie aktywny, jeśli jednocześnie będą aktywne (logicznie prawdziwe) przełączniki Kill-switch oraz Spool-Up (odpowiednio SF↑ oraz SA↓). Nie możemy jednak użyć L01 bezpośrednio do sterowania licznikami. Przestanie on być aktywny za każdym razem, gdy aktywujemy funkcję Throttle-Hold (gdyż przełącznik SA przestanie być w pozycji SA↓). Przy każdym uaktywnieniu Throttle-Hold timery zatrzymywałyby się. Dlatego w drugiej linii definiuję przełącznik logiczny L02, korzystając z funkcji specjalnej „sticky” (ang. klejący). Funkcja ta działa w taki sposób, że uaktywnia przełącznik w momencie aktywacji swojego pierwszego parametru (kolumna V1), następnie pozostawia przełącznik aktywny („przyklejony”), do czasu aż prawdziwy stanie się drugi warunek, zdefiniowany w kolumnie V2. W naszym przykładzie mamy następującą definicję L02: L02 Sticky L01 SF↓ W tym przypadku funkcja Sticky powoduje, że przełącznik L02 stanie się aktywny po aktywacji przełącznika L01. Następnie – bez względu na stan L01 (czyli możemy wielokrotnie przełączać Throttle-Hold / Spool-Up) L02 pozostaje aktywny, do czasu, gdy aktywny stanie się przełącznik SF↓. Czyli innymi słowy, do czasu aż zgasimy silnik. Rozumiejąc już jak działa przełącznik L02, możemy wrócić do timerów. Definiujemy dwa timery: Flight – odliczający od 00:00:00 (przy takiej definicji timer będzie odliczał do przodu), podając co minutę głosowy komunikat o upływającym czasie (opcja „Minute call”). Fuel – odliczający od 00:07:00 (czyli 7 minut, przy zdefiniowaniu jakiejkolwiek wartości licznik będzie automatycznie odliczał w dół). Po upływie zadanego czasu timer wyzwoli automatyczny komunikat głosowy powiadamiający o tym, że czas danego licznika upłynął. Oba liczniki zdefiniowane są jako „Non persistent”, tzn. ich wartość nie będzie zapisywana na stałe i będzie resetowana dla każdego lotu. Wartości zapisywane na stałe („Persistent: manual reset”) mogą się przydać np. do mierzenia całkowitego czasu, jaki model spędził w powietrzu. Ich wartości będą zapisywane w pamięci radia, do czasu manualnego i celowego ich zresetowania. Oba liczniki stają się aktywne (zaczynają odliczać) przez cały czas, kiedy przełącznik L02 pozostaje aktywny. Jak zatem widać, cała logika naszej założonej funkcjonalności została tak naprawdę zrealizowana w dwóch liniach definicji przełącznika logicznego L02. Przełączniki logiczne to potężne narzędzie OpenTX, oferujące praktycznie nieskończone możliwości konfiguracyjne. Ostrzeżenia (ang. Warnings) W sekcji ostrzeżeń określamy domyślne położenie przełączników i potencjometrów. W trakcie uruchamiania radia, przy zmianie modelu oraz przy resecie lotu zadane pozycje zostaną sprawdzone z faktycznymi pozycjami przełączników radia. Jeśli przełączniki nie będą w żądanych pozycjach OpenTX wyświetli ostrzeżenie, które zostanie zamknięte po przełączeniu wszystkich przełączników w oczekiwane pozycje lub celowego zignorowaniu ostrzeżenia. Mechanizm ten ma na celu zwiększenie bezpieczeństwa użytkowania modeli, przez uniknięcie przypadkowej aktywacji funkcji, w szczególności przypadkowego rozruchu silnika. Nie ma to może aż takiego znaczenia dla silników spalinowych, ale ma pierwszorzędne znaczenie modeli z silnikami elektrycznymi. W naszym przykładzie chcemy, aby wszystkie przełączniki były w pozycjach od siebie ↑, czyli domyślnie nieaktywne. Wyjątkiem jest SF, którego domyślną pozycją jest SF↓, z powodów, które opisałem wcześniej. Sprawdzamy także położenie dwóch potencjometrów: S1 powinien być w pozycji maksymalnej (upewniamy się, że komunikaty głosowe będą słyszalne), a S2 w pozycji środkowej (odpowiadającej środkowemu zakresowi „tail gain”). Nie jest mi znany sposób ustawienia konkretnych pozycji potencjometrów w OpenTX Companion, ale w OpenTX w radiu można ustawić konkretną pozycję potencjometru poprzez dłuższe przyciśnięcie przycisku ENTER podczas edycji ostrzeżenia dla danego potencjometru. Oczywiście, z punktu widzenia OpenTX, nic się nie stanie, jeśli przełączniki lub potencjometry będą w innych pozycjach, a my zignorujemy ostrzeżenie. Ważne jest jednak, abyśmy byli świadomi jakie funkcje są aktywne lub w jakim są stanie w momencie uruchamiania konfiguracji modelu w OpenTX. Jest jeszcze jedna opcja dot. ostrzeżeń, w sekcji Model zakładki Setup. Chodzi o Throttle warning. Dla większości modeli opcja ta powinna być zaznaczona, gdyż w momencie uruchamiania modelu, ze względów bezpieczeństwa, przepustnica gazu (ang. throttle) powinna być zamknięta. W przypadku omawianej konfiguracji helikoptera pozycja drążka Throttle nie ma jednak najmniejszego znaczenia, gdyż kanał gazu CH3 nie jest sterowany drążkiem. Dlatego opcja Throttle warning jest odznaczona, a OpenTX nie będzie ostrzegał o położeniu drążka Throttle. Failsafe W sekcji failsafe ustawiamy pozycje wszystkich ośmiu kanałów, które odbiornik ustawi, w razie gdyby utracił połączenie z nadajnikiem. Notka: Chodzi o konkretne wartości kanałów, w skali od -100% do 100%. Kanały Ailerons (CH1), Elevator (CH2), Rudder / Tail (CH4) ustawiamy na zero, czyli pozycję neutralną odpowiadających im drążków. Kanał Throttle (CH3) ustawiamy na wartość odpowiadającą pozycji Throttle-Hold. Dzięki temu wirniki modelu nie będą napędzane, ale w razie odzyskania połączenia model będzie w pełni sterowalny. Kanał TGain (CH5) ustawiamy na wartość, którą normalnie użytkujemy w locie, zwykle jest to wartość środkowa potencjometru S2. Kanał Pitch (CH6) ustawiamy na wartość odpowiadającą kątowi 0° (lub lekko dodatniemu) nachylenia łopat wirnika głównego. Chodzi o to, aby model opadał, ale jednocześnie, aby wirnik obracał się, jak długo to możliwe, wytwarzając choć minimalną nośność). Kanał Setup (CH7) ustawiamy na pierwszy tryb lotu. Kanał Aux (CH8) ma chyba najważniejsze zadanie. W kontrolerze Brain 2 odpowiada on za aktywację funkcji „rescue”, czyli awaryjnego auto-poziomowania modelu. W przypadku wystąpienia sytuacji failsafe (czyli utraty połączenia RC), odpowiednie ustawienie tego kanału aktywuje funkcję „rescue” kontrolera Brain 2 i będzie ją utrzymywało do czasu odzyskania połączenia RC lub wyłączenia zasilania. W rezultacie model wypoziomuje się, wykona wznoszenie przez zadany czas (jeśli tak została skonfigurowana funkcja „rescue” w Brain 2, domyślnie jest to 0.6 sek), a następnie Brain 2 będzie starał się utrzymywać pozycję poziomą modelu podczas opadania (funkcja „rescue” pozostaje aktywna). W połączeniu z prawie neutralnym kątem nachylania łopat i neutralnymi położeniami drążków mamy szansę: odzyskania połączenie RC, a z nim kontrolę nad modelem i możliwość wykonania auto-rotacji lub nawet – jeśli silnik nie został zgaszony - kontynuowania normalnego lotu (oczywiście i tak zalecane było by jak najszybsze lądowanie i sprawdzenie przyczyny utraty zasięgu) że model będzie opadał w miarę łagodnie i poziomo, w najgorszym razie minimalizując ewentualne straty OpenTX Companion – Zakładka Heli W tej zakładce konfiguruje się opcje wyłącznie, jeśli to OpenTX ma odpowiadać za miksowanie serwomechanizmów głowicy wirnika głównego helikoptera (cyclic), a zatem zwykle dla helikopterów flybar. Przy korzystaniu z kontrolerów flybarless opcje z tej zakładki nie są wykorzystywane (do kontrolerów FBL przesyłane są bezpośrednio wszystkie kanały, także z drążków Ailerons, Elevator, Throttle i Rudder; to kontroler flybarless odpowiedzialny jest za ich odpowiednie miksowanie i oczywiście wiele więcej). Zakładka Heli może być w ogóle nieaktywna (niewidoczna). Zależy to od tego, czy została ona wybrana przy kompilacji i wgrywaniu OpenTX. OpenTX Companion – Zakładka Flight Modes (Fazy lotu) Fazy lotu pozwalają na zdefiniowanie różnych ustawień modelu, które można następnie aktywować przełącznikiem. Zależnie od aktualnie wybranej fazy lotu można także wykonywać różne inne działania, np. aktywować określone reguły w mikserze kanałów. Dana faza lotu może być aktywowana natychmiast, tj. niezwłocznie po przełączeniu lub może być aktywowana jako płynna transformacja z jednej fazy lotu do innej, zgodnie z zadanymi parametrami Fade In oraz Fade Out (odpowiednio spowolnienie aktywacji, spowolnienie wyłączania faz lotu; parametry te podawane są w sekundach, z dokładnością do dziesiętnej części sekundy). OpenTX pozwala na zdefiniowanie do dziewięciu faz lotu, numerowanych od 0 do 8. w dalszym tekście będę je często określał jako FM0, FM1, FM2, etc. FM0 jest domyślnie aktywowana przy uruchamianiu modelu w OpenTX. FM1-FM8 trzeba aktywować za pomocą przełącznika. Do realizacji założeń projektu zostaną wykorzystane trzy fazy lotu: Flight Mode 0 (Normal) Flight Mode 1 (Sport) Flight Mode 2 (No Gov) W konfiguracji faz lotu definiujemy między innymi nazwę fazy lotu. Nazwa aktywnej fazy lotu wyświetlana jest na ekranie aparatury RC. Dla helikopterów flybarless trymy drążków nie mają praktycznego zastosowania. Dlatego, aby uniknąć przypadkowego ich użycia, zostaną one wyłączone dla wszystkich trzech trybów (and. Trim disabled). Jednym z ciekawszych funkcjonalności trybów lotu są zmienne globalne (ang. global variables), których wartości są wykorzystywane w innych miejscach konfiguracji OpenTX. Każdy tryb lotu oferuje 9 niezależnych zmiennych, numerowanych od 1 do 9, którym można także nadawać trzyliterowe nazwy. Zmienne globalne używane są do definiowania wartości, które wykorzystywane są wielokrotnie, w różnych miejscach konfiguracji. Np. wartość expo można przypisać w mikserze jako konkretną wartość, dla każdego kanału oddzielnie (załóżmy, że jest to takie samo expo dla lotek, stery wysokości i steru kierunku). Jednak gdybyśmy chcieli zmienić wartość tak skonfigurowanego expo, trzeba by było edytować oddzielnie każdą z co najmniej trzech linii konfiguracji miksera. Przy wykorzystaniu zmiennych globalnych zmiany trzeba dokonać tylko w jednym miejscu. Mało tego, można tę wartość powiązać np. z jednym z potencjometrów i płynnie zmieniać wartość expo w locie, dla wszystkich kanałów naraz. Innym zastosowaniem zmiennych globalnych jest określanie wartości, które chcemy następnie dynamicznie zmieniać, bez konieczności wchodzenia do menu konfiguracji OpenTX. Zmienne globalne można zmieniać poprzez przełączanie faz lotu lub za pomocą funkcji specjalnych, np. poprzez przypisanie przełącznika zwiększającego, zmniejszającego lub nadpisującego wartość danej zmiennej. Zdefiniujemy następujące zmienne globalne: GVAR1 – EXC (skrót od ang. expo cyclic, dla kanałów Ailerons oraz Elevator) GVAR2 – EXT (skrót od ang. expo tail, dla kanału Rudder) VAR3 – EXP (skrót od ang. expot pitch, dla kanału Pitch) GVAR4 – TRV (skrót od ang. travel, maksymalny zakres pracy) GVAR5 – TH (skrót od ang. throttle hold, wartość położenia przepustnicy dla throttle hold) Każdej zmiennej przypisujemy wartość numeryczną, którą ta zmienna będzie przechowywała. Wartości expo są oczywiście zależne od osobistych preferencji. W naszym przykładzie (dla fazy FM0) jest to 35 dla Cyclic, 50 dla Tail, oraz 10 dla Pitch. Wartość zmiennej TRV dla fazy lotu nr 0 definiujemy jako 80. Zmienną tę wykorzystamy później przy definiowaniu wejść (ang. inputs) do ograniczenia zakresu pracy Cyclic oraz Tail dla FM0. Dzięki temu w tej fazie lotu model będzie nieco mniej wrażliwy na ruch drążków, co może być pomocne dla początkujących pilotów. Wartość zmiennej TH będzie określała wartość kanału Throttle dla biegu jałowego silnika (tzw. Throttle-Hold) i została dobrana doświadczalnie. Ze względu na swoją naturę (położenie przepustnicy dla biegu jałowego powinno być zawsze takie samo, przynajmniej w danym locie) wartość ta będzie taka sama dla każdej fazy lotu. Dodatkowo dla zmiennej TH zdefiniowane zostały ograniczenia wartości minimalnej i maksymalnej, odpowiednio 0 oraz 30. Dzięki temu zmienna TH nie będzie mogła przyjąć wartości ujemnych (chronimy serwo Throttle) ani większych niż 30 (nie pozwalamy na zbyt wysokie obroty biegu jałowego). Notka: Niestety w obecnej wersji OpenTX (2.2.3) jest błąd, który nie pozwala na zdefiniowanie ujemnego skoku inkrementacji zmiennej globalnej, gdy zdefiniowana minimalna wartość tej zmiennej wynosi zero. Dlatego – dopóki ten błąd nie zostanie poprawiony – trzeba tutaj zdefiniować taką ujemną wartość, o jaką zamierzamy zmniejszać wartość TH w zakładce funkcji specjalnych (w naszym przykładzie -0.5, zdefiniowana w regule SF30 w zakładce funkcji specjalnych). Błąd ten jest już zgłoszony do programistów OpenTX, zatem możliwe, że w aktualnej wersji OpenTX problem ten już nie występuje i można zdefiniować tutaj wartość zero. Łatwo sprawdzić, czy błąd został poprawiony przez wpisanie zera jako wartości minimalnej, a następnie spróbowanie wpisania ujemnej wartości w regule SF30 w zakładce funkcji specjalnych. Jeśli się nie da, to błąd ciągle występuje i trzeba jako wartość minimalną zdefiniować -0.5. Wartość zmiennej TH będzie zmieniana przy pomocy przełącznika trymu Throttle, ale w specjalny sposób, nie za pomocą standardowych mechanizmów trymowania drążków. Trymy drążków mamy zresztą wyłączone, w każdej z faz lotów. Nie oznacza to jednak, że nie możemy z nich korzystać, tak jak z każdego innego przełącznika w OpenTX. Opiszę to szczegółowo w dalszej części artykułu. Do zmiennych globalnych w fazie lotu nr 0 można przypisać wyłącznie wartości numeryczne, a także zdefiniować jednostkę, dokładność zmiennej (wartości całkowite "0._", lub do części dziesiętnych "0.0") oraz minimalne i maksymalne zakresy. Wszystko to oddzielnie dla każdej zmiennej: Dla faz lotu 1-8 zmienne mogą mieć oddzielne wartości per faza lotu (ang. Own value), lub mogą przyjmować wartości zdefiniowane w innych fazach lotu. W przykładzie poniżej w fazie lotu nr 1, zmienna TH ma wartość, którą zdefiniowaliśmy w domyślnej fazie lotu (FM0). Pozostałe zmienna mają swoje wartości, inne niż w pozostałych fazach lotu: Jeśli wartości zmiennych będą zmieniane w trakcie użytkowania (np. ustawianie poziomu obrotów biegu jałowego), zostaną one zapamiętane i przy ponownym włączeniu radia zostaną odczytane ich ostatnie wartości. Fazy lotu, inne niż domyślna FM0, aktywuje się za pomocą przełącznika. W naszym przykładzie SC– dla FM1: oraz SC↓ dla FM2: Jak widać na ekranach powyżej, w fazie lotu Sport definiujemy nieco bardziej czułe wartości EXC, EXT oraz EXP. Ustawiamy także pełny zakres (100 zamiast 80) dla zmiennej TRV, co przełoży się sposób, w jaki będzie pracowały kanały Cyclic i Tail. W fazie lotu No Gov, używamy tych samych wartości expo i zakresu, jak dla FM0, choć zdefiniowanych wprost, jako wartości liczbowe. Reasumując, aktywując poszczególne fazy lotu, możemy zmieniać wartości przechowywane w zmiennych globalnych. Zmienne te możemy potem używać w różnych miejscach konfiguracji, zamiast podawania konkretnych wartości. Umożliwia to zmianę wartości w jednym miejscu, ale efekt ten zmiany będzie widoczny wszędzie tam, gdzie dane zmienna została użyta. Zdefiniowane zmienne można także zmieniać dynamicznie, bez potrzeby wchodzenia w menu konfiguracji, za pomocą funkcji specjalnych. Zmienne globalne będziemy wykorzystywać już w następnej zakładce konfiguracji OpenTX Companion. OpenTX Companion – Zakładka Inputs (Wejścia) Filozofia OpenTX opiera się na przetwarzaniu sygnałów wejściowych, powodujących określone działania na wyjściach systemu. W uproszczeniu można powiedzieć, że OpenTX odczytuje wartości wejść (np. pozycję drążka sterującego), następnie wykonuje działania zgodnie z zadaną konfiguracją (fazy lotu, wejścia, mikser, przełączniki logiczne, funkcje specjalne, telemetria), aby na końcu tego procesu wysterować w żądany sposób kanały wyjściowe. Wyjściami w OpenTX są kanały wysyłane jako sygnały sterujące do odbiornika RC. OpenTX potrafi wysterować aż do 32 kanałów. Przy czym np. protokół FrSky ACCST ogranicza tę liczbę do 16 dla jednego modułu nadawczego (co i tak jest całkiem sporą ilością kanałów). Gdyby potrzeba było wykorzystać więcej niż 16 kanałów, można użyć dwóch modułów nadawczych (np. wewnętrzny moduł XJT wbudowany w każdego Taranisa czy Horusa, plus zewnętrzny moduł nadawczy XJT, montowany w gnieździe rozszerzeń z tyłu obudowy – razem 32 kanały). Wejściem w OpenTX może być praktycznie wszystko, oczywiście w ramach dostępnych w systemie komponentów: drążki sterujące trymy przełączniki fizyczne (zwykle dwu lub trzy pozycyjne) potencjometry (obrotowe lub suwakowe, regulowane płynnie lub np. 6-pozycyjne) przełączniki logiczne wyjścia (wartości kanałów wyjściowych) inne wejścia parametry telemetryczne (np. RSSI, popularnie wykorzystywany do wysyłania wartości wskazania siły odbieranego sygnału RC, z powrotem do odbiornika, jako jeden z kanałów, do wykorzystania przez kontrolery lotu w modelu) parametry Cyclic (jeśli zakładka heli jest aktywna) wyjścia skryptów LUA (język programowania do pisania prostych programów, które mogą być uruchamiane w OpenTX) wartość specjalna "MAX" Każde zdefiniowane wejście staje się parametrem, który może być następnie wykorzystany w innych miejscach konfiguracji OpenTX. W szczególności w mikserze, który będę opisywał w następnej sekcji artykułu. Wejścia OpenTX oznaczane są wielką literą I (od ang. Input) oraz numerem, np. I3. OpenTX obsługuje maksymalnie do 32 wejść. W zakładce Inputs definiujemy reguły (jedna linia to jedna reguła) przypisane do danego wejścia. Do jednego wejście można przypisać wiele reguł, ale w przykładowej konfiguracji nie korzystam z tej możliwości, pozostając przy jednej regule per wejście: Definiujemy zatem sześć reguł wejść, którym nadajemy nazwy (max. czteroliterowe): I1 (Ail) – źródłem dla tego wejścia jest fizyczny drążek Ailerons (lotki), a mówiąc ściślej wartość od -100% do +100% powiązana proporcjonalnie z ruchem w osi poziomej prawego drążka sterującego (zakładając, że radio pracuje w MODE 2). Celowo używam tutaj określenia „fizyczny drążek”. Będzie to istotne później, gdy będę omawiał różnice między zdefiniowanym wejściem, a fizycznym „źródłem” z tym wejściem powiązanym. I2 (Ele) – fizyczny drążek Elevator (ster wysokości). I3 (Thr) – fizyczny drążek Throttle (przepustnica gazu). I4 (Rud) – fizyczny drążek Rudder (ster kierunku). I5 (Gain) – ang. wzmocnienie, fizyczny potencjometr obrotowy S2, którym będziemy dynamicznie (tj. w trakcie lotu) regulować wzmocnienie P dla wirnika ogonowego. I6 (Ptch) – źródłem dla tego wejście jest drążek Throttle (tak samo jak dla wejścia I3). Wejście I6 będzie jednak użyte do regulacji skoku (ang. pitch) łopat wirnika głównego helikoptera, dlatego definiujemy je jako zupełnie oddzielne, niezależne wejście. Każda linia zakładki Inputs zawiera regułę przypisaną do danego wejścia, zapisaną w skróconej postaci. Dla reguły I4 jest to: I4:Rud Rud Weight(+GV4:TRV) Expo(GV2:EXT) Po dwukrotnym kliknięciu w linię tej reguły otwiera się okno dialogowe, w którym można ustawić szczegółowe parametry danej reguły: Nazwa wejścia (ang. Input name) wykorzystywana potem w mikserze, zamiast lub obok identyfikatorów wejść (np. zamiast I4 mamy Rud). Nazwa linii (nazwa reguły; ang. Line name) wyświetlana jest przy danej linii w zakładce Inputs. Może być użyteczna jako notka lub komentarz, szczególnie gdy mamy przypisanych więcej reguł do jednego wejścia i chcemy sobie jakoś oznaczyć na przyszłość, co która reguła de-facto robi. Źródło (ang. Source) definiuje skąd dane wejście ma pobierać wartość. W powyższym przykładzie źródłem jest drążek Rudder. Jeśli trymy są włączone, w opcji Uwzględnij trymer (ang. Include Trim) możemy wybrać, czy dla danego źródła odpowiadający mu trym ma być brany pod uwagę. Waga (ang. Weight) określa procentowo, w skali od -100% do 100%, jaka część wartości źródła ma zostać przypisane do danego wejścia, np.: waga 100 oznacza, że wartość źródła będzie przypisana 1:1, np. drążek w pozycji 50% da na wejściu te same 50%. waga -100 oznacza, że wartość źródła zostanie zachowana, ale z odwróconym znakiem, np. drążek w pozycji 50% da na wejściu -50% waga 70 oznacza, że wartość źródła zostanie pomnożona przez 0.7 (70%), np. drążek w pozycji 50% da na wyjściu 35%. waga -30 oznacza, że wartość źródła zostanie pomnożone przez -0.3 (-30%), np. drążek w pozycji 50% da na wyjściu -15% etc. Waga może być wartość numeryczną, ale może być także zmienną globalną (GV, ang. Global Variable). W przykładzie używamy zmiennej GV4 (TRV). W ten sposób zmieniamy wartość zakresu pracy wejścia Rud (I4) w zależności od aktualnej wartości zmiennej TRV. Jak pamiętamy z poprzedniej części artykułu, zmienna ta zmienia swoją wartość wraz z wyborem fazy lotu (przybiera wartości 80 lub 100). Dzięki temu, że tej samej zmiennej używamy jako wagi (zakresu) także dla wejść Ail oraz Ele, w efekcie uzyskujemy zmienny zakres pracy dla cyclic i wirnika ogonowego, przełączane naraz, wraz z przełączaniem faz lotu. Jednocześnie konfiguracja wejść pozostaje bardzo prosta i klarowna, bez dużej ilości reguł. Dalej w oknie dialogowym konfiguracji reguły mamy przesunięcie (ang. Offset), z którego nie korzystamy. W skrócie przesunięcie powoduje dodanie wartości numerycznej (lub wartości przechowywanej w zmiennej globalnej) do wartości źródła, np. jeśli wartością źródła jest 30%, to po dodaniu przesunięcia 20, wartością wejścia będzie 50%. Następnie do reguły wejścia Rud przypisujemy krzywą (ang. Curve) typu Expo, o wartości przechowywanej w zmiennej EXT. Przypisanie zmiennej globalnej działa tak samo jak w przypadku wcześniej opisywanej wagi: wartość expo będzie zmieniała się wraz ze zmianami wartości zmiennej globalnej GV2 (EXT), co w naszym przykładzie następuje wraz ze zmianami faz lotu. W sekcji Fazy lotu (ang. Flight modes) określamy, w jakich fazach lotu dana reguła (linia w zakładce Inputs) ma być aktywna. W tym przypadku zaznaczamy, że ta reguła ma być aktywna we wszystkich dziewięciu fazach lotu (numerowanych 0-8). Widać tutaj, jak przydatne i użyteczne są zmienne globalne. Gdyby nie one, do osiągnięcia zakładanych funkcjonalności (np. zakresy i expo zmienne z fazami lotu) musielibyśmy zdefiniować trzy reguły dla każdego z wejść (Ail, Ele, Rud), przypisać im indywidualne wartości wagi i expo, a następnie zaznaczyć w których fazach loty dane reguły mają być aktywne. Dzięki użyciu zmiennych mamy tylko jedną regułę per wejście, a waga i expo zmieniane są niejako w tle, przez zmienne globalne. W oknie dialogowym definicji reguły Rud są jeszcze dwie opcje, których nie wykorzystujemy. Można daną regułę uczynić aktywną tylko wtedy, gdy aktywny jest przypisany do niej przełącznik (ang. Switch; przy czym definicja przełącznika jest dosyć szeroka, nie chodzi tylko o fizyczne przełączniki radia). Można także przypisać efekt działania reguły tylko do dodatniej lub ujemnej części osi danego drążka (ang. Stick Side), np. reguła dla drążka Throttle będzie aktywne, ale tylko powyżej 0% (czyli od pozycji środkowej w górę). Zakładka Inputs to dobre miejsce, aby zdefiniować wartości expo i zakresy pracy drążków sterowych. Dobrą praktyką jest też zdefiniowanie tutaj innych istotnych wejść. W naszym przykładzie jest to reguła I5, której źródłem jest potencjometr S2 służący do regulacji wzmocnienia P dla regulatora PID wirnika ogonowego; a także reguła I6, która będzie służyła jako wejście do sterowania ogólnym skokiem łopat wirnika głównego. Dzięki tak zdefiniowanym wejściom znacząco uprościmy reguły w zakładce miksera, a całość konfiguracji OpenTX będzie bardzo przejrzysta, z jasno rozdzielonymi blokami funkcyjnymi. OpenTX Companion – Zakładka Mixes (Miksery) Zamknięte systemy operacyjne aparatur RC tradycyjnych firm modelarskich zwykle bazują na pre-definiowanych szablonach konfiguracji modelu, w których wybiera się potem różne opcje, dostosowując funkcjonalność wybranego szablonu konfiguracyjnego do wymagań konkretnego modelu. Wszystko odbywa się jednak w ramach szablonów i opcji przewidzianych przez producenta. Często zdefiniowana jest nawet kolejność kanałów w odbiorniku, a serwomechanizmy trzeba podłączać do odpowiednio oznaczonych portów odbiornika (np. Ail, Ele, Thr, Rud, Aux, Gear, etc.). OpenTX działa inaczej. Szablonów nie ma wcale, a logika konfigurowania modelu polega na definiowaniu tego, co chcemy osiągnąć na wyjściach (portach) odbiornika RC. Niejako odwrotnie niż w przypadku zamkniętych systemów, gdzie zaczyna się od zdefiniowania typu modelu i przez konfigurację kolejnych opcji osiąga się bardzo określony efekt końcowy. Jak działa mikser OpenTX? Mikser jest „sercem” OpenTX. Planowanie konfiguracji modelu w OpenTX rozpoczynamy właśnie od miksera, a konkretnie od ustalenia, w jaki sposób mają się zachowywać kanały wyjściowe (porty) odbiornika, np.: wartość kanału CH4 ma być proporcjonalna do ruchu drążka steru kierunku wartość kanału CH2 ma być proporcjonalna do ruchu drążka steru wysokości wartość kanału CH8 ma być przyjmować wartość 0%, gdy przełącznik SA jest w pozycji środkowej; oraz wartość 100% gdy przełącznik SA jest w dowolnej innej pozycji wartość kanału CH16 ma być proporcjonalna do parametru telemetrycznego RSSI (-100% dla wartości 0% RSSI oraz +100%, gdy RSSI wynosi 100%). etc. (powyższe przykłady są wyłącznie poglądowe i nie mają związku z założeniami projektu, który realizujemy) W uproszczeniu kanały wyjściowe to nic innego jak porty odbiornika, do których przyłącza się serwomechanizmy lub które łączy się z kontrolerem lotu. Nowoczesne odbiorniki mogą także wysyłać wartości kanałów przez specjalny port – CPPM lub SBUS – i wysyłać je jednym kablem do np. kontrolera flybarless. Znacznie ogranicza to ilość kabli pomiędzy odbiornikiem a kontrolerem lotu. Więcej informacji o różnych typach portów stosowanych w modelarstwie RC opisałem w artykule Porty nie tylko FrSky. Normalnie wartość każdego kanału wyjściowego w OpenTX może zawierać się w granicach od -100% do +100%. Oznacza to, że np. drążek lotek wychylony całkowicie w lewo ustala wartość kanału na -100%, drążek w neutrum to 0%, a drążek wychylony maksymalnie w prawo to +100%. Informacja dodatkowa: W rzeczywistości wartość każdego kanału reprezentowana jest przez czas trwania impulsu (tzw. modulacja PWM). Czas trwanie impulsu w modelarstwie zawiera się zwykle w granicach od 1000µs (-100%) to 2000µs (+100%), z neutrum przypadającym na 1500µs (0%). Różni producenci stosują jednak nieco inne wartości graniczne (np. zakres 988-2012µs, lub neutrum w 1520µs; więcej informacji na ten temat znajduje się w przytoczonym już artykule Porty nie tylko FrSky). Z tego powodu czasem trzeba ustalać wartości wyjść kanałów na więcej niż +100% lub mniej niż -100%. Aby OpenTX zezwalał na operowanie rozszerzonym zakresem wartości, musi być zaznaczona opcja Extended Limits w zakładce Setup (Ustawienia), co rozszerza dostępny zakres do ±150%. W zakładce Mikser – podobnie jak w zakładce Inputs – definiowane są reguły (każda linia w zakładce Mixes to jedna reguła), określające w jaki sposób będą zachowywały się kanały wyjściowe. Reguły przypisane do danego kanału (jedna lub więcej reguł) definiują jakie parametry mają wpływ na wartość wyjściową miksera dla danego kanału. Mogą to być reguły bardzo proste (np. mapowanie 1:1 drążka sterującego) lub skomplikowane, z przypisanymi różnymi wagami, przesunięciem, krzywymi, aktywne tylko w określonych fazach lotu, etc. Parametry konfiguracyjne reguł omówię niżej. Do jednego kanału można przypisać więcej niż jedną regułę. Każda z nich może być w danym momencie aktywna lub nieaktywna, w zależności od stanu jednego z przełączników (fizycznych lob logicznych) i / lub w zależności od aktualnie wybranej fazy lotu. Jeśli w danym momencie, dla danego kanału, jest aktywna więcej niż jedna reguła, wtedy następuje ewaluacja reguł, linia po linii, w kolejności od góry do dołu listy mikserów. Efekt kolejno aktywnych reguł może być do siebie dodawany, mnożony lub nadpisywany. Początkowo może brzmieć to nieco skomplikowanie, ale tak naprawdę zasady są proste i wystarczy je poznać i zrozumieć, aby z powodzeniem stosować w praktyce. Postaram się to wyjaśnić na przykładach. OpenTX obsługuje do 32 kanałów wyjściowych, numerowanych od CH1 do CH32. Skrócony opis parametrów reguł miksera Tak wygląda zakładka Mixes, z regułami realizującymi założenia naszego projektu: W mikserze OpenTX każda lina jest regułą przypisaną do kanału wyjściowego. Do jednego kanału można przypisać jedną regułę, np. tak jak do kanału CH1: CH1:Ail I1:Ail Weight (+100%) ale można także do jednego kanału przypisać wiele reguł, np. do kanału CH6 przypisane są dwie reguły: CH6:Ptch I6:Ptch Weight (+100%) Flight mode (FM0:Normal) Curve (CV5:PT1) := I6:Ptch Weight (+100%) Flight mode (FM1:Sport, FM2:No Gov) Curve (CV6:PT2) Wartość wyjściowa każdego kanału ustalana jest na podstawie przypisanych do kanału i aktywnych w danej chwili reguł. Reguły można aktywować przełącznikami lub fazami lotu. Przyjrzyjmy się nieco bliżej dwóm kanałom, które przed chwileczką pokazaliśmy jako linie reguł zakładki Mixes. CH1:Ail I1:Ail Weight (+100%) co po podwójnym kliknięciu w regułę rozwija się jako okno dialogowe: Do kanału CH1 przypisane jest wejście I1 (Ail), czyli innymi słowy drążek sterowy lotek. Przypisane waga to 100% (wagi działają tak jak we wcześniejszym przykładzie, kiedy opisywałem zakładkę Inputs). Reguła nie ma przypisanego przełącznika (ang. Switch), ma za to ma przypisane fazy lotu (ang. Flight modes) i jest aktywna we wszystkich dziewięciu fazach lotu (FM0-FM8). Jako że waga to 100%, zatem ruch drążka lotek jest 1:1 mapowany na wartość kanału. W efekcie uzyskamy -100% dla całkowitego wychylenia drążka w lewo, 0% dla pozycji neutralnej drążka i +100% kiedy drążek będzie wychylony zupełnie w prawo. Oczywiście wartość kanału będzie przybierała wszystkie wartości pośrednie między -100% do +100%, proporcjonalnie do pozycji drążka, biorąc jednak pod uwagę expo i zakresy, które zdefiniowaliśmy dla wejście I1 w zakładce Inputs (dzięki temu nie musimy określać wartości expo ani zakresów tutaj, co upraszcza konfigurację miksera, czyni ją bardziej przejrzystą i łatwiejszą do późniejszego czytania). CH6:Ptch I6:Ptch Weight (+100%) Flight mode (FM0:Normal) Curve (CV5:PT1) := I6:Ptch Weight (+100%) Flight mode (FM1:Sport, FM2:No Gov) Curve (CV6:PT2) po podwójnym kliknięciu w każdą z linii otwiera następujące okna dialogowe: Obie reguły przypisane do kanału CH6 definiują I6 (Ptch) jako wejście, którego wartość będzie brana pod uwagę przy ustalaniu wartości wyjścia CH6. Jak pamiętamy z poprzedniej sekcji (zakładka Inputs) wejścia I6 (Ptch) uzależnione jest od ruchu drążka Throttle, który w helikopterach steruje także (czasem nawet tylko) skokiem łopat wirnika głównego (ang. pitch), a nie przepustnicą gazu. W obu regułach zastosowano wagę 100%, zatem drążek Throttle będzie 1:1 mapowany na wartość kanału CH6 – w efekcie dając 0° pitch dla drążka w neutrum, -12° pitch dla drążka w położeniu dolnym, oraz +12° pitch dla górnego położenia drążka. Przy czym przykładowe ±12° nie ma nic wspólnego z OpenTX. Wartości graniczne skoku łopat ustala się w Brain 2, w trakcie ustawiania zakresów pracy głowicy helikoptera. Rolą OpenTX jest wyłącznie odpowiednie wysterowanie kontrolera FBL. Tym razem dla reguł kanału CH6 zdefiniowane są dodatkowe warunki: reguła pierwsza aktywna jest tylko dla fazy lotu nr 0 (FM0, ang. Flight Modes) reguła druga aktywna jest dla FM1 oraz FM2 Sterowanie tym, która reguła jest aktywna odbywa się poza mikserem, poprzez wybór faz lotu. Do obu reguł przypisane są krzywe (ang. curve): do pierwszej reguły krzywa CV5 (krzywa nr 5, o nazwie PT1), ograniczająca zakres skoku łopat wirnika głównego do 85% (do około ±10°). do reguły drugiej krzywa CV6 (PT2), dająca pełen zakres skoku łopat ±12° Krzywe omówię szczegółowo w dalszej części artykułu. W tym momencie ważne jest tylko, że przez taką konfigurację reguł przypisujemy dwie różne krzywe, do tego samego kanału wyjściowego, zależnie od wybranej fazy lotu, czyli de-facto od aktywnej reguły. Efekt działania takiego miksowania reguł dla CH6 można podejrzeć w symulatorze radia: Nie jest to idealnie widoczne, ale aktualnie aktywne reguły są zaznaczone wytłuszczoną czcionką wartości procentowych w drugiej kolumnie (na rysunku aktywne są CH4, CH5, pierwsza reguła CH6, pierwsza reguła CH7, oraz CH8 – pozostałe kanały są poza widokiem). W naszym przypadku, ponieważ aktywna jest domyślna faza lotu FM0 (przełącznik SC w pozycji ↑), dla kanału CH6 aktywna jest tylko pierwsza reguła. Reguła ta nakłada na kanał krzywą, która ogranicza zakres wartości kanału CH6 do ±85%. Dlatego, mimo że drążek Throttle jest w pozycji całkowicie do dołu, to wartość kanału na wyjściu miksera wynosi -85% (a nie -100%, jak byłoby to normalnie dla drążka Throttle w pozycji maksymalnie do dołu). Rzeczywista wartość wyjściowa kanału wynosi -87% i wynika to z fizycznych zakresów wartości wyjściowych kanałów zdefiniowanych w zakładce Wyjścia (ang. Outputs; omówię to przy okazji opisywania zakładki Outputs). Ponieważ fazy lotu aktywujące reguły się nie pokrywają (poszczególne reguły dla tego samego kanału są aktywowane innymi fazami lotu), nie ma komplikacji spowodowanej jednocześnie aktywnymi kilkoma regułami dla tego samego kanału. Taką sytuację omówię jednak później, przy okazji omawiania reguł dla kanału CH3. Wejścia I1-I32 vs. bezpośrednie odczytywanie fizycznych manipulatorów W regułach miksera jako źródło (ang. source) możemy wybrać różne parametry dostępne w OpenTX. Mogą to być położenia fizycznych manipulatorów radia (drążków, trymów, potencjometrów, przełączników), wartości przełączników logicznych, parametrów telemetrycznych, wartości innych kanałów, etc. OpenTX jest tutaj bardzo elastyczny, praktycznie każdy parametr – fizyczny lub wirtualny – może być wykorzystany jako źródło. W mikserze szczególnie ważnym źródłem są wejścia, oznaczone w OpenTX jako I1-I32. Są to te same wejścia, które konfigurowaliśmy w zakładce Inputs. W powyższych przykładach używaliśmy już wcześniej zdefiniowanych wejść, np. wejścia I1 o nazwie Ail: Bardzo podobnie wyglądała by definicja tej samej reguły, ale wykorzystująca jako źródło bezpośrednio drążek Ailerons (lotki): (zauważ brak "I1:" w definicji źródła) Może się wydawać, że nie ma większego znaczenia, czy użyje się zdefiniowanego wcześniej wejscia I6:Ail czy bezpośrednio Ail. Jest wręcz przeciwnie. Po pierwsze jeśli zdefiniowaliśmy wejścia w zakładce Inputs, prawdopodobnie chcieliśmy ich użyć w mikserze. W przeciwnym razie zdefiniowane tam parametry (np. expo, zakresy) nigdy nie będą wzięte pod uwagę, bo w mikserze odczytujemy "surowe" wartości źródła (w typ przypadku drążka Ailerons). Po drugie użycie zdefiniowanych wcześniej wejść znacząco upraszcza reguły miksera, które dzięki temu łatwiej się tworzy i potem czyta (szczególnie po jakimś czasie). Dobrą praktyką jest funkcjonalne rozdzielanie miejsc, w których konfiguruje się model. Główną rolą miksera jest miksowanie kanałów, zatem co się da, skonfigurujmy gdzie indziej. Po trzecie w skomplikowanych konfiguracjach użycie zarówno reguł wejść jak i reguł miksera, daje nam zwiększone możliwości. Np. można przypisać krzywą expo na wejściu i potem – dodatkowo, w zależności od innych parametrów – inną krzywą w mikserze. Po czwarte użycie zakładki Inputs daje możliwość kreowanie wirtualnych wejść, takich jak CH6 (Ptch) z naszego przykładu. Zwiększa to możliwości konfiguracyjne, a także czytelność reguł miksera. Parametr MAX Parametr MAX jest specjalnym parametrem, który ma zawsze wartość logiczną 1 lub 100%, w zależności od kontekstu użycia. Wykorzystuje się go wtedy, gdy chcemy ustawić jakąś wartość niezależnie od położenia przełączników, czy innych zmiennych wejść (zmiennych w sensie takich, które mogą przyjmować zmieniające się wartości; nie mylić ze zmiennymi globalnymi). Przyjrzyjmy się regule dla kanału CH8 z naszego projektu: Używamy tutaj zmiennej MAX jako źródła, a następnie aplikujemy wagę -100%. Wykonując prostą operację mnożenia MAX * -100% otrzymujemy minus 100% na wyjściu kanału CH8. Dzięki temu kanał AUX w Brain 2 pozostaje stanie nieaktywnym, a przypisana do niego funkcja Rescue czeka w pogotowiu. Będziemy ją aktywować w inny sposób, który opiszę w sekcji o zakładce Funkcje Specjalne. Następstwo i nadpisywanie reguł Do tej pory opisywałem reguły, które były aktywowane przez różne zdarzenia, ale były skonfigurowane w taki sposób, że niemożliwym było, aby w tym samym czasie więcej niż jedna reguła była aktywną lub potencjalnie aktywną – dla pojedynczego kanału oczywiście. W naszym projekcie nie wykorzystujemy reguł, które będą faktycznie aktywne w tym samym czasie. Taką konfigurację opiszę może w innym artykule, np. przy okazji konfigurowania miksera dla samolotu, w którym ster kierunku wychyla się nieznacznie także przy operowaniu drążkiem lotek (np. 15% wychylenia drążka lotek jest przypisywane do kanału steru kierunku, by poprawić prowadzenie modelu w skrętach). W przykładzie wykorzystujemy za to reguły, które byłyby jednocześnie aktywne, gdyby nie następstwo i nadpisywanie reguł. Zacznijmy od przyjrzenia się temu ekranowi symulatora: SF↑ – silnik jest "uzbrojony" SA↓ – Spool-Up, czyli nie jest aktywny Throttle-Hold SB↓ – wybieramy Idle-Up 3, czyli trzecią prędkość obrotów wirnika głównego modelu, zdefiniowaną w governorze Brain 2 Na ekranie powyżej widać, że dla kanału CH3 aktywna jest reguła trzecia, aktywowana przełącznikiem SB↓. Silnik modelu obraca się zatem z prędkością ustawioną jako Idle-Up 3 w governorze Brain 2. Co się jednak stanie, gdy przesuniemy przełącznik SA w pozycję SA– lub SA↑, czyli Throttle-Hold? Mimo, że nie zmieniliśmy pozycji przełącznika SB (pozostaje on w pozycji SB↓), nie jest już aktywna reguła trzecia kanału CH3. Aktywowana za to została reguła ostatnia (piąta) dla kanału CH3, która aktywowana jest gdy przełącznik SA jest w pozycji Throttle-Hold (pozycji nie do siebie, co zapisywane jest !SA↓ – znak wykrzyknika oznacza logiczne zaprzeczenie). Żeby zrozumieć się stało potrzebne są jeszcze dwie informacje: Reguły przypisane do danego kanału przetwarzane są kolejno, tak jak są wyświetlane na liście zakładki Mixes, od góry do dołu. Każda kolejno przetwarzana reguła zmienia wynik końcowy, dodając (ang. add), mnożąc (ang. multiple) lub zastępując (ang. replace) wartość wynikającą z przetwarzania poprzedzających ją reguł. To czy dana reguła dodaje, mnoży czy zastępuje dotychczasową wartość, zależy od ustawienia parametru Połączenie (ang. Multiplex) ustawianego w oknie dialogowym danej reguły: W listingu reguł zakładki miksera operacja zamiany (REPLACE) oznaczana jest znakiem dwukropka i równości: Dla pierwszej reguły każdego kanału nie ma znaczenia jaka operacja jest ustawiona jako Multiplex, gdyż nie ma poprzedzających ją reguł, zatem nie ma do czego dodawać, czego mnożyć, ani zastępować. W szczególności nie ma to znaczenia, gdy dana reguła jest jedyną przypisaną do kanału. Dlatego na liście reguł miksera, dla pierwszych reguł każdego kanału, OpenTX Companion nawet nie pokazuje, jaka operacja jest wybrana. Wracając do głównego wątku... W naszym przykładzie ostatnia reguła kanału CH3 zastępuje (ang. replace) poprzednie wartości. Dlatego mimo, że mamy aktywny przełącznik SB↓ (Idle-Up 3, maksymalne obroty wirnika głównego), to tak naprawdę wartość końcową kanału w mikserze determinuje ostatnia reguła, czyli Throttle-Hold, aktywowana przez pozycję przełącznika !SA↓ (inną niż do siebie). W efekcie silnik nitro będzie bezpiecznie chodził na biegu jałowym, czyli będzie aktywny Throttle-Hold. Analiza reguł miksera Mamy już prawie kompletną wiedzę, aby przeanalizować wszystkie reguły miksera, które realizują założenia naszego projektu. Wyjątkiem są krzywe, które dokładnie opiszę w dalszej części artykułu. W tej części artykułu będę się zatem ograniczał do wskazania, że dana krzywa jest aktywna oraz będę pokrótce opisywał, jaki wywiera efekt na wyjście kanału. Przypomnijmy, jak wygląda zakładka Mixes z regułami realizującymi założenia naszego projektu: Definiujemy w niej osiem kanałów (CH1-CH8), w kolejności zgodnej z oczekiwaną przez kontroler Brain. Oczekiwaną kolejność kanałów Brain 2 można podejrzeć (a nawet zmodyfikować) w Advanced Menu / Receiver konfiguratora Brain 2: Ponieważ dla OpenTX kolejność kanałów nie ma znaczenia, dostosujemy się do standardowej kolejności oczekiwanej przez Brain 2 (którą można w razie potrzeby zmienić). Reguły kanałów CH1, CH2, CH4 (Ail, Ele, Rud) Są to standardowe kanały do obsługi lotek, steru wysokości oraz steru kierunku (odpowiednio Ail, Ele oraz Rud): W helikopterze lotki oraz ster wysokości odpowiadają za sterowanie pochylaniem głowicy wirnika głównego (cyclic), czyli de-facto za pochylanie (ang. pitch) i przechylanie (ang. roll) całego modelu. Ster kierunku odpowiada za odchylanie modelu (ang. yaw), co w helikopterach realizowane jest za pomocą zmiany skoku łopatek wirnika ogonowego. Notka: angielski termin „pitch” używany jest zarówno do określania stopnia pochylenia modelu jak i do określania skoku łopat wirników helikoptera lub śmigieł samolotu. W regułach miksera dla kanałów CH1, CH2 oraz CH4 nie dzieje się nic specjalnego. Każdy z wymienionych kanałów przyjmuje wartości przypisanego do siebie i zdefiniowanego wcześniej w zakładce Inputs wejścia, czyli odpowiednio drążka lotek (I1:Ail), drążka steru wysokości (I2:Ele) oraz drążka steru kierunku (I4:Rud). Pamiętamy, że używamy tutaj wcześniej zdefiniowanych w zakładce Inputs wejść, nie bezpośrednio wartości odczytywanych z fizycznych drążków. Zatem brane są pod uwagę expo i zakres pracy tych wejść (zależnie od aktualnie wybranej fazy lotu, ustalane za pomocą zmiennych globalnych). Reguły kanału CH3 (Thr) Kanał CH3 steruje przepustnicą gazu (ang. Throttle). Pierwsze trzy reguły przypisują do kanału CH3 jedną z trzech krzywych CV2, CV3 lub CV4 (o nazwach odpowiednio UP1, UP2 lub UP3) w zależności od położenia przełącznika SB. W ten sposób realizujemy jedno z założeń projektu, tzn. przypisanie trzech prędkości Idle-Up do przełącznika SB: Aktywowane przełącznikiem SB krzywe powodują, że wartość kanału CH3 przybiera jedną z trzech wartości sterujących governorem kontrolera Brain 2, ustawiając prędkość obrotową wirnika głównego na określonych poziomach: Warto zwrócić uwagę, że druga i trzecia reguła kanału CH3 (czwarta i piąta też) posiadają atrybut REPLACE (zamień). W efekcie, jeśli któraś z tych reguł jest aktywna, tylko ta jedna reguła jest brana pod uwagę przy ustalaniu wartości wyjściowej kanału CH3 (jej działanie całkowicie nadpisuje poprzednią wartość): Innym założeniem projektu było, że przełącznik SC w pozycji do dołu wyłącza governor i włącza sterowanie obrotami silnika w tradycyjny sposób, za pomocą krzywej gazu. Drugą część tego założenia (sterowanie obrotami za pomocą krzywej NGV) realizuje następna (czwarta) reguła kanału CH3: Dla wygody regułę tę nazwaliśmy zgodnie z pełnioną funkcją, tzn. "NoGov". Nazwa reguły, jeśli jest zdefiniowana, widoczna jest na końcu linii, w nawiasach kwadratowych. Nazwa nie pełni żadnej funkcji, poza ułatwieniem czytania reguł. Jeśli reguła czwarta dla kanału CH3 staje się aktywna (przełącznik SC zostaje przełączony w pozycję „do siebie” SC↓) nadpisuje ona pierwsze trzy reguły (atrybut REPLACE + reguły są interpretowane w kolejności od pierwszej u góry do ostatniej na dole). Zatem niezależnie od stanu przełącznika SB, jeśli reguła czwarta jest aktywna, kanał CH3 zacznie przyjmować wartości zgodne z krzywą CV9 o nazwie NGV (ang. No GoVernor). Notka: Pierwszą część założenia projektowego (dezaktywacja governora przy SC↓) częściowo już zrealizowaliśmy za pomocą faz lotu, od których będziemy uzależniać wartość kanału CH7. Reguły dla kanału CH7 będą wyjaśnione niżej. W opisanych do tej pory pierwszych czterech regułach kanału CH3 używamy wejścia I3:Thr jako źródła: Jak zobaczymy przy okazji omawiania krzywych, nie ma to w zasadzie znaczenia dla trzech pierwszych reguł (tych realizujących trzy kolejne stopnie Idle-Up). Tym niemniej będzie miało to istotne znaczenie dla reguły czwartej (No Governor). Omówię to bardziej szczegółowo przy zakładce Curves. Ostatnia (piąta) reguła przypisana do kanału CH3 realizuję funkcję Throttle-Hold. Także tę regułę nazwaliśmy – ThHold – tak by w przyszłości ułatwić sobie czytanie konfiguracji. Jako, że reguła ThHold jest ostatnią przypisaną do kanału CH3, w momencie aktywacji nadpisuje ona wszystkie poprzednie reguły (jest zawsze interpretowana na samym końcu). Zatem niezależnie od pozycji przełączników SB czy SC, jeśli przełączymy SA w pozycję !SA↓ (Throttle-Hold), silnik zacznie pracować na obrotach jałowych. Notka: pozycja Throttle-Hold przełącznika SA to pozycja środkowa SA– lub pozycja „od siebie” SA↑, co w skrócie zapisujemy jako "nie do siebie” !SC↓ (używają wykrzyknika jako znanego już zaprzeczenia logicznego). Throttle-Hold oznacza, że silnik pracuje na biegu jałowym. Aby to osiągnąć musimy wymusić na kanale CH3 jakąś niską wartość, odpowiadającą takiej pozycji orczyka serwa przepustnicy gaźnika, która zapewni stabilną pracę silnika na biegu jałowym. Jak wspominałem przy okazji omawiania zakładki Flight Modes, odpowiednią wartość (dobraną doświadczalnie) przechowujemy w zmiennej globalnej TH. Aby ustawić wartość przechowywaną w zmiennej globalnej TH jako wartość kanału CH3, w definicji reguły Throttle-Hold używamy wartości specjalnej MAX jako źródła i odwracamy ją przy użyciu wagi -100%. Następnie stosujemy offset (przesunięcie) o wartość TH właśnie. Tak wygląda ta reguła po podwójnym kliknięciu w linię na liście reguł: Jako wartości wyjściowej używamy MAX, gdyż jest ona stała i pozwoli nam ustawić wartość Throttle-Hold niezależnie od położenia drążka Throttle czy pozycji innych przełączników lub potencjometrów. Dla lepszego zrozumienia zapiszmy to jako swego rodzaju wzór, zakładając: źródło: MAX (czyli wartość logiczna 1 lub 100%) waga (ang. weight): -100% przesunięcie (ang. offset): TH (czyli wartość przechowywana w zmiennej globalnej TH, w naszym przykładzie zdefiniowana jako 22) Przy powyższych założeniach nasz pseudo-wzór i obliczenia wykonywane przez mikser, będą wyglądały następująco: CH3 = MAX * WEIGHT + OFFSET CH3 = 1 * (-100%) + 22 CH3 = -100% + 22 CH3 = -78% Zatem w naszym przykładzie to -78% będzie wartością kanału CH3 ustawianą poprzez aktywację reguły Throttle-Hold. Pozycję serwa dla Throttle-Hold (a dokładniej wartość zmiennej globalnej TH) będziemy potem modyfikować używając funkcji specjalnych (ang. Special Functions), tak by zapewnić odbpowiednio niskie, ale stabilne obroty biegu jałowego. Reguły kanału CH5 (TGain) W kontrolerze Brain 2 kanał CH5 steruje wzmocnieniem (ang. gain) komponentu P (regulatora PID) sterowania skokiem wirnika ogonowego. Wartości dodatnie kanału CH5 (zakres od 0% do +100%) ustalają poziom wzmocnienia w tzw. trybie Tail Lock – żyroskopowego utrzymywania odchylenia modelu. Wartości ujemne kanału CH5 (zakres od 0% do -100%) ustalają poziom wzmocnienia w tzw. trybie Tail Free – w którym model poddaje się siłom aerodynamicznym i odchyla (obraca w osi wirnika głównego) zgodnie z nimi. Przełączenie trybów odbywa się za pomocą przełącznika SD. Przy czym w pierwszej regule – nazwanej TaLock – nie musimy nawet definiować przełącznika. Reguła TaLock jest aktywna domyślnie, do czasu aż zostanie aktywowana reguła TaFree, co dzieje się po ustawieniu przełącznika SD w pozycję SD↓. Po aktywacji reguła TaFree nadpisuje działanie reguły TaLock. Opiera się to na zasadzie opisanej już zasadzie zastępowania reguł (opcja REPLACE). Dla obu reguł kanału CH5 źródłem jest wcześniej zdefiniowane wejście I5:Gain, czyli w uproszczeniu potencjometr S2. Normalnie wzmocnienie byłoby regulowane w zakresie ±100%. W praktyce wzmocnienie reguluje się w o wiele węższym zakresie, np. 40-60%. Dodatkowo musimy rozdzielić dodatnie i ujemne zakresy. Dlatego do obu reguł przypisano krzywe, które ograniczają zakres, a jednocześnie ustalają dodatni zakres dla reguły TaLock (od +40% do +60%), oraz odpowiadający mu zakres ujemny dla reguły TaFree (od -40% do -60%). Zatem w skrajnie lewym położeniu potencjometru S2 wartość kanału przyjmuje ±40%, a w skrajnie prawym ±60% (plus lub minus w zależności od położenia przełącznika SD). Zwiększa to znacząco rozdzielczość potencjometru S2, co umożliwia precyzyjne regulowanie wzmocnieniem. Ograniczenie wartości sterowanych potencjometrem S2 zapobiega także przypadkowemu ustawieniu skrajnych wartości wzmocnienia, przez które model zachowywałby się bardzo niestabilnie. Dzięki zastosowaniu oddzielnych krzywych można – gdyby zaszła taka potrzeba – przypisać dwa różne zakresy: inny dla reguły TaLock, a inny dla reguły TaFree. Gdyby okazało się, że zdefiniowane krzywymi zakresy nie są odpowiednie dla danego modelu (gdyż zachodzi konieczność ustawienia wzmocnienia spoza zakresu początkowo ustalonego zakresu), należy zmienić krzywe tak, by pokrywały odpowiedni zakres np. ±30-50% (dla przewidywanej wartości wzmocnienia równej 40%). Krzywe przypisane do reguł kanału CH5 omówię szczegółowo przy okazji omawiania zakładki Curves (Krzywe). Reguły kanału CH6 (Pitch) Kanał CH6 steruje skokiem ogólnym łopat wirnika głównego modelu. W przykładowym modelu pełen zakres skoku to -12° / +12°, przy czym 0° przypada na pozycję środkową drążka Throttle (pamiętamy, że w modelach helikopterów drążek gazu steruje także (a często wyłącznie) skokiem łopat wirnika głównego), co jest typowe dla modeli akrobacyjnych 3D (w uproszczeniu umożliwia lot odwrócony). Do kanału CH6 są przypisane dwie reguły, uaktywniane poprzez zmianę aktywnej fazy lotu: W obu regułach źródłem jest zdefiniowane wcześniej wejście I6:Ptch (drążek gazu z przypisanym expo zależnym od zmiennej globalnej EXP). Ruch drążka jest zatem wstępnie filtrowany przez wejście (dodajemy niewielkie expo, tak by mieć nieco lepszą precyzję sterowania blisko centrum drążka), a następnie w mikserze przypisywane są krzywe zależne od aktualnie aktywnej fazy lotu. Pierwsza reguła, powiązana z fazą lotu FM0 (Normal), przypisuje do kanału CH6 krzywą CV5 (krzywa nr 5, o nazwie PT1). Krzywa PT1 powoduje, że ujemny skok łopat zostaje ograniczony (nie pracuje w pełnym zakresie od 0° do -12°, ale od 0° do około -8°). Reguła druga, aktywowana fazami lotu FM1 (Sport) oraz FM2 (No Gov) przypisuje do kanału CH6 krzywą o nazwie PT2 (krzywa nr 6). W efekcie ruch drążka gazu będzie odzwierciedlony w pełnym zakresie skoku łopat, od -12° do 12°. Jest to kolejny przykład na to, ile rzeczy dzieje się w zależności od wybranej fazy lotu, a jednocześnie jak dzięki przemyślanemu użyciu faz lotu (i wcześniej zdefiniowanym wejściom) logiczne i przejrzyste stają się reguły miksera. Więcej o przypisanych do kanału CH6 krzywych PT1 oraz PT2 napiszę w dalszej części artykułu. Reguły kanału CH7 (Setup) Kanał CH7 steruje wyborem trybu lotu (stylu lotu, ang. Flying Style) w kontrolerze Brain 2: CH7 = -100% – tryb lotu 1 (Setup 1) CH7 = 0% – tryb lotu 2 (Setup 2) CH7 = +100% – tryb lotu 3 (Setup 3) Notka: w rzeczywistości do każdego trybu przypisany jest jakiś zakres (np. wartość 15% prawdopodobnie również wybrała by Setup 2 kontrolera Brain 2), ale dla uproszczenia przyjmijmy konkretne wartości -100% / 0% / +100%. To samo tyczy się innych kanałów, gdzie dokonuje się wyboru pewnych opcji, np. kanału CH8. W mikserze OpenTX wybór trybów lotu kontrolera Brain 2 zrealizowany jest to za pomocą następujących trzech reguł: Ponownie wykorzystujemy tutaj wartość specjalną MAX jako stałą wartość bazową, modyfikowaną następnie za pomocą wagi (ang. weight), tak by po wykonaniu możenia wartości specjalnej MAX przez wagę uzyskać pożądaną wyjściową wartość kanału CH7. Na przykład dla reguły drugiej: CH7 = MAX * WEIGHT CH7 = 1 * 0% CH7 = 0% W efekcie przypisanie wagi 0% zeruje wartości kanału. Waga -100% lub +100% dałaby na wyjściu kanału CH7 odpowiednio te same -100% i +100%. Poszczególne reguły przypisane do kanału CH7 aktywowane są za pomocą faz lotu – każda reguła inną fazą lotu. W ten sposób w danej chwili aktywna jest tylko jedna reguła i to jej wartość wyjściowa wysyłana jest do kontrolera FBL. Reguły kanału CH8 (Aux) Kanał CH8 aktywuje funkcję "rescue" kontrolera Brain 2. Na razie w mikserze konfigurujemy jednak tylko jedną regułę: Ustawia ona wartość kanału na -100%. Dzięki temu funkcja "rescue" pozostaje nieaktywna. Funkcję "rescue" kontrolera Brain 2 będziemy aktywować poza mikserem, z zakładce Special Functions (Funkcje Specjalne), o czym napiszę w dalszej części artykułu. OpenTX Companion – Zakładka Outputs (Wyjścia) W zakładce Outputs (Wyjścia) ustala się parametry powiązane bezpośrednio z fizycznymi urządzeniami wyjściowymi, na przykład takimi jak serwomechanizmy lub wyjścia kanałów przesyłane portem SBUS lub CPPM z odbiornika do kontrolera lotu. W OpenTX przetwarzanie sygnałów od wejść (między innymi fizyczne drążki, przełączniki i potencjometry radia) do wyjść (wartości kanałów wysyłanych przez moduł nadawczy radia) odbywa się kolejno w zakładkach Inputs (opcjonalnie), Mixes i Outputs. Dobrą praktyką jest rozpoczęcie od zakładki Inputs jako pierwszego stopnia przynajmniej dla najważniejszych wejść. Następnie sygnały przetwarzane są w zakładce Mixes, aby zakończyć proces w zakładce Outputs: Inputs (Wejścia) -> Mixes (Miksery) -> Outputs (Wyjścia) -> moduł nadawczy aparatury RC ... do uzupełnienia graficzny schemat przetwarzania sygnałów w OpenTX Przy definiowaniu reguł dla wejść i mikserów, posługujemy się zakresem ±100%. Są to wartości używane do wykonywania obliczeń na regułach wejść i mikserów, przy założeniu, że urządzenia wyjściowe są idealne i wszystkie takie same. Takie założenie jest oczywiście błędne. Serwomechanizmy produkowane są przez różnych producentów, pracują z różną rozdzielczością, mogą posiadać nieco inne centrum, inne maksymalne zakresy, etc. To samo dotyczy parametrów wejść oczekiwanych i odczytywanych przez kontrolery lotu / flybarless. Zatem bardzo często będziemy mieli do czynienia z sytuacją, w której sygnał wychodzący z miksera, o teoretycznej wartości np. 100%, nie odpowiada dokładnie temu co chcielibyśmy osiągnąć na urządzeniu wyjściowym, np. wychylenie orczyka serwomechanizmu będzie nieco zbyt duże lub zbyt małe. Moglibyśmy dostosowywać wartości w mikserze, tak by osiągnąć pożądane skrajne położenie. Byłoby to jednak bardzo nieeleganckie i w praktyce kłopotliwe rozwiązanie. Wyobraźmy sobie wyjścia dwóch lotek, dla których należałoby dostosować indywidualne wartości centrum oraz maksymalne wychylenia w każdą stronę (lotka do góry, lotka do dołu). Reguły miksera stały by się skomplikowane. Trzeba by dla każdej lotki używać indywidualnych przesunięć, krzywych, wag; prawdopodobnie tworzyć oddzielne reguły dla wychylenia w każdą ze stron. Takie podejście nie ma sensu. W mikserze chcemy centrum definiować zawsze jako 0%, a wartości maksymalne zawsze jako ±100%. Dlatego potrzebna jest zakładka Outputs (Wyjścia), w której następuje finalne dostosowanie wysyłanych sygnałów sterujących do fizycznych urządzeń je wykonujących: np. serwomechanizmów czy kontrolerów lotu / flybarless. W naszym przykładzie kontrolerem flybarless jest Brain 2, którego konfiguracja kanałów wejściowych (wyjściowych z OpenTX) wygląda tak: Jednym z pierwszych czynności wykonywanych przy konfiguracji każdego kontrolera lotu / flybarless jest dostosowanie zakresów, w szczególności dla drążków sterujących i potencjometrów (jeśli przypisane do nich funkcja wymaga precyzyjnego sterowania). Chodzi o to, aby faktyczny zakres wartości kanałów wyjściowych (porty PWM lub kanały SBUS / CPPM odbiornika) idealnie odpowiadał zakresom odczytywanym przez kontroler lotu / flybarless. Innymi słowy, aby -100%, 0% i +100% wysyłane przez moduł nadawczy radia, był przez kontroler lotu / flybarless odczytywany jako dokładnie taka sama wartość, a nie np. -99%, 1% i 102% (odpowiednio). Do takiego dostosowania zakresów sygnałów służy właśnie zakładka Outputs: Parametry zdefiniowane w zakładce Outputs będą „nakładane” na poszczególne kanały wyjściowe na samym końcu, po regułach miksera, przed samym wysłaniem tak obrobionych sygnałów przez moduł nadawczy radia do odbiornika. Bardzo ładnie widać to w zakładce Mixes, podczas konfigurowania modelu bezpośrednio w radiu (nie w OpenTX Companion) lub w symulatorze OpenTX Companion: W symulatorze widać, że drążek lotek jest wychylony maksymalnie w prawo, co przekłada się na wartość 100% na wyjściu miksera kanału CH1 (zaznaczone na żółto). Jednocześnie faktyczna wartość kanału, wysyłana przez moduł nadawczy radia, wynosi 109% (zaznaczone na zielono). Wynika to z tego, że maksymalna wartość kanału CH1 została w zakładce Outputs skorygowana do 108.6% (w zaokrągleniu, aby oszczędzić miejsce na ekranie, pokazywane jako 109%). Znając już podstawy działania zakładki Outputs możemy przystąpić do kalibracji wyjść, zgodnie z oczekiwaniami kontrolera flybarless. W naszym przykładzie jest to Brain 2, ale ta sama zasada będzie dotyczyła także innych kontrolerów lotu. Kalibrujemy przede wszystkim wyjścia tych kanałów, których działanie musi być precyzyjne. W naszym przykładzie są to drążki sterujące (CH1-4 oraz CH6): Aby skalibrować dany kanał, uruchamiamy program konfiguracyjny Brain 2 w zakładce Transmitter Setup i dla każdego kanału przeprowadzamy następującą procedurę: wychylamy drążek danego kanału do pozycji -100% (w lewo lub w dół) obserwujemy wartość kanału odczytywaną przez Brain 2; powinna ona być bliska -100% (z wyjątkiem Throttle, gdzie stosowana jest skala od 0% do 100%, więc oczekiwana tutaj wartość to 0%) w OpenTX (w radiu, nie w Companion) w zakładce Outputs regulujmy wartość Min danego kanału, tak aby Brain 2 pokazywał dokładnie -100% (lub 0% dla kanału Throttle) wychylamy drążek danego kanału do pozycji +100% (w prawo lub do góry) obserwujemy wartość kanału odczytywaną przez Brain 2; powinna ona być bliska +100% w OpenTX (w radiu, nie w Companion) w zakładce Outputs regulujmy wartość Max danego kanału, tak aby Brain 2 pokazywał dokładnie +100% Kalibrację należy przeprowadzić jeszcze bez przypisanych do kanałów wag lub krzywych ograniczających zakres, bez przesunięć, etc. Oczywiście do przeprowadzenia kalibracji konieczne jest podłączenie odbiornika, zbindowanie go, wstępne ustawienie typu odbiornika w Brain 2, etc. Kalibrację przeprowadzamy w OpenTX w radiu (nie w OpenTX Companion). Po tak przeprowadzonej kalibracji powinniśmy mieć idealnie zestrojone kanały wyjściowe z miksera OpenTX z wejściami kontrolera Brain 2 (lub innego). Zestrojone, tzn. że gdy mikser OpenTX pokazuje ±100% (na ekranie symulatora powyżej zaznaczone na żółto), to kontroler powinien pokazywać to samo ±100% (lub 0% dla minimalnej pozycji kanału Throttle). To w zasadzie wyczerpuje opis konfiguracji wyjść naszego przykładowego modelu, ale dla porządku omówię jeszcze kolejne pola możliwe do zdefiniowania w zakładce OpenTX Outputs: Name (Nazwa) – Nazwa wyświetlana w zakładce Mixes radia, w monitorze kanałów oraz przy ustawianiu failsafe. Subtrim – Wartość, która przesuwa faktyczne centrum danego kanału, tak by dostosować np. pozycję neutrum orczyka serwomechanizmu, do 0% wartości kanału w mikserze. Zwykle w to pole nie wpisuje się wartości bezpośrednio, ale po wytrymowaniu modelu w locie kopiuje się wartość trymu do sub-trymu danego kanału, za pomocą opcji Copy trims to subtrim: Dzięki temu trymy można z powrotem ustawić w zerze lub nawet wyłączyć, a korekta zostanie zapamiętana i zaaplikowana przez sub-trym. (ewentualnie można skopiować do subtrim wartości odpowiadające aktualnemu położeniu drążków Copy sticks to subtrim, co można także zrobić za pomocą funkcji specjalnej Instant Trim) Przesunięcie centrum kanału przy pomocy sub-trym nie powoduje adekwatnej zmiany wartości skrajnych kanału (wartości skrajne +/- 100% pozostają na tym samym poziomie; linia czerwona na wykresie poniżej). Min / Max – korekta faktycznych wartości skrajnych danego kanału. To właśnie tutaj wpisujemy wartości nieco większe lub mniejsze od 100%, tak by dla wartości 100% w mikserze, osiągnąć żądaną pozycję skrajną serwomechanizmu lub wartości kanału wysyłanego do kontrolera lotu / flybarless. W naszym przykładzie zrobiliśmy to dla kanałów CH1-4 oraz CH6. Wartości Subtrim / Min / Max mogą być także ustawiane przy pomocy zmiennych globalnych. Wystarczy zaznaczyć opcję GV znajdującą się przy każdym z pól i wybrać odpowiednią zmienną globalną. Direction (Kierunek) – służy do odwrócenia kierunku pracy serwomechanizmu lub kanału wysyłanego do kontrolera lotu / flybarless. Dzięki temu w mikserze możemy stosować intuicyjne wartości, np. 100% oznaczające maksymalne dodatnie wychylenie (to oczywiście umowne, ale np. w prawo), podczas gdy tak naprawdę serwo wychyla się w kierunku ujemnym (np. w lewo). Aby takie zachowanie skorygować nie musimy zmieniać wartości w mikserze na -100%, co mogłoby być mylące z punktu widzenia implementowanej logiki działania. Zamiast zmieniać kierunki w mikserze, po prostu odwracamy działanie serwomechanizmu w zakładce Outputs. Oczywiście do samo dotyczy wartości kanałów wysyłanych przez SBUS / CPPM do kontrolerów lotu czy flybarless. Curve (Krzywa) – jest to po prostu jeszcze jedno miejsce (poza zakładką Inputs oraz Mixes), w którym można przypisać krzywą do kanału. PPM Center (Środek PPM) – definiuje centrum kanału, w notacji czasu trwania impulsu PWM określającego centrum (czyli w mikro-sekundach oznaczanych µs). Domyślnie OpenTX stosuje 1500µs oraz zakres 988-2012µs dla wartości kanałów odpowiednio -100% i +100%. Zmiana opcji PPM Center działa podobnie jak Subtrim, z tą różnicą, że wartości skrajne zostaną również odpowiednio przesunięte. Na przykład zmieniając PPM Center z 1500µs na 1520µs, wartości skrajne zostaną także przesunięte o 20µs, czyli odpowiednio do 1009µs oraz 2032µs. Przykład zastosowania PPM Center (przesunięcie centrum PPM w dół) pokazany jest żółtą linią na wykresie poniżej). Linear Subtrim (Liniowy Subtrim) – wpływa na to, w jaki sposób zachowują się wartości skrajne przy zmianie Subtrim. Bez zaznaczenia opcji Linear Subtrim (domyślnie opcja ta nie jest zaznaczona) wartości skrajne nie są zmieniane, pozostają takie same. Zmienia się tylko położenie centrum kanału, w wyniku czego kanał pracuje asymetrycznie, ale ciągle osiąga te same wartości skrajne (linia czerwona na wykresie). Jeśli opcja Linear Subtrim zostanie zaznaczona, wartości skrajne dane kanału zostaną adekwatnie przesunięte i z jednej strony obcięte, a z drugiej strony wartość maksymalna będzie osiągana wcześniej (linia niebieska na wykresie). Extended Limits (Rozszerzone Limity) W tym miejscu warto wspomnieć o opcji Extended Limits, którą można zaznaczyć w zakładce Setup (Ustawienia). Normalnie OpenTX na wyjściach stosuje 1500µs jako neutrum oraz 512µs w każdą stronę ±100%, czyli efektywnie zakres 988-2012µs (jeśli nic Ci to nie mówi, ponownie odsyłam do artykułu Porty nie tylko FrSky). Zaznaczenie opcji Extended Limits powoduje zwiększenie możliwego zakresu wyjść (zakładka Outputs) do ±150% (czyli ±768µs, co daje bardzo szeroki zakres 732-2268µs). Maksymalne wagi w zakładkach Inputs (Wejścia) oraz Mixes (Miksery) nie są zależne od opcji Extended Limits. W opcjach wejść można wprowadzać wartości do 100%, a w opcjach miksera do 500%. Tym niemniej wyjścia reguł obu zakładek (Input i Mixes) będą zawsze ograniczane do 100%. UWAGA: Wbudowane w OpenTX ograniczenia zakresów mają za zadanie uniknięcie wysyłania przez odbiornik RC sygnałów PWM / CPPM / SBUS, które przekraczałyby fizyczne możliwości elementów wykonawczych, w szczególności serwomechanizmów. Większość serw akceptuje co najmniej zakres 900-2100µs, choć i tu mogą zdarzyć się wyjątki. Dlatego należy zawsze upewnić się, że gdy opcja Extended Limits jest włączona, urządzenia wykonawcze (w szczególności serwomechanizmy) akceptują maksymalne wartości, jakie mogą pojawić się na portach odbiornika RC sterowanego przez OpenTX. W skrajnym przypadku przekroczenie dopuszczalnych wartości może doprowadzić nawet do fizycznego uszkodzenia serwomechanizmu. OpenTX Companion – Zakładka Curves (Krzywe) Zanim przejdę do opisu konfiguracji konkretnych krzywych realizujących założenia naszego projektu omówię pokrótce, jak działają krzywe (ang. curves) w ogóle. Jak działają krzywe? Krzywe są potężnym narzędziem, dostępnym praktycznie w każdym systemie aparatur RC. Warto wiedzieć, jak działają i do czego można je wykorzystać. Mówiąc w skrócie krzywe wykorzystujemy jako swego rodzaju filtr, przez który możemy przepuszczać wartości wejść kanałów, tak by osiągnąć skomplikowany efekt, niemożliwy do uzyskania w inny sposób. W poniższych przykładach zakładamy, że wejściem krzywej jest ruch drążka, a wyjściem ruch serwomechanizmu (wartość wyjściowa kanału RC). Nie musi tak jednak być, krzywe można wykorzystać do pracy z dowolnymi wejściami i wyjściami OpenTX. Poniższe trzy przykłady nie mają związku z realizowanym projektem. Służą wyłącznie celom edukacyjnym i poglądowym. Przykład 1 Zacznijmy od najprostszej krzywej liniowej. Krzywa ta zdefiniowana jest następująco: W OpenTX oś X odpowiada za wejście krzywej, np. drążek lotek. Oś Y reprezentuje wyjście, np. serwomechanizm jednej z lotek. Krzywa realizuje liniową funkcję Y=X. Ponieważ krzywa jest w pełni liniowa, każdej wartości X, odpowiada dokładnie taka sama wartość Y, np. drążek w pozycji -50% da na wyjściu -50%. Krzywa zatem nic nie robi i tak naprawdę nie ma żadnego sensu używania takiej krzywej. Tym niemniej dla celów edukacyjnych warto zacząć od tak prostego przykładu. Przykład 2 W tym przykładzie drążek w pozycji -50% (oś X), na wyjściu krzywej (oś Y) da wartość -25%; dla wartości X = 100%, na wyjściu Y pojawi się 50%. Zatem tak zdefiniowana krzywa ogranicza zakres działania drążka lotek o połowę. W efekcie serwomechanizm podłączony do kanały wyjściowego miksera, do którego przypisano by taką krzywą, poruszałby się tylko w połowie zakresu w każdą stronę. Tak zdefiniowaną krzywą można wykorzystać np. do realizacji tzw. dual-rates, czyli ograniczenie zakresu działania danej powierzchni sterowej. Także w tym przypadku ten sam efekt można osiągnąć prościej, po prostu przypisując wagę 50% do kanału. Efekt na wyjściu będzie ten sam. Ale co w sytuacji, kiedy chcemy zrealizować na przykład tzw. funkcję expo, tj. aby drążek był mniej czuły w swoim środkowym zakresie, pozwalając na precyzyjne sterowanie modelem, ale jednak aby serwo pracowało w pełnym zakresie, płynnie przyspieszając ruch poza obszarem środkowym działania drążka? Taką funkcjonalność można zrealizować tylko przy pomocy krzywych i tutaj z pomocą przychodzą tzw. krzywe Expo: Nie dosyć, że powyższa krzywa nie jest liniowa, to jeszcze jest wygładzona (ang. smooth), tzn. krzywa przechodzi przez pewne zdefiniowane punkty, ale pomiędzy nimi przyjmuje płynnie zmieniające się wartości. Dzięki temu kontrola serwa będzie precyzyjna w okolicy centrum drążka (np. dla wychylenia drążka do 20%, na wyjściu pojawia się tylko 10%), ale jednocześnie będzie możliwe wykorzystanie pełnego zakresu pracy serwa / kanału, tzn. dla wychyleń skrajnych, wartości wyjściowe osiągną odpowiednio ±100%. Przejścia pomiędzy poszczególnymi punktami będą płynne, tj. w żadnym momencie nie wystąpi skokowa zmiana wychylenia orczyka serwa, aczkolwiek reakcja serwa będzie szybsza wraz ze zbliżaniem się granic wychyleń drążka. Notka: krzywe expo są w OpenTX (i wielu innych systemach) pre-definiowane, tzn. nie trzeba ich „ręcznie” konfigurować w zakładce Curves. Można po prostu wybrać krzywą typu expo jako przypisaną do reguły w zakładkach Inputs lub Mixes, a następnie zadać wartość numeryczną określającą jak bardzo krzywa expo ma modyfikować swoje wejście. Im większa wartość numeryczna expo, tym większa modyfikacja. Poniżej przykładowa krzywa dla Expo 40: W porównaniu do krzywej Expo 20, krzywa Expo 40 jest jeszcze bardziej precyzyjna w okolicach centrum, zatem ruchy drążka w okolicy centrum będą przekładały się na jeszcze bardziej delikatne zmiany na wyjściu krzywej (dla X=20, Y to tylko 6). Tym niemniej wyjście każdej pre-definiowanej krzywej expo będzie pracowało w pełnym zakresie, tj. dla skrajnych położeń drążka będzie osiągało ±100%. Trzeba przy tym uważać, gdyż dla wysokich wartości expo (np. 70-80) w centrum drążek będzie pracował bardzo precyzyjnie i łagodnie, ale poza centrum gwałtownie przejdzie do wartości bliskich ±100%. Takie zachowanie spowoduje nagłą reakcję modelu, co niekoniecznie musi być spodziewane ani pożądane. Przykład 3 Rozważmy trzeci i ostatni przykład, w którym zdefiniujemy krzywą, realizującą funkcjonalność klap samolotu. Załóżmy, że klapy podniesione są realizowane w pozycji centralnej serwomechanizmu (czyli wartość kanału 0%), a maksymalne wypuszczenie klap wymaga obrotu orczyka serwa maksymalnie w lewo (wartość kanału -100%). Jednocześnie chcemy, aby sterowanie odbywało się potencjometrem suwakowym, od pozycji górnej suwaka (klapy podniesione), do pozycji dolnej (klapy w pełni wypuszczone). Przekładając to na konkretne wartości osi krzywej: na wejściu krzywej (oś X) mamy potencjometr pracujący od +100% (pozycja górna suwaka, klapy podniesione) do -100% (pozycja dolna suwaka, klapy w pełni wypuszczone) na wyjściu krzywej (oś Y) chcemy osiągnąć odpowiednio wartości od 0% (serwo jest w pozycji centralnej, klapy podniesione) do -100% (serwo w skrajnie lewym położeniu, klapy w pełni wypuszczone) Pokazana wyżej krzywa, przypisana do kanału sterującego klapami, zrealizuje zakładaną zależność między ruchem suwaka, a ruchem orczyka serwomechanizmu klapy. Żeby to sprawdzić, wystarczy prześledzić wartości na osi X (ruchy drążka) i odpowiadające im wartości na osi Y (wyjście krzywej / kanału / ustawienie orczyka serwomechanizmu). Warto dobrze zrozumieć, jak działają krzywe, gdyż wiele funkcjonalności można zrealizować wyłącznie używając krzywych albo użycie krzywych jest prostsze niż używanie innych metod (zwykle kombinacje wag, przesunięć, odwróceń, etc.). Rozumiejąc jak działają krzywe przeanalizujmy, jak działają i wykorzystywane są konkretne krzywe zdefiniowane w naszym projekcie. Analiza zdefiniowanych krzywych Krzywa CV1 – TH (ang. Throttle Hold) Jest to dwupunktowa krzywa, która – jeśli zostanie przypisane do kanału CH3 – będzie niezależnie od stanu wejścia kanału, do którego jest przypisana, podawać na wyjściu wartość -100% (ewentualnie przesunięty dodatkowym parametrem tak, aby silnik nitro pracował na obrotach jałowych, a nie został zgaszony). Warto zwrócić uwagę, że w przypadku krzywej typu „Fixed X” („Stałe X”), definiujemy tylko wartości na osi Y (-100% oraz -100%, czyli linia płaska na samym dole wykresu). Odpowiadające im wartości osi X są w przypadku krzywej typu „Fixed X” pre-definiowane niejawnie (rozkładane równomiernie w zależności od ilości punktów krzywej, w naszym przypadku -100 i +100, tak by pokryć pełen zakres osi X). Krzywa CV1 nie jest de-facto wykorzystywana w naszej przykładowej konfiguracji. Jak pamiętamy, reguła odpowiedzialna za funkcjonalność Throttle Hold wygląda tak: Gdybyśmy chcieli wykorzystać to tego samego celu krzywą CV1, reguła ta wyglądała by następująco: dając dokładnie ten sam efekt. Krzywą TH zdefiniowałem i podaję jako przykład wyłącznie dlatego, aby pokazać, że w OpenTX jest zwykle co najmniej kilka sposobów osiągnięcia pożądanego efektu. Często nie można stwierdzić, który sposób jest lepszy. Są po prostu inne i to od nas zależy, który sposób będzie wygodniejszy, łatwiejszy w użyciu, lepiej oddający zamiary, etc. Funkcjonalności Throttle Hold oraz Idle-Up modeli helikopterów tradycyjnie konfiguruje się za pomocą krzywych. Z tego powodu, przynajmniej dla części osób, może to być bardziej naturalny sposób niż konfigurowanie przy użyciu wartości specjalnej MAX i przypisywanych wag (ang. weight). Krzywe CV2, CV3, CV4 – UP1, UP2, UP3 (Idle-Up 1/2/3) Krzywe te służą do ustalania obrotów pracy governora wbudowanego w kontroler Brain 2 (lub dowolnego innego, podobnego governora w którym poszczególne tryby pracy aktywuje się za pomocą poziomu kanału Throttle). Wszystkie trzy krzywe są płaskie, dając na wyjściu stałe wartości w skali -100% / +100% odpowiadające zakresom wartości kanału CH3 (Throttle), dla których nastąpi aktywacja governora kontrolera Brain 2: (o konwersji ze skali -100% / +100% do skali 0% / 100% pisałem wcześniej) Dla przypomnienia, krzywe UP1 / UP2 / UP3 aktywujemy w tych regułach miksera: W zależności od zakresu w jakim znajduje się wartość wyjściowa kanału, do którego przypisane są te krzywe (CH3), governor kontrolera Brain 2 będzie sterował przepustnicą silnika tak, aby możliwie dokładnie utrzymywać zadaną prędkość obrotową wirnika głównego helikoptera. Krzywe CV5, CV5 – PT1, PT2 (ang. pitch) Krzywe PT1, PT2 ustalają skok ogólny łopat wirnika głównego helikoptera. Wykorzystujemy je w tych regułach miksera: przypisując krzywą PT1, kiedy wybrana jest faza lotu FM0 (Normal). Krzywą PT2 przypisujemy, kiedy wybrane są fazy lotu FM1 (Sport) lub FM2 (No Gov). Krzywa PT1 posiada nieliniową charakterystykę. Powoduje, że skok łopat (ang. pitch) będzie pracował w pełnym zakresie po dodatniej stronie osi X (czyli w praktyce od pozycji środkowej drążka Throttle, aż do pozycji maksymalnego wychylenia drążka do góry). Jednocześnie przy ruchu drążka Throttle do dołu, skok łopat będzie ograniczany (maksymalnie -60% na osi Y, dla X = -100%, czyli drążek całkowicie do dołu). Krzywe CV7, CV8 – GN1, GN2 (wzmocnienie P dla wirnika ogonowego w trybach "tail lock" oraz "tail free" W naszym przykładzie chcemy potencjometrem S2 regulować wartość wzmocnienia P dla wirnika ogonowego, a przełącznikiem SD określać tryb pracy "Heading Lock" lub "Tail Free". W kontrolerach Brain 2 wartość wzmocnienia jest proporcjonalna do wartości kanału (standardowo CH5). Co ważne także tryb pracy jest ustalany na podstawie wartości kanału: od 0% do +100% – wzmocnienie od 0 do 100, w trybie "Heading Lock", czyli standardowym trybie dla helikopterów sportowych i 3D. od 0% do -100% – wzmocnienie od 0 do 100, w trybie "Tail Free", czyli w którym model poddaje się siłom aerodynamicznym i odchyla (obraca w osi wirnika głównego) zgodnie z nimi. Tryb ten stosowany jest jeszcze w przypadku modeli redukcyjnych, gdyż bardziej naturalnie oddaje zachowanie prawdziwego śmigłowca. W najprostszej konfiguracji moglibyśmy po prostu przypisać w mikserze potencjometr jako wejście kanału CH5. Wtedy obracając go w prawo mielibyśmy na wyjściu kanału zakres od 0 do +100%, a przy obrocie w lewo od 0 do -100%. Takie rozwiązanie nie jest jednak optymalne i prawie na pewno spowodowało by duże trudności w sterowaniu modelem. Po pierwsze byłoby bardzo trudno ustawić i precyzyjnie zmieniać wartość wzmocnienia. Po drugie zmiana trybu "Heading Lock" / "Tail Free" wymagałaby przejścia przez wszystkie wartości pośrednie, np. zmiana z 50 do -50 musiałaby się odbyć płynnie, przez wszystkie wartości pomiędzy. Dlatego w konfiguracji miksera użyłem następujących definicji kanału CH5: Normalnie aktywna jest pierwsza z reguł, przypisując do kanału krzywą GN1. Krzywa GN1 powoduje, że kiedy potencjometr S2 (wcześniej zdefiniowane wejście I5:Gain) obrócony jest maksymalnie w lewo, wartość kanału odczytywana jest przez Brain 2 jako wzmocnienie 40%. Kiedy potencjometr S2 obrócony jest maksymalnie w prawo, wartość wzmocnienia w Brain wynosi 60%. W pozycji środkowej wartość wzmocnienia wynosi 50%. Notka: Faktyczne wartości brzegowe krzywej wynoszą odpowiednio 36% i 57%, ale wynika z tego, że wartości brzegowe kanałów w OpenTX (988µs i 2012µs) różnią się nieznacznie od wartości oczekiwanych przez kontroler Brain 2. Dlatego wartości brzegowe krzywej należy dobrać doświadczalnie, obserwując wartości wzmocnienia odczytywane przez Brain 2. Dzięki takiej zdefiniowanej i przypisanej do kanału krzywej, pełny zakres obrotu potencjometrem S2 powoduje stosunkowo niewielkie zmiany wartości wzmocnienia (maksymalnie o 10 w każdą stronę). Jednocześnie zapewniona jest wysoka dokładność zmian, tj. potencjometr trzeba wyraźnie obrócić, aby spowodować zmianę wartości wzmocnienia o 1. Gdyby potrzeba była jeszcze większa dokładność, można dobrać wartości krzywej tak, aby zmiana w każdą stronę była jeszcze mniejsza, np. o 5 (czyli efektywny zakres wzmocnienia wynosiłby 45-55%). Wartości krzywej GN1 pozostają zawsze dodatnie, zatem Brain 2 pracuje w trybie "Heading "Lock". Teoretycznie można by użyć tej samej krzywej GN1, tylko przypisanej do kanału z wagą -100%, aby przełączać się w tryb "Tail Free". Jednak wspomniane wcześniej niedopasowanie wartości brzegowych kanałów (oraz niedopasowanie wartości środkowej) powoduje, że skonfigurowane w ten sposób przełączanie mogłoby nie trafiać w tę samą wartość, np. wartość +45% po przełączeniu mogła by być odczytana przez Brain 2 jako -44% lub -46%. Można by dopasować się idealnie z wartościami brzegowymi i wartością środkową, ale wygodniej jest zdefiniować krzywą GN2: bardzo podobną do GN1, ale w wartościami brzegowymi dobranymi doświadczalnie tak, by dla każdej wartości dodatniej, po przełączeniu przełącznika SD w dół, wartość wzmocnienia pozostawała dokładnie taka sama, zmieniając jedynie znak na ujemny (pamiętamy, że ujemne wartości wzmocnienia aktywują tryb "Tail Free"). Krzywa CV9 – NGV (ang. No Governor) Krzywa NGV aktywowana jest przełącznikiem SC↓ w mikserze: który jednocześnie steruje trybami lotu, w pozycji SC↓ dezaktywując governor w kontrolerze Brain 2: Połączenie obu konfiguracji (aktywowanie krzywej gazu na kanale CH3 oraz wyłączenie governora w Brain 2) spowoduje bezpośrednie sterowanie przepustnicą silnika zgodnie ze zdefiniowaną krzywą. W pozycji środkowej drążka gazu (X = 0) wartość kanału gazu (CH3) będzie wynosiła Y = -17%. W miarę przesuwania drążka gazu do dołu lub do góry (sterującego jednocześnie kątem nachylenia łopat wirnika głównego) wartość kanału będzie stopniowo rosła do Y = 100% (przepustnica gazu w pełnie otwarta, dostarczając maksimum mocy przy maksymalnym kącie nachylenia łopat). Notka: Krzywa NGV – mimo, że zdefiniowana jako "Smooth" ("Wygładzona") – w OpenTX Companion nie jest graficznie pokazywana jako wygładzona, z płynnymi przejściami. Wynika to wyłącznie z ograniczeń OpenTX Companion i być może będzie poprawione w przyszłych wersjach. W rzeczywistości, w nadajniku przebieg krzywej NGV jest gładki, z wartościami płynnie przechodzącymi od -17% do +100%: Oczywiście poszczególne wartości punktów na osi Y krzywej NGV należy dobrać dla konkretnego motoru, zgodnie z pożądaną charakterystyką oddawania mocy oraz zakładanymi obrotami silnika. W razie potrzeby można dodać więcej punktów lub ograniczyć ich ilość. W skrajnym przypadku mogłaby to być nawet dwupunktowa, płaska krzywa. OpenTX Companion – Zakładka Special Functions (Funkcje Specjalne) Chcąc zachować kolejność, w tym miejscu powinienem omawiać zakładkę Logical Switches (Przełączniki Logiczne). Jednak zdefiniowane w naszym przykładzie przełączniki logiczne wykorzystywane są głównie w funkcjach specjalnych, dlatego będę je omawiał w tym kontekście. Za pomocą funkcji specjalnych można realizować wiele różnych działań (akcji). Na przykład nadpisywać wartość wyjściową danego kanału, odtwarzać pliki dźwiękowe zapisane na karcie SD, odczytywać wartości parametrów telemetrycznych jako komunikaty głosowe, resetować lub ustawiać wartości parametrów telemetrycznych, włączać i wyłączać logowanie, zmieniać wartości zmiennych globalnych i wiele więcej. W tym artykule nie będę omawiał wszystkich dostępnych funkcji specjalnych. Skupię się tylko na tych, które są faktycznie użyte w naszej przykładowej konfiguracji. Ekran zakładki funkcji specjalnych zorganizowany jest w kolumnach: # (numer porządkowy SFn) Switch (Przełącznik) – Przełącznik fizyczny lub logiczny, który powoduje aktywowanie danej funkcji specjalnej. Funkcja jest aktywna tak długo jak przypisany do niej przełącznik pozostaje aktywny, tj. w przypadku przełącznika fizycznego pozostaje w zdefiniowanej pozycji, np. SA↓ (przełącznik SA do siebie) albo – w przypadku przełącznika logicznego – do czasu, kiedy przełącznik ten pozostaje logicznie prawdziwy (wartość logiczna "true / prawda / 1"). Notka: To ważne, aby zrozumieć, że dana akcja będzie aktywna przez cały czas, w którym przełącznik pozostaje aktywny. Nie jest tak, że aktywny przełącznik spowoduje tylko chwilowe wyzwolenie danej akcji. Omówię to bardziej szczegółowo w dalszej części artykułu. Action (Akcja) – Wybór działania, które jest aktywowane przełącznikiem. Na przykład rozpoczęcie odczytywania wartości parametru telemetrycznego. Parameters (Parametry) – Dodatkowe parametry określające sposób działania wybranej akcji. Niektóre akcje nie muszą mieć określonych żadnych parametrów. Enable (Włączone) – Określa, czy dana linia funkcji specjalnych jest aktywna (zaznaczony checkbox Enable / Włącz) albo ile razy i w jakich odstępach czasu dana akcja (działanie) ma być wykonywana: cyklicznie, co ile sekund (1..60 sek) bez powtórzeń (ang. No repeat) odtwarzaj raz, nie w trakcie uruchomienia radia (ang. Played once, not during startup) Ta ostatnia opcja jest przydatna, jeśli chcemy, aby jakiś komunikat został odczytany raz, ale jednocześnie niekoniecznie musimy słyszeć ten komunikat przy uruchamianiu radia, jeśli w tym czasie przełącznik jest w pożądanej pozycji. Na przykład: chcemy, aby przełącznik SA w pozycji ↑ był potwierdzony komunikatem głosowym "Throttle-Hold". Jednocześnie pozycja SA↑ jest domyślną pozycją, w jakiej ten przełącznik powinien się znajdować przy uruchamianiu radia (aktywowania / resecie modelu lub lotu). Zapewne niekoniecznie chcemy przy uruchamianiu radia słyszeć, że przełącznik jest w pozycji Throttle-Hold, gdyż jest to jego domyślne, bezpieczne położenie (chcemy jednak usłyszeć komunikat Throttle-Hold, kiedy przełącznik ten jest przełączany w tę pozycję z pozycji Spool-Up). W takiej właśnie sytuacji przydaje się opcja "Played once, not during startup". Podobnie jak w innych ekranach, każda linia ekranu funkcji specjalnych definiuje jedną regułę. Przy czym kolejność nie ma tutaj większego znaczenia, chyba że definiujemy reguły przypisane do tego samego przełącznika i mające taką samą akcję (działanie). W takim przypadku pod uwagę będzie brana ostatnia aktywna reguła aktywowana danym przełącznikiem. Analiza reguł funkcji specjalnych W naszym przykładzie zdefiniowane są następujące funkcje specjalne. Większość z nich aktywowana jest w podstawowy sposób, tj. w konkretnym położeniu jednego z przełączników fizycznych. Niektóre działania aktywowane są jednak za pomocą przełączników logicznych, które będę każdorazowo omawiał. Tak wyglądają definicje wszystkich przełączników logicznych stosowanych w modelu – zakładka Logical Switches (Przełączniki Logiczne): Reguły funkcji specjalnych SF1-SF4 Realizujemy tutaj dwie funkcjonalności: bezwzględne odcięcie silnika, tzw. kill-switch (kanał CH3 na -100%) oraz włączenie logowania parametrów telemetrycznych na karcie SD. SF1: Odcięcie silnika (zamknięcie przepustnicy gazu) jest aktywowane przełącznikiem SF↓. Jest realizowane funkcją Override (Nadpisanie), z parametrem -100. Efektem jest bezwzględne nadpisanie kanału CH3 wartością -100%, niezależnie od istniejących funkcji miksera (funkcja specjalna nadpisania wartości kanału wykonywana jest na końcu przetwarzania sygnałów w OpenTX), co powoduje zamknięcie przepustnicy gaźnika silnika nitro. SF2: Do tego samego przełącznika SF↓ przypisane jest działanie odczytania komunikatu zdefiniowanego w pliku 7engdi.wav (Engine disarmed / Silnik rozbrojony). Komunikat ten odczytywany jest tylko raz, ale nie podczas włączania radia (podczas włączania radia sprawdzamy, czy przełącznik SF jest w pozycji ↓, zatem nie ma sensu potwierdzać głosowo jego domyślnej, bezpiecznej pozycji). SF3: Przełączenie SF do pozycji ↑ spowoduje automatycznie dezaktywację reguły nadpisującej kanał CH3 (przełącznik nie będzie już w pozycji SF↓). Nie ma zatem potrzeby definiowania dedykowanej reguły wyłączającej funkcję nadpisania (kanał CH3 będzie sterowany regułami miksera). W pozycji przełącznika SF↑ definiujemy za to działanie odtworzenia komunikatu z pliku 7engar.wav (Engine armed / Silnik uzbrojony). Komunikat ten odtwarzamy raz, ale zawsze, tj. także przy włączaniu radia (jeśli przypadkiem zignorujemy ostrzeżenie o stanie przełączników, zostanie odczytany komunikat głosowy, że silnik jest uzbrojony). Reguła SF4 funkcji specjalnych aktywowana jest przełącznikiem logicznym L02. Zatem tak długo, jak przełącznik L02 będzie przyjmował wartość logiczną "prawda", będą logowane parametry telemetryczne, z częstością co 0.2 sek (czyli pięć razy na sekundę). Logowane będą wszystkie parametry telemetryczne, dla których w zakładce Telemtry (Telemetria) zaznaczono, że mają być logowane (checkbox "Logs / Logi"). Przełącznik logiczny L02 (a także L01 będący jego częścią) zdefiniowany jest w następująco (w zakładce Logical Switches / Przełączniki logiczne): Działania przełączników L01 oraz L02 opisałem już wcześniej, gdy opisywałem wyzwalanie timera (licznika) odpowiedzialnego za mierzenie długości lotu. Przypomnę zatem tylko, że przełącznik L02 aktywuje się wtedy, gdy przy "uzbrojonym" silniku (SF↑) zostanie po raz pierwszy wykonany Spool-Up (SA↓), czyli rozruch wirnika modelu. Dzięki funkcji "Sticky" (ang. klejący) przełącznik L02 pozostaje aktywny (wartość logiczna "prawda"), niezależnie ot tego, ile razy będziemy przełączali Spool-Up / Throttle Hold (czyli przełączali SA). L02 zostanie dezaktywowany dopiero wtedy, gdy "rozbroimy" silnik przełącznikiem SF↓. Używając zdefiniowanego w ten sposób przełącznika logicznego L02, sterujemy czasem licznika mierzącego w miarę dokładnie faktyczny czas lotu, czyli od pierwszego rozruchu wirnika głównego modelu (Spool-Up), do czasu ostatecznego zgaszenia silnika, w międzyczasie mogąc wykonywać dowolną ilość cykli Throttle-Hold / Spool-Up. Tego samego przełącznika L02 używamy w regule funkcji specjalnych SF4 do aktywowania logowania. Wszak zwykle chcemy logować parametry lotu, a niekoniecznie co się dzieje kiedy niesiemy model na płytę lotniska. Reguły funkcji specjalnych SF6-SF8, SF10-SF11, SF13-SF15, SF16-SF18 To bardzo proste reguły, powodujące odczytywanie komunikatów głosowych potwierdzających przełączanie przełączników fizycznych do określonych pozycji, zgodnie z założeniami naszego projektu. Są to kolejno: SF6: Flight mode normal SF7: Flight mode sport SF8: No-governor SF10: Throttle-Hold SF11: Spool-Up SF13: Idle-Up 1 SF14: Idle-Up 2 SF15: Idle-Up 3 SF17: Tail lock SF18: Tail free Domyślne, sprawdzane podczas uruchamiania radia pozycje przełączników, włączone są z opcją „Played once, not during startup” (Odtwarzaj raz, nie w trakcie uruchomienia radia). Pozostałe komunikaty głosowe włączone są z opcją „No repeat” (Bez powtórzeń). Reguły funkcji specjalnych SF20-SFS1 Przełącznik chwilowy (ang. momentary switch) SH ma za zadanie aktywować funkcję „rescue” kontrolera Brain 2 (kanał AUX kontrolera, sterowany kanałem CH8). W regułach miksera, używając funkcji MAX z odwróconą wagą, ustalamy wartość kanału CH8 na -100%. Odpowiada to nieaktywnej funkcji „rescue”. Moglibyśmy wartość kanału CH8 zmieniać w mikserze, ale ponieważ funkcja „rescue” ma działać zawsze, wolę ją aktywować przy użyciu działania „Override” (Nadpisanie) funkcji specjalnych. Reguła SF20, w momencie przytrzymania przełącznika chwilowego SH, nadpisuje wartość kanału CH8, w efekcie aktywując „rescue” w kontrolerze Brain 2. Jednocześnie reguła SF21, odtwarza stosowny komunikat głosowy „Rescue” (w momencie aktywacji przełącznika i potem co 10 sekund, tak długo jak przełącznik SH pozostaje w pozycji SH↓). Reguły funkcji specjalnych SF23-SF24 W pozycjach przełącznika SG- oraz SG↓, co 15 sekund, odczytywane są wartości wybranych zmiennych telemetrycznych. Wybrałem obroty silnika (RPM) oraz wartość napięcia zasilania odbiornika (RxBt). Reguły funkcji specjalnych SF26-SF27 Reguła SF26 to prosta reguła odtwarzająca komunikat o niskim poziomie napięcia baterii („RX Battery Low”). Jednocześnie, ponieważ jest to bardzo istotna informacja, w regule SF27 aktywowany jest alarm wibracyjny (ang. Haptic) rodzaju drugiego (różne rodzaje wibrowania mają przypisane numery od 0 do 3). Dzięki temu, jeśli z jakiegoś powodu nie usłyszymy komunikatu głosowego, radio wibrując da nam dodatkowo znać, że dzieje się coś krytycznie istotnego. Komunikat głosowy powtarzany jest co 20 sekund, a wibracyjny do 60 sekund. Same reguły SF26 i SF27 są proste i nie wymagają specjalnego komentarza. Obie reguły aktywowane są za pomocą przełącznika logicznego L07, któremu jednak poświęcę nieco więcej uwagi: Przełącznik L07 można by zdefiniować tak jak przełącznik L04, tzn. stawałby się on aktywny, gdy napięcia spadłoby poniżej określonego poziomu (w przykładzie parametr RxBt i poziom 7.4V). Problem z taką definicją przełącznika wykrywającego zbyt niskie napięcie jest taki, że przy napięciu akumulatora w okolicy 7.4V będzie on wielokrotnie i w krótkich odstępach czasu aktywowany, w zależności od chwilowego obciążenia akumulatora (napięcie będzie oscylowało w okolicy 7.4V). W efekcie zamiast komunikatu głosowego co 20 sekund i wibracyjnego co 60 sekund, mielibyśmy wiele, często zaraz po sobie występujących komunikatów i alarmów wibracyjnych. Spełniło by to swoją funkcję, ale nie byłoby to zbyt eleganckie. W OpenTX można to skonfigurować znacznie lepiej. Rozwiązaniem jest badanie napięcia przez jakiś ustalony czas. Gdy napięcie będzie przez ten ustalony czas stale niższe od zadanego progu, dopiero wtedy wyzwalanie alarmu. Raz wyzwolony alarm nie powinien być kasowany, nawet jeśli napięcie chwilowo wróci do poziomu powyżej progu wyzwolenia (w naszym przykładzie 7.4V). Szczegółowe omówienie przełączników logicznych nie jest przedmiotem niniejszego artykułu. W skrócie każda reguła ekranu przełączników logicznych zawiera: Numer przełącznika # (L01-L064) Funkcję (logiczne AND, OR, XOR; różne funkcje porównywania parametrów, np. a<x, funkcje specjalne Edge, Sticky, Timer) V1 (Wartość 1) V2 (Wartość 2) Przełącznik „I” (ang. AND) Dodatkowe parametry „Czas trwania” i „Opóźnienie” (ang. Duration, Delay) W zależności od wybranej funkcji, wartości V1 / V2 oraz pozostałe parametry mogą mieć różne znaczenie. Po szczegóły muszę tutaj odesłać do dokumentacji OpenTX, ale postaram się wyjaśnić działanie przełączników, które składają się na finalną funkcjonalność przełącznika L07, który wykorzystujemy w regułach SF26 / SF27 funkcji specjalnych. Przełącznik logiczny L04 Ten przełącznik rozpoczyna ścieżkę, prowadzącą do aktywacji przełącznika L07. Przełącznik logiczny L04 wykorzystuje funkcję porównywania „a<x”, gdzie „a” jest definiowane w kolumnie V1 (Wartość 1), a „x” jest definiowane w kolumnie V2 (Wartość 2). W naszym przykładzie jako V1 podajemy parametr telemetryczny RxBt, a w V2 definiujemy wartość progową 7.4V. Przełącznik L04 będzie się aktywował za każdym razem, gdy wartość napięcia spadnie poniżej zadanego progu 7.4V. Jak pisałem, będzie się to działo wielokrotnie, blisko napięcia progowego. Przełącznik logiczny L06 (celowo tymczasem pomijam L05) Ten przełącznik wykorzystuje funkcję Edge (instant) / Brzeg (natychmiastowy) do badania czy przełącznik zadany w kolumnie V1 (Wartość 1), pozostaje aktywny przez czas zdefiniowany w kolumnie V2 (Wartość 2). Jeśli tak się stanie, przełącznik logiczny L06 na chwilkę stanie się aktywny. Nie jest to aż tak bardzo istotne, ale w tym przypadku „na chwilkę” oznacza na około 30 ms, jako że parametr „Duration” (Czas trwania) ustawiony jest na zero (ok. 30 ms to najkrótszy możliwy czas wyzwalanego funkcją Edge impulsu). Taki krótki impuls jest jednak wystarczający do wykorzystania w następnej regule, definiującej już nasz docelowy przełącznik L07. Przełącznik logiczny L07 Definicja przełącznika L07 wykorzystuje funkcję Sticky (ang. klejący, Trwałe przełączenie), której działanie polega na trwałym aktywowaniu przełącznika L07 w momencie, gdy (nawet na chwilkę) aktywny jest przełącznik zadany w kolumnie V1 (Wartość 1). Przełącznik L07 pozostanie aktywny tak długo, aż (także chociaż na chwilkę) aktywny stanie się przełącznik zadany w kolumnie V1 (Wartość 2). W kolumnie V1 (Wartość 1) używamy zdefiniowanego wcześniej przełącznika L06, który z kolei staje się aktywny, gdy przełącznik L04 pozostanie aktywny przez 3 sekundy. W efekcie uzyskujemy pożądaną funkcjonalność: przełącznik L07 staje się trwale aktywny, jeśli napięcie akumulatora spadnie poniżej 7.4V przez co najmniej 3 sekundy. Dodatkowo przełącznik L07 pozostanie aktywny, nawet jeśli napięcie na chwilkę wróci do poziomu nieco powyżej 7.4V (np. jeśli 3 sekundy to jednak nie wystarczający czas i napięcie chwilowo się podniesie w wyniku spadku obciążania prądowego). Komunikaty głosowe i wibracyjne, aktywowane przełącznikiem L07, będą działały stabilnie, bez zbędnych fluktuacji wywołanych oscylacją napięcia w okolicy zadanego progu 7.4V. Pozostaje jeszcze kwestia dezaktywacji przełącznika L07 po wymianie lub naładowaniu akumulatora w modelu. Dzieje się to automatycznie w momencie ponownego uruchomienia radia, w momencie aktywowania modelu lub poprzez zresetowanie lotu w OpenTX. Programową dezaktywację przełącznika L07 można by zatem pominąć. Jednak dla wygody – gdybyśmy wymienili akumulator w modelu, ale nie zresetowali lotu – przełącznik L07 jest dezaktywowany, gdy przełącznik zdefiniowany w kolumnie V2 (Wartość 2) choć na chwilę stanie się aktywny. W kolumnie V2 przełącznika L07 podajemy przełącznik L05, który staje się aktywny, gdy napięcia akumulatora choć na chwilę przekroczy 8. W praktyce taka sytuacja (powrót napięcia z okolicy 7.4V do powyżej 8.0V) ma szanse wydarzyć się tylko po wymianie / naładowaniu akumulatora. W ten sposób przełącznik L07 jest dezaktywowany i pozostanie w takim stanie do czasu, aż napięcie ponownie spadnie poniżej 7.4V, przez co najmniej 3 sekundy. (3 sekundy to czas, jaki wg mnie działa i dobrze wykrywa faktycznie niski poziom napięcia akumulatora; nic nie stoi na przeszkodzie, aby czas ten nieco wydłużyć, np. nawet do 8-10 sekund). Reguły funkcji specjalnych SF29-SF32 Za pomocą tych dwóch reguł realizujemy funkcjonalność regulowania pozycji serwomechanizmu przepustnicy gazu dla Throttle-Hold (silnik pracujący na biegu jałowym). Chcemy, aby pozycja Throttle-Hold była regulowany wyłącznie, gdy aktywny jest przełącznik Throttle-Hold (przełącznik SA w pozycji innej niż do dołu, czyli !SA↓). Dzięki temu nie zmienimy przypadkowo poziomu Throttle-Hold w trakcie lotu, co mogłoby spowodować zgaszenie silnika przy celowym przełączeniu go w locie na bieg jałowy, np. w trakcie ćwiczenia auto-rotacji. Przypomnę, że wartość poziomu przepustnicy gazu dla Throttle-Hold przechowywana jest w zmiennej globalnej GV5:TH (zmienną tę wykorzystujemy w regule miksera ThHold dla kanału Throttle). Dwie pierwsze reguły SF29 oraz SF30 regulują (ang. adjust) zmienną TH, zwiększając (ang. increment) ją o zadaną wartość, odpowiednio 0.5 oraz minus 0.5. Dzięki temu przy aktywacji tych reguł, zmienna TH będzie nieco zwiększana lub zmniejszana, regulując poziom obrotów silnika dla biegu jałowego silnika. Dodatkowo, reguły SF31 oraz SF32 odtwarzają jeden ze standardowych, krótkich dźwięków (Tick), tak by manipulowanie trymem przepustnicy było sygnalizowane dźwiękowo (pamiętamy, że trymy jako takie wyłączyliśmy na ekranach Faz Lotu; tutaj niejako manualnie realizujemy specjalną funkcjonalność, regulującą Throttle-Hold tylko, gdy przełącznik SA jest w pozycji innej niż ↓, dlatego musimy sami zadbać o sygnalizację dźwiękową). Normalnie, aby aktywować powyższe reguły, przypisalibyśmy do nich odpowiednio przełączniki ThrTrim Up oraz ThrTrim Down. My jednak używamy przełączników logicznych L09 oraz L10, zdefiniowanych regułami w zakładce Logical Switches (Przełączniki Logiczne): Dzięki użyciu funkcji AND (logiczne „i”) przełączniki L09 oraz L10 aktywują się (przyjmują wartość logiczną „prawda”) tylko, gdy przełącznik SA jest w pozycji !SA↓ (czyli nie do siebie, czyli gdy aktywny jest Throttle-Hold) oraz (AND) gdy jednocześnie przełącznik trymu przepustnicy przełączany jest do góry albo do dołu (odpowiednio ThrTrim Up albo ThrTrim Down). Jeśli przełącznik SA będzie w pozycji do dołu SA↓ (Idle-Up; silnik pracuje na wysokich obrotach) przełączanie trymu nie będzie aktywowało przełączników logicznych L09 ani L10. W efekcie wartość zmiennej TH nie będzie modyfikowana w trakcie lotu. Reguła funkcji specjalnej SF34 W modelu używamy czujnika GPS, który między innymi podaje wysokość lotu, jako parametr telemetryczny GAlt. Normalnie wysokość GAlt podawana jest jednak względem poziomu morza, co nie jest bardzo użyteczne w naszym zastosowaniu. Dlatego w momencie startu wartość GAlt należy wyzerować (ang. reset). Od momentu wyzerowania wskazywana będzie wysokość względem miejsca wykonania resetu. Aby zresetować GAlt, należy chwilowo aktywować funkcję Reset. Ważne jest, aby funkcję Reset wykonać chwilowo i jednorazowo. Aktywowanie tej funkcji zwykłym przełącznikiem (pozostawionym w danej pozycji; np. Idle-Up albo przełącznik Kill-Swiych) powodowało by ciągłe resetowanie GAlt i w konsekwencji ciągłe logowanie wysokości zero. Można byłoby to co prawda wykonać Reset dedykowanym, zwykłym przełącznikiem, ale trzeba by każdorazowo o tym pamiętać i przełączyć go faktycznie chwilowo. Z pomocą przychodzi przełącznik logiczny L12: Przełącznik L12 używa funkcji Edge (ang. krawędź), która w zadanej konfiguracji wyzwala jednorazowy impuls trwający (ang. duration) 0.1 sekundy. Wyzwolenie impulsu jest natychmiastowe (ang. instant), w momencie, gdy aktywny stanie się przełącznik L02 zdefiniowany w kolumnie V1 (Wartość 1). Po wyzwoleniu przełącznik L12 jest aktywny tylko tak długo, jak długo trwa impuls, czyli jedną dziesiątą sekundy. Przełącznika L02 używaliśmy już wcześniej i wtedy szczegółowo omawiałem jego działanie. Zatem tylko dla przypomnienia: staje się on aktywny w momencie w momencie startu (Kill-Switch + po raz pierwszy Idle-Up) i wyłącza się dopiero gdy użyjemy przełącznika Kill-Switch. Finalnie uzyskujemy zatem taki efekt: w momencie startu modelu (pierwsze użycie Idle-Up) przełącznik L02 staje sie aktywny i jednocześnie aktywuje przełącznik L12, ale ten tylko jednorazowo i tylko na 0.1 sekundy (funkcja Edge). Ta krótkotrwała aktywność L12 powoduje wyzerowanie parametru telemetrycznego GAlt, który od tego momentu pokazuje wysokość względem punktu startu. Reguły funkcji specjalnych SF36-SF37 Te dwie proste funkcje realizują alarm o zbyt wysokiej temperaturze silnika (parametr telemetryczny GTp1 czujnika Gas Suite). Po aktywacji funkcja specjalna SF36 co 10 sekund odczytuje głosowo wartość temperatury, a SF37 co 30 sekund aktywuje alarm wibracyjny. Obie funkcje aktywowane są za pomocą przełącznika logicznego L14: Przełącznik L14 (podobnie jak przełączniki L04 oraz L05) porównuje wartość monitorowanego parametru GTp1 z zadaną wartością progową 49°C. Ze względu na swoją specyfikę, temperatura silnika nie oscyluje w okolicy wartości progowej, ale gdy ją przekroczy, zwykle przez dłuższy czas pozostaje. Zatem w definicji L14 wystarczy zwykłe porównanie a>x (gdzie to a=GTp1, a x=49°C), nie musimy posiłkować się dodatkowymi zmiennymi jak w przypadku L04-L07. OpenTX Companion – Zakładka Telemetry (Telemetria) W zakładce telemetrii zdefiniowane są czujniki telemetryczne, które wykorzystujemy w różnych miejscach konfiguracji modelu. W OpenTX 2.1 i nowszych, czujniki najlepiej wykrywać dynamicznie, tzn. podłączyć wszystko w modelu i uruchomić w radiu uruchomić funkcję wykrywania (ang. discovery) podłączonych czujników Smart Port. Konfigurację telemetrii FrSky Smart Port opisałem bardzo szczegółowo w innym artykule Warsztatu FrSky – Telemetria OpenTX 2.1, nie będę zatem powtarzał wszystkiego tutaj. Warto może tylko wspomnieć, że ponieważ czujniki z zakładki Telemetry używane mogą być we wielu miejscach konfiguracji modelu, to właśnie od wykrycia podłączonych czujników (lub ich ręcznego zdefiniowania) warto rozpocząć proces konfiguracji modelu w OpenTX. Dołożyłem wszelkich starań, aby artykuł był profesjonalnie i rzetelnie przygotowany. Korzystasz jednak na własną odpowiedzialność. Artykuł umieszczony na forum 77Hobby – FrSky Premier Dealer i propagatora systemu OpenTX. Wszelkie prawa zastrzeżone. Kopiowanie lub rozpowszechnianie, w całości lub części, jest dozwolone wyłącznie za zgodą autora.
  2. Poniższa instrukcja zakłada, że odbiornik pracuje w trybie normalnym, nie w Quick mode (nazywany także simple lub convenient). Od jakiegoś czasu Quick mode jest domyślnym trybem, w jakim dostarczane są odbiorniki serii S. Zalecamy używanie trybu normalnego, gdyż jest znacznie bardziej przejrzysty (dedykowany kanał dla aktywacji self-check) i daje możliwość konfiguracji wszystkich opcji odbiornika serii S. W celu przestawienia odbiornika w tryb normalny, należy odznaczyć opcję Quick mode w oprogramowaniu konfiguracyjnym pod PC: lub przy pomocy skryptów LUA w przypadku konfigurowania odbiornika przez aparaturę RC (OpenTX). Po odznaczeniu opcji trzeba zapisać konfigurację odbiornika (przycisk "Write" w oprogramowaniu konfiguracyjnym PC). Odbiorniki S6R / S8R oferują funkcje stabilizacji lotu oraz wspomagania wykonywania niektórych figur akrobacyjnych. Przed lotem wymagają one jednak kalibracji, konfiguracji odbiornika, wykonania procedury self-check oraz odpowiedniej konfiguracji OpenTX w nadajniku. Konfigurację odbiorników serii S należy rozpocząć od pobrania najnowszej wersji firmware (ze stron FrSky) i uaktualnienia posiadanego odbiornika. Jest to szczególnie ważne w przypadku tych odbiorników, jako że są one obecne w sprzedaży od stosunkowo niedawna, a dodatkowo ich specyfika (funkcje stabilizacji) powodują, że FrSky wypuszcza nowe wersje firmware znacznie częściej niż dla innych odbiorników. Opis przeprowadzenia uaktualnienia firmware znajdziecie w niniejszych artykułach Warsztatu FrSky: http://77hobby.pl/uaktualnienie-firmware-urzadzen-smart-port-n-15.html http://77hobby.pl/uaktualnienie-firmware-urzadzen-smart-port-przez-opentx-21-n-20.html Możecie mieć też dylemat, czy użyć wersji firmware międzynarodowej, czy EU-LBT. Tutaj pomocny będzie ten artykuł: http://77hobby.pl/firmware-nadajnikow-i-odbiornikow-frsky-kompendium-n-21.html W Europie należy oczywiście używać firmware EU-LBT. Uaktualniony odbiornik jest gotowy do kalibracji, konfiguracji i wykonania procedury self-check. Opiszę to w innym poście / artykule Warsztatu FrSky, jako że tutaj skupiam się na konfiguracji OpenTX. Nie zapomnijcie jednak o kalibracji i self-check – bez tego nie wolno Wam wystartować modelu! Zgodnie z instrukcją obsługi, kanały 9, 10, 11 i 12 służą do sterowania funkcjami odbiornika. W OpenTX można ustawić je na wiele sposobów. Tutaj pokażę najprostszą konfigurację, w której wszystkie kombinacje funkcji będą dostępne. Ilość kanałów Przede wszystkim należy ustawić ilość kanałów, jaka będzie wysyłana z nadajnika do odbiornika. Domyślnie jest to 8 kanałów, co nie zapewni przekazywania kanałów 9-12. W konsekwencji niezależnie od tego, co ustawimy w mikserze kanałów, i tak nie będzie to wysyłane do odbiornika (bo będą wysyłane tylko kanały 1-8). Zmieniamy zatem ilość wysyłanych kanałów do dwunastu: Dla pewności dopiero teraz bindujemy odbiornik. Kanał 9 Służy do ustawienia czułości aplikowanej korekty (stabilizacji), oczywiście jeśli stabilizacja została aktywowana kanałami 10 i 11. Wartość kanału 0% odpowiada całkowitemu brakowi stabilizacji (czułość zero), a wartości +100% lub -100% wymuszają maksymalną czułość. W praktyce sensowne wartości czułości są od 10% do powiedzmy 90%. Taki zakres umożliwi testowanie praktycznie całego zakresu czułości i dobranie najbardziej odpowiedniej wartości dla danego modelu. Problemem pozostaje, że czułość minimalna jest w "środku" kanału, a maksymalne wartości osiągane są na obu skrajach kanału (+100% lub -100%). Znacznie fajniej byłoby mieć ustawienie minimalnej czułości (w naszym przypadku 10% czułości) przy wychyleniu -100% kanału, a maksymalnej czułości (90%) przy maksymalnej wartości kanału +100%. Dzięki temu moglibyśmy przyporządkować do kanału 9 jeden z potencjometrów i płynnie regulować zakres czułości 10-90% w pełnym zakresie obrotu potencjometru. (nic nie stoi na przeszkodzie, aby regulować zakres czułości do pełnych 100%, ale w tym przykładzie lepiej jest mi posłużyć się zakresem do 90% - aby odróżnić go od wartości +100% kanału) Do "zmapowania" pełnego zakresu obrotu potencjometru z zakresem 10-90% czułości posłuży nam krzywa: Wystarczy krzywa dwu-punktowa, standardowa liniowa, o nazwie "GN", gdzie wartości -100 kanału (oś X) odpowiada wartość 10 czułości (oś Y); natomiast wartości 100 kanału odpowiada wartość 90 czułości. W ten sposób mapujemy wartości kanału do pożądanych wartości czułości. Następnie przypisujemy potencjometr S1 do kanału nr 9: Zwróćcie uwagę na krzywą GN przypisaną w konfiguracji kanału (Curve Cstm GN). Sprawdzamy w monitorze kanałów OpenTX, czy wszystko działa jak powinno. Potencjometr S1 obrócony maksymalnie w lewo powinien wymuszać wartość kanału nr 9 na 10%, obrócony maksymalnie w prawo na 90%, a w trakcie obrotu przechodzić płynnie w zakresie 10-90%. (monitor kanałów uaktywnia się w dowolnym momencie konfiguracji modelu w OpenTX, przytrzymując przez chwilę przycisk MENU nadajnika) W tym przykładzie zwróćcie uwagę na wartość kanału 9 (nazwanego dla wygody S6GAIN) - wartość kanału wynosi 10%, podczas gdy potencjometr S1 obrócony był maksymalnie w lewo. Kanały 10 i 11 Kombinacja wartości ustawiona na tych kanałach aktywuje poszczególne tryby pracy odbiornika. Szczegóły znajdziecie w tabelce naszej polskiej instrukcji do odbiorników S6R / S8R. Na przykład kanał 10 ustawiony na +100% i jednocześnie kanał 11 ustawiony na 0% powodują aktywowanie trybu stabilizacji. Pamiętajcie, że czułość tej stabilizacji będzie ciągle regulowana wartością kanału nr 9. Nie zostawiajcie go zatem na 0% (co równe jest 0% czułości = brak stabilizacji). Podstawowa konfiguracja w OpenTX będzie zatem bardzo prosta. Przypiszemy kanały 10 i 11 bezpośrednio do dwóch przełączników trój-pozycyjnych, powiedźmy odpowiednio SB i SC: Szczegóły kanału 10: Szczegóły kanału 11: W takiej konfiguracji możemy łatwo wymuszać dowolne kombinacje kanałów 10 i 11, gdzie każdy z kanałów może przyjmować wartości -100%, 0% i +100% w zależności od położenia trój-pozycyjnych przełączników SB i SC. Znowu warto sprawdzić w monitorze kanałów, czy wszystko działa jak zakładaliśmy: Przełączniki w pozycjach: SB↓ SC– co odpowiada wartościom kanałów -100% i 0%, odpowiednio dla kanału 10 i 11. Potencjometr w środku, co ustawia wartość kanału 9 na 50%. W zasadzie jesteśmy gotowi do testowania odbiornika. Kanał 12 Do skonfigurowania pozostaje nam jednak kanał 12. Służy on do uaktywnienia procedury self-check. Kanału 12 można w nadajniku nie konfigurować wcale. Procedurę self-check należy aktywować wyłącznie na ziemi i można to zrobić przy pomocy przycisku F/S odbiornika. Tak też zalecamy to zrobić (patrz poniżej: uaktualnienie maj 2019). Jednak gdyby konfiguracja kanału 12 była jednak potrzebna (np. odbiornik zamontowany w trudno dostępnym miejscu modelu) po prostu przypiszcie kanału 12 do jakiegoś trój-pozycyjnego przełącznika, podobnie jak dla kanałów 10 i 11. Pamiętajcie jednak, że trzykrotne "przejście" kanału przez wartość 0% (w nowszych firmware odbiornika) lub ustawienie go na wartość +100% lub -100% (dla starszych wersji firmware) spowoduje aktywowanie procedury self-check. Jeśli stanie się to w locie, stracicie kontrolę nad modelem! Uaktualnienie maj 2019: w firmware dla 181108 wyłączono możliwość aktywacji self-check przy pomocy przycisku F/S. Dodatkowo, aby zadziałała aktywacja self-check przez kanał CH12, drążek przepustnicy musi być w pozycji maksymalnie do dołu (CH3 na -100%). To tylko przykład podstawowej konfiguracji. W praktyce pewnie skonfigurujecie kanały 10 i 11 tylko dla trybów, których używacie. Może na jednym tylko przełączniku, wyzwalającym konkretne tryby pracy nadajnika (ustawiając naraz dwa kanały). Jak to w OpenTX – możliwości jest mnóstwo. Mam jednak nadzieję, że niniejszy opis przyda się Wam jako punkt startowy dla własnej konfiguracji, dostosowanej do konkretnego modelu. To wszystko w tym krótkim FAQ. Raz jeszcze powtórzę, żeby wgrać najnowszy firmware odbiornika, skalibrować go, skonfigurować i przeprowadzić procedurę self-check – koniecznie przed pierwszym lotem . W FAQ używałem ekranów Taranisa X9D+ jako przykładu. Ekrany X9D dają niewielkie obrazki, a sam X9D jest najpopularniejszym radiem FrSky. W OpenTX dla Taranisa Q X7 albo Horusa ekrany będą nieco inne, ale ciągle bardzo podobne. Może lepiej jednak używać ekranów z OpenTX Companion? Dajcie znać co sądzicie. Jeśli macie jakieś pytania, piszcie poniżej.
  3. Konfiguracja wariometru FrSky (vario) w OpenTX składa się z trzech kroków: Wykrycia czujników Przypisania wykrytego czujnika VSpd jako źródła wariometru Przypisania przełącznika uaktywniającego funkcję wariometru i/lub odczytywania wysokości podawanej przez wariometr Opcjonalnie można zmienić tony dźwięków wskazujących wznoszenie, opadanie, czy brak zmiany wysokości. W poniższym FAQ zakładam, że używany jest OpenTX 2.1 lub nowszy (wykrywane czujniki telemetryczne faktycznie podłączone do odbiornika, a nie zdefiniowane na stałe, jak było to w OpenTX 2.0 i starszych). Konfigurację przeprowadza się tak samo dla wariometru czujnika Smart Port, jak i dla wariometru wbudowanego np. w odbiornik G-RX8. KROK 1: Wykrycie czujników Przeprowadzamy zgodnie z artykułem Telemetria OpenTX 2.1. Powinny zostać wykryte dwa czujniki: VSpd oraz Alt: Po wykryciu obu czujników można zatrzymać funkcję wykrywania przez wybranie "Stop discovery". VSpd to czujnik reprezentujący prędkość wznoszenia lub opadania modelu, wyrażoną w m/s (jeśli wybrano metryczne jednostki miary). Alt to wskaźnik wysokości względem punktu, w którym nastąpiło włączenie wariometru, mierzony na podstawie pomiaru ciśnienia atmosferycznego. Ze względu na metodę pomiaru (pomiar ciśnienia atmosfery) zmiana tego wskaźnika w czasie jest normalnym zachowaniem wariometru – nie należy traktować wskazania wysokości wariometru jako dokładnego pomiaru. Dokładną i niezmienną w czasie wysokość w przestrzeni podaje czujnik GPS. KROK 2: Przypisanie czujnika VSpd jako źródła danych dla wariometru Na tym samym ekranie telemetrii, nieco poniżej, znajduje się opcja wskazująca, który czujnik ma być brany pod uwagę jako źródło danych dla wariometru. Należy wybrać VSpd: Zmiana wartości przypisanego czujnika będzie sygnalizowana dźwiękami o różnych tonach. Domyślnie są to wysokie tony przy zmianie dodatniej (wznoszenie), tony niskie przy zmianie ujemnej (opadanie). W przypadku braku zmiany można wybrać ton ciągły "Tone" lub brak dźwięków "Silent". KROK 3: Przypisania przełącznika uaktywniającego funkcję wariometru i/lub odczytywania wysokości podawanej przez wariometr W tym momencie wariometr jest już skonfigurowany, trzeba go jednak uaktywnić, aby zaczął wskazywać zmiany wysokości. Robi się to na ekranie funkcji specjalnych: W powyższym przykładzie w pozycji środkowej przełącznika SD funkcja wariometru jest aktywowana (powinny być słyszalne dźwięki, o tonach zmieniających się wraz ze zmianą wertykalnego położenia czujnika). Natomiast w pozycji dolnej przełącznika co 10 sekund odczytywana jest aktualna wysokość podawana przez wariometr. Opcjonalnie można zmienić parametry sygnałów dźwiękowych wariometru. Robi się to w menu konfiguracji radia (nie w menu modelu):
×
×
  • Create New...