Witam, od niedawna, jestem posiadaczem APM 2.6, po przesiadce z DJI Nazy. Wszystko było by w porządku, gdyby nie pewien "drobiazg", który psuł mi zabawę z APM. Niestety, aparaturę jaką posiadam do copterów, to Turnigy TGY 9X (z softem er9x). O ile w przypadku DJI Naza nie mam problemu z załączeniem Failsafe po wyłączeniu aparatury, to w przypadku APM sprawa się skomplikowała. Po wyłączeniu aparatury, APM pozostaje w ostatnich zapamiętanych wartościach odebranych z odbiornika.
A to, zdecydowanie jest problem. W pierwszej kolejności winą obarczyłem odbiornik 9X8Cv2 - no bo jak by nie inaczej? Po zmianie odbiornika na FrSky, sprawa wyglądała dokładnie tak samo. Wstawiłem nowy odbiornik 9X8Cv2 i wyglądało tak samo. Pomyślałem więc, że coś jest nie tak z sygnałem z odbiorników. Aby się przekonać jak to jest z wartościami sygnału z odbiornika po wyłączeniu aparatury, posłużyłem się Arduino Uno wgrywając tam sketch ze strony do odczytu wartości sygnału PPM. Wgrałem soft do Uno, podłączyłem pod odbiornik i załączam aparaturę. Jakież było moje zaskoczenie, gdy po wyłączeniu aparatury i odczytaniu wartości, wynosiła 0 (zero) - a nie 975 (moje minimum dla Thr w APM). Wnioski: APM 2.6 nie przyjmuje wartości 0 (zero) jako wartości poprawnej, umożliwiając załączenie się trybu Failsafe po zaniku sygnału z odbiornika. Rozwiązanie. W pierwszej kolejności, rozwiązaniem było by dla mnie poprawienie kodu. Jednak jakiekolwiek zmiany w kodzie wykonane przezemnie, nie będą odzwierciedlone w głównym branch'u - a to dla mnie wada. Drugim rozwiązaniem było by "wyniesienie kodu" mojej poprawki "przed" APM - a zrobić to mogłem dokładając pomiędzy APM a odbiornik moduł z arduino. W szufladzie leżał bezczynnie Arduino Mini więc rozwiązanie było dość proste. Program. Odczytuje wartość sygnału PPM z pinu ArduMini(do którego podłączony jest odbiornik, kanał 3): pulseIn(PPMinput, HIGH) następnie po sprawdzeniu niezerowej wartości przepisuje odczytaną wartość do pinu wyjściowego(podłączony do APM): myservo.write(PPMvalue) Jeżeli wartośc będzie zerowa, podstawia pod wartość PPMvalue, liczbę 900 (jeszcze akceptowalna dla APM). W programie Mission Planner, ustawiam w FailSafe Options dla pola FS PWM: wartość 910 - poniżej której zadziałać ma załączenie trybu. I tyle. Działa doskonale. Jeśli są inne rozwiązania - poza zmianą aparatury, chętnie się zapoznam.
pozdrawiam