Делаем стабилизатор своими руками

Drinker

Собственно, по причине глюков FY21-ap задумал я сделать что-то подобное своими руками.

На основе arduino на 328 атмеге.

Сенсоры решил применить уже установленные на платке, ибо не хочется заморачиваться с травлением-сверлением-пайкой.
Остановился на изделиях от Sparkfun.

Первый вариант стаба был с использованием платки 5dof (3-х осевой акселерометр ADXL335 и 2-х осевой гироскоп IDG500, оба аналоговые).
Сейчас понял - это была ошибка. Во-первых чувствительность гиры - 2 милливольта на градус/сек слишком мала для аналоговых 10-и разрядных входов аруины.
Кстати 5dof отлично прижился на ARM проце cortex-m3 с его 12-разрядным АЦП на квадрокоптере.
Во-вторых, использование 2-х осевого гироскопа возможно только на небольших углах крена и тангажа. (Про курс здесь молчу, т.к. проект был под крыло).

Заменил на 6dof (3-х осевой акселерометр ADXL345 и 2-х осевой гироскоп ITG3200, оба цифровые).
Соединение с ардуиной по I2C. Четыре проводка - красота!
Напаял сверху ардуины этот 6dof на хитроизогнутых кусках канцелярской скрепки. Проводок - это 3.3В с ардуины на сенсоры.

На фото не показаны припаянные проводки с разъемами для приемника и серв. Этот модуль я вставлял в разъем специально изготовленной для первого варианта отладочной платы.
Сейчас прямо к ногам ардуины припаяны провода с “папами”.
Всё, этого железа достаточно для стабилизации полёта.
Ессно, позже были припаяны 3 подстроечника а-ля FY21/FY21. До них коэффициенты корректировал прямо в тексте программы и в поле заливал прошивку.

Алгоритм - DCM. На плате Seeeduino mega применяю расширенный фильтр Калмана, ибо 8К памяти уже позволяют.

На сегодня имеем:
Стаб, OSD на max7456, компас HMC5843, барометр BMP085. GPS приемник взял от 21-й фишки (правда пришлось помучиться с ним, он не совсем стандартно строки NMEA выдает, китай…).
Погрешность высоты по барометру ± 0.3м за счет IIR фильтра. Без фильтра ± 1 -1.5 метра.
Кстати гира ITG3200 на удивление не плывущая по сравнению с IDG500.

OSD ессно текстовый, примерно как у фишки. Но горизонт я более качественно отобразил.

Ценник, даже от жадного Sparkfun:

  1. 6dof - 65$
  2. HMC5843 - 20$
  3. BMP085 - 20$
  4. MAX7456 - 40$

Ардуина - cArduino - 700р.

Как видим, минимум необходимого для стаба обойдется в 65$ + 700р. = 2500р.
По-моему неплохо.

SGordon

а зачем делать на меге если все получается с кортексом ( просто я про перспективу не травить плату а заапгрейдить фишку?)

Drinker
blade:

А он разве- не 3х осевой?

Опечатка! 3-х!

Панкратов_Сергей
Drinker:

Как видим, минимум необходимого для стаба обойдется в 65$ + 700р. = 2500р. По-моему неплохо.

Код выложите?

Drinker
SGordon:

а зачем делать на меге если все получается с кортексом ( просто я про перспективу не травить плату а заапгрейдить фишку?)

Не вопрос! Просто ардуина маленькая платка. И входы-выходы арду менее нежные по сравнению с кортексом.
Прошить фишку - прошивку как залить? Я не знаю. Кортекс я по юсб шью. Но там загрузчик прошит (leaflabs maple)

Панкратов_Сергей:

Код выложите?

Только окончательный проверенный вариант. Чтобы не плодить уродцев.

Drinker
blade:

Когда тестовый полёт+ видео с него?

Еду в Омск с 11 июля на 2 недели. Там куплю самик (кстати где можно купить) типа дракона и отсниму видео с борта.

Vitalii22:

Могу на станке плату развести!

Под плату думаю можно комплектующих без Breakout-ов закупить и напаять. Еще меньше и дешевле выйдет!
Но с платой мы приблизимся к другим похожим проектам и потеряем изюминку - девайс хендмэйд.

Vitalii22:

Могу на станке плату развести!

Воспользуюсь предложением если что. Мы соседи оказываецца.

blade
Vitalii22:

Могу на станке плату развести!

А что за станок, который разводит платы?
Игл? 😃

SGordon
Drinker:

Прошить фишку - прошивку как залить

Счас чайнлинк все ломанутся шить - узнаете что такое StLink 😃)

evgeny_online
Drinker:

… девайс хендмэйд.

А были уже летные испытания? И есть ли видео?

Z_Z_Z

Итак, что я могу сказать, занимаюсь примерно аналогичным проектом, вот только платку сенсоров я взял готовую 10-dof:
cgi.ebay.com/…/260766408107
по цене почти тоже самое, только на одной платке, и очень компактное.
Сразу насчет погрешности по барометру, из даташита погрешность получается где то 8 см, у меня сделано 0,1 метра, да конечно плывет немного, но не смертельно, ведь разница давления на 10 см настолько мала, что даже небольшой поток воздуха попадающий на сенсор, приводит к скачкам до нескольких метров, думается мне что по барометру точнее уж никак не получится…

Drinker
Z_Z_Z:

даташита погрешность получается где то 8 см, у меня сделано 0,1 метра

bmp085 не даст ни 0.008 ни 0.1 м погрешности

evgeny_online:

А были уже летные испытания? И есть ли видео?

Да, облетал на пилотажевском мини файтере. Крылышко вертлявое, неубиваемое - использую как стенд. Держит намертво. Конечно пришлось повозицца с пидами. Видео будет через две недели - я в отпуске. С осд видео будет. Выдумал новую фичу - подстроечником подгонять горизонт с камеры к горизонту осд на тангаже. Оптика-то у камер разная. Попробовал - полоска чотко на горизонте лежит. Конечно до определенного угла. Далее осд горизонт останавливаецца в верхнем или нижнем положении. Но в этих пределах - как примагниченный.

evgeny_online
Drinker:

… Далее осд горизонт останавливаецца в верхнем или нижнем положении. Но в этих пределах - как примагниченный.

Здорово, ждем продолжения!

gensek

Имею практически такой же набор 6dof ,только акселерометр ВМА020, работают ВМА020 и ITG3200 вместе просто отлично, сейчас все это летает на квадрике мультивии, так что если есть или будет поддержка ВМА020 готов переставить на самик и попробовать, крылышко резвое тоже имеется 😃

msv

2Drinker Можно ссылочку на DCM алгоритм? В гугле что-то ничего конкретного не попадается…

msv

Спасибо, нашел исходники, разобраться можно… Может где есть хоть небольшое описание “на пальцах”?