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

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

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

gensek
slawik:

в чем разница (кроме цены ) www.bay.ru/ebay/list?query=HMC5883L+BMA180+BMP085+… ???

Кроме ценника разницы нет, а вот покупать тот что 1 281,22 руб не вижу смысла т.к. при оформлении заказа прилипает две суммы:
Стандартная Доставка (4-5 недель) 1 477,84 руб.
Обработка заявки 435,00 руб.

Drinker
msv:

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

Описание чего? На странице проекта ведь все есть

msv

Наверное туплю, или англицким недостаточно владею, но вообще никаких описаний не найду… Уж простите за бестолковость, пожалуйста прямую ссылку на описание DCM…

msv

Читал, читал… код смотрел… Ничего не понял… 😦 Зачем столько рассказывается о матрице поворота и в итоге ничего нигде не поворачивать… Остальное вроде бы все очевидно. Разве что не догадался бы поставить в корректирующей ОС ПИ-регулятор (хотя думаю и П достаточно) и идея коррекции акселя на центростремительное ускорение понравилась. Хотя для этого кроме скорости GPS используется заведомо недостоверные показания текущих углов, что дает неуверенность в сходимости алгоритма.