Jeszcze raz o Headless Mode

Jeszcze raz o Headless Mode

Jeden z czytelników w niewybrednych słowach upomniał mnie w kwestii tego, co pisałem o Headless mode i magnetometrze. Pozwolę sobie zacytować:

Aviostud: Chłopie, w Eachine H8, jak i winnych tanich quadcopterach nie ma magnetometru. Po co wprowadzasz ludzi w błąd. Jak już zabierasz się za pisanie (albo raczej zapełnianie bloga treścią, żeby ktoś kliknął w reklamę...), to pisz chociaż prawdę. W tego typu małych dronach dominuje scalak MPU6050 (z interfejsem I2C), lub nowszy MPU6500, który komunikuje się także po magistrali SPI. Układ ten integruje akcelerometr i żyroskop, zapewniając dane dotyczące przyspieszenia oraz prędkości kątowych w trzech osiach.

Oczywiście ocenę tego, jaką funkcję pełni blog pozostawiam Wam. Pozostaje mi tylko liczyć, że nie podzielacie tego zdania. Czytelnik jednak zwrócił uwagę na błąd, który popełniłem pisząc o Eachine H8 Mini, ale nie tylko o nim. Mea culpa - przyznaję się.

Otóż bardzo słusznie napisał, że większość kopterów (szczególnie tańszych) bazuje na układzie scalonym Invensense MPU-6050, który jest jedynie akcelerometrem oraz żyroskopem.

mpu-6050
[Źródło: Arduino Playground - http://playground.arduino.cc/uploads/Main/mpu-6050.jpg]

Wspomniany element obsługuje zewnętrznie podłączany magnetometr np. HMC5883L. Oba urządzenia potrafią ze sobą współpracować dając nam nie tylko 6-osiową orientację w przestrzeni, ale także 3-osiowy kompas z prawdziwego zdarzenia.

sku191984c
[Źródło: Banggood - http://img.banggood.com/images/2014/xiemeijuan/01/SKU191984/SKU191984c.jpg]

Oprócz tego jest też układ opracowany również przez Invensense, który integruje wszystkie 3 sensory naraz - MPU-9150.

Jak ma się to do Eachine H8 Mini i pozostałych ? Otóż zgodnie z tym, co stwierdził czytelnik, tanie quadrocoptery w większości wyposażone są tylko w MPU-6050, co oznacza, że nie mają one magnetometru (czyli elektronicznego kompasu) ! Przyznaję, że nie poświęciłem wystarczająco uwagi, żeby przyjrzeć się płytkom, na których bazują. Ponownie - moja wina i mój błąd. Wystarczy rzucić okiem na zdjęcie PDB od Eachine H8 Mini na blogu Banggood.

img_20150523_095654_1
[Źródło: Blog Banggood - https://blog.banggood.com/wp-content/uploads/2015/05/IMG_20150523_095654_1.jpg]

Widać wyraźnie, że na płytce są 3 układy scalone. Pierwszy z nich to rzeczony MPU-6050, czyli żyroskop + akcelerometr. Drugi to XN297, który jest odbiornikiem 2.4GHz - to z nim komunikuje się aparatura. Trzeci układ (AM1450) to najprawdopodobniej właściwy kontroler lotu (mikroprocesor) - układ, który zbiera informacje z MPU-6050, XN297 i na ich podstawie steruje silnikami. Czarno na białym widać więc, że quadrocopter nie bazuje na ziemskim polu magnetycznym przy dobieraniu kierunku lotu w Headless Mode, ponieważ nie posiada układu, który dostarczyłby mu takie informacje. Jak więc to robi ?

Najprawdopodobniej (!) liczy on korektę kierunku na podstawie danych z żyroskopu. Wiedząc z jaką prędkością i w którą stronę się obrócił, jest w stanie wyznaczyć stronę, w którą powinien się poruszać. To tłumaczyłoby dlaczego Headless mode tak łatwo się "gubi". Po prostu precyzja wyznaczania kierunku jest ograniczona i z czasem błąd zaczyna się kumulować.

Wniosek końcowy ? Headless mode wydaje się być dużo bardziej naiwny, niż początkowo myślałem. Stosowanie magnetometru byłoby prawdopodobnie zbyt drogie, więc ciężar utrzymania stałego kierunku lotu spoczywa na mikroprocesorze, który pełni funkcję kontrolera lotu i wylicza kierunek lotu niezależny od obrotu quadrocoptera.

Wszystkich, których wprowadziłem w błąd przepraszam - przyznaję, że po prostu nie wiedziałem. Wbrew temu, co sugeruje czytelnik - nie wprowadzałem nikogo celowo w błąd i mam nadzieję, że po takim czasie jesteśmy w stanie wzajemnie sobie zaufać. Jeszcze raz przepraszam, że rozpropagowałem nieprawdziwą informację !

Udanych lotów i do następnego !