Porada

Jak nagrywać logi Blackbox w Betaflight i czytać je w Blackbox Explorerze

Blackbox to rejestrator lotu wbudowany w Betaflight. Gdy dron jest uzbrojony, zapisuje ruchy drążków, odczyty żyroskopu, pracę członów P, I i D oraz polecenia wysyłane do każdego silnika, a do tego napięcie akumulatora, prąd, RSSI i dane GPS, jeśli dron je ma. Dokumentacja Betaflight podkreśla, że dane są zapisywane bez uproszczeń, więc w logu widać nawet drobne problemy. Oscar Liang przypomina, że drona da się wystroić i bez tego. Blackbox przydaje się wtedy, gdy dron zachowuje się dziwnie, a ty wolisz zobaczyć, co naprawdę się działo, niż zgadywać.

Gdzie trafia log

Betaflight może zapisywać log w trzech miejscach:

  • W pamięci flash na kontrolerze lotu. Ma ją większość dzisiejszych kontrolerów. Według Oscara kość 16 MB mieści około 5-10 minut lotu, zależnie od częstotliwości zapisu. Gdy pamięć się zapełni, Betaflight przestaje nagrywać, więc kasuj ją przed każdą sesją.
  • Na karcie SD. Miejsca jest praktycznie bez końca, ale karta ma znaczenie. Betaflight obsługuje karty SDSC i SDHC sformatowane w FAT16 albo FAT32 (od 1 do 32 GB), a kart SDXC nie obsługuje wcale. Na wolnej karcie część danych się gubi. Przy pierwszym uruchomieniu z nową kartą Betaflight zbiera wolne miejsce w pliku FREESPAC.E. Nie edytuj go i nie defragmentuj karty. Ten plik ma najwyżej 4 GB, więc po zapisaniu 4 GB logów trzeba go usunąć (albo sformatować kartę), a Betaflight utworzy nowy.
  • W zewnętrznym rejestratorze na porcie UART. Jeśli kontroler nie ma ani pamięci, ani gniazda karty, wystarczy OpenLog podłączony do wolnego sprzętowego portu szeregowego. Betaflight zaleca co najmniej 115200 bodów, a przy pętli 3,2 kHz albo 8 kHz 250000 bodów. Łączy się tylko wyjście TX kontrolera z wejściem RXI OpenLoga. Tego portu nie można współdzielić z GPS ani telemetrią. SoftSerial działa najwyżej z prędkością 19200 bodów i Betaflight go nie poleca.

Najważniejsze ustawienia

Poradnik Betaflight zaczyna od zakładki konfiguracji („Configuration”): zaznacz funkcję BLACKBOX i zapisz ustawienia. Potem w zakładce Blackbox wybierz, gdzie ma trafiać zapis (pamięć flash albo karta SD). W CLI to samo ustawia się parametrem blackbox_device z wartościami SPIFLASH, SDCARD albo SERIAL.

Częstotliwość zapisu. Blackbox zapisuje co któryś obieg pętli PID. Decyduje o tym parametr blackbox_sample_rate (1/1, 1/2, 1/4, 1/8 albo 1/16, domyślnie 1/4). Przy typowej pętli 8 kHz ustawienie 1/4 daje około 2 kHz, a 1/8 około 1 kHz. Betaflight zaleca 2 kHz do dokładnego strojenia, a 1 kHz uważa za wystarczające do zwykłego użytku. Oscar zostawia zwykle 2 kHz (przy żyroskopie BMI270 1,6 kHz) i poleca tę wartość do pracy nad filtrami i szumem, bo widać wtedy drgania do 1 kHz. Przy 1/16 da się jeszcze wyłapać poważne usterki, ale według dokumentacji Betaflight subtelniejszych problemów, takich jak drgania czy błędy strojenia, już nie widać.

Zapisywane pola. Żeby logi były mniejsze, Oscar wyłącza pola, których przy strojeniu prawie nie potrzebuje: akcelerometr, położenie drona, RSSI, wysokość, magnetometr, akumulator, GPS i serwa. Jeśli w logu ma być widać pozycję drona, zostaw GPS włączony.

Tryb diagnostyczny („Debug Mode”). Naraz może działać tylko jeden. Do zwykłego nagrywania ustaw NONE. Oscar wybiera FFT_FREQ, gdy chce zobaczyć, na jakich częstotliwościach pracują dynamiczne filtry wycinające, co przydaje się w programie PIDtoolbox. Inne tryby włączaj tylko wtedy, gdy szukasz konkretnej usterki.

Kiedy nagrywa. Domyślnie Blackbox zaczyna zapis po uzbrojeniu, a kończy po rozbrojeniu albo po zapełnieniu pamięci. Żeby nie zapełniać pamięci flash przy każdym pakiecie, dodaj w zakładce trybów („Modes”) tryb BLACKBOX na przełączniku AUX. Zapis trwa wtedy tylko przy włączonym trybie, choć nagłówek logu i tak powstaje przy każdym uzbrojeniu. Ustawienie blackbox_mode = ALWAYS w CLI sprawia, że zapis trwa także po rozbrojeniu. Po rozbrojeniu odczekaj kilka sekund, zanim odłączysz akumulator albo wyjmiesz kartę. Przy karcie SD Betaflight zaleca co najmniej 5 sekund, żeby plik zdążył się zamknąć.

Jak zgrać pliki

Na kontrolerach F4, G4, F7 i H7 najszybciej jest przełączyć je w tryb pamięci masowej: przyciskiem „Activate Mass Storage Device Mode” w zakładce Blackbox albo poleceniem msc w CLI. Kontroler pojawia się w komputerze jako zewnętrzny dysk i wystarczy skopiować z niego pliki .bbl. Do czasu odłączenia i ponownego podłączenia zasilania nie działa jako kontroler lotu. Przy pamięci flash to dużo szybsze niż stary przycisk „Save flash to file”, którym według Betaflight zgrywanie trwa 2-3 minuty.

Podział na pliki zależy od nośnika. W pamięci flash wszystko, co nagrało się od włączenia zasilania, trafia do jednego pliku, a każde uzbrojenie i rozbrojenie to osobny log, który wybierasz z listy rozwijanej w Blackbox Explorerze. Na karcie SD każde uzbrojenie zaczyna nowy plik. W trybie pamięci masowej zobaczysz też plik btfl_all.bbl ze wszystkimi logami naraz. Jeśli wiesz, którego logu szukasz, możesz go pominąć.

Jak latać, żeby log coś pokazał

Z logu z przypadkowego latania niewiele wyczytasz. Jeśli szukasz usterki, powtórz to, co ją wywołuje. Do ogólnego strojenia Oscar lata stały zestaw figur i nie miesza osi w jednej figurze:

  1. Kilka sekund zawisu, potem równy lot do przodu.
  2. Dwa albo trzy płynne dodania gazu do pełna w ciągu 3-5 sekund, żeby zobaczyć drgania przy różnych poziomach gazu.
  3. Pełne beczki, przewroty i obroty wokół osi pionowej, w obie strony.
  4. Kilka szybkich zmian gazu, na przykład z 20% do 70% i z powrotem. Jeśli dron opuszcza wtedy nos, człon I może być za słaby.
  5. Półbeczki z półpętlą w dół i ostre zawroty o 180°, w których widać drgania od zawirowań powietrza z własnych śmigieł.
  6. Prosty lot do przodu bez ruszania drążkami na otwartym terenie, najlepiej przy słabym wietrze, żeby ocenić, jak stabilnie dron trzyma kierunek.

Co obejrzeć najpierw w Blackbox Explorerze

Blackbox Explorer działa w przeglądarce pod adresem blackbox.betaflight.com, a wersję do zainstalowania znajdziesz w wydaniach projektu na GitHubie. Otwórz plik .bbl i kliknij ikonę informacji w lewym górnym rogu. Nagłówek logu pokazuje ustawienia Betaflight z tego lotu, co bardzo ułatwia porównywanie logów sprzed zmiany i po niej.

Warto znać kilka skrótów klawiszowych. Klawisze I i O wyznaczają początek i koniec fragmentu, więc odetniesz start i lądowanie. M stawia znacznik i pokazuje czas oraz częstotliwość między znacznikami. Alt ze strzałkami przesuwa widok o jedną próbkę.

Na początek obejrzyj te przebiegi:

  • Wartość zadana i żyroskop. Wartość zadana (na wykresie „Setpoint”) to to, czego chciałeś, a żyroskop pokazuje, co dron zrobił. Im bliżej siebie są te linie, tym pewniej dron trzyma się drążków. Jeśli żyroskop się spóźnia, pomóc może mocniejszy człon wyprzedzający (w Betaflight „Feedforward”) albo P. Do tłumienia przeregulowania, czyli wychodzenia żyroskopu poza wartość zadaną, służy D, ale za duże D wzmacnia szum i grzeje silniki.
  • Silniki. Jeśli żyroskop nadal się spóźnia, a silniki pracują już na 100%, dron doszedł do granicy swoich możliwości i zmiana PID nic nie da. Gdy w zawisie jeden silnik wyraźnie pracuje ciężej od reszty, zwykle winny jest silnik albo regulator. Oscar zamienia wtedy silniki miejscami: jeśli ciężej znowu pracuje silnik w tym samym miejscu ramy, podejrzany jest regulator. Polecenie dla silnika, które nagle skacze do 100%, może oznaczać utratę synchronizacji regulatora: silnik stanął, a Betaflight każe mu kręcić coraz mocniej.
  • gyro i gyro_scaled. gyro_scaled to surowy odczyt żyroskopu, a gyro odczyt po filtrach. Jeśli postawisz znaczniki na tym samym szczycie obu przebiegów, zobaczysz, jakie opóźnienie wprowadza filtrowanie.
  • Polecenia z aparatury i wartość zadana. Na przebiegu poleceń z aparatury (na wykresie „RC Command”) widać drobne schodki, po jednym na każdy pakiet radiowy, a odstęp między nimi pokazuje częstotliwość pakietów. Wartość zadana i człon wyprzedzający powinny być gładkie. Jeśli na przebiegu członu wyprzedzającego widać nagłe skoki, wygładzanie sygnału sterowania prawdopodobnie nie nadąża.

Analizator widma („Spectrum Analyzer”) w menu pokazuje szum w zależności od częstotliwości dla żyroskopu i członu D. Od niego zaczyna się strojenie filtrów. Jeśli porównujesz w nim dwa logi, przytnij je najpierw do podobnej długości. Oscar ostrzega, że dłuższy log daje wyższe widmo i może wyglądać na bardziej zaszumiony, niż jest naprawdę.

Jeśli nagrywasz lot kamerą na dronie, Blackbox Explorer nałoży wykresy na film. Użyj surowego nagrania MP4 bez stabilizacji. Postaw znacznik w miejscu, gdzie zaczyna się ruch drążka przy pierwszej beczce, znajdź klatkę, w której dron zaczyna się obracać, i naciśnij Alt+M. Betaflight podpowiada też sygnał uzbrojenia, jeśli masz brzęczyk: początek pierwszego długiego piknięcia widać w logu jako niebieską linię. Oscar rzadko to robi, ale synchronizacja pomaga, gdy wolisz zobaczyć chybotanie na obrazie, niż się go domyślać.

Dron jest dobrze wystrojony, gdy żyroskop wiernie podąża za wartością zadaną, a przeregulowanie jest niewielkie. Dalsze zmiany PID to już głównie kwestia upodobań.