Помогите с двигателем для квадрокоптера

Anadimiy

2 акселерометра для ускорения по х и у. Для оси z акселерометр, на сколько я понимаю, нужен чтобы косвенно определять высоту.
2 гироскопа понятно. А третий зачем? Он же по сути выполняет функцию компаса получается, но с набеганием ошибки.
Из каналов компаса один понятно - в горизонтальной плоскости вращение. Два других только если для дополнительных источников информации об углах наклона аппарата, но мне кажется акселерометров с гироскопами достаточно. Прошу поправить если не прав.
Насчет трех выборок я не понял.

Зы: Благодарю за советы и прошу иметь терпение

leprud

Хм… Ну, если аппарат будет преимущественно в горизонте, то достаточно и одноканальных датчиков (и обрабатывать их соответственно по-фазно).
А теперь представьте, что я делаю пару флипов по всем направлениям. Т.е. справа налево, потом сзади вперед, потом одновременно, да еще и делая оборот вокруг оси yaw. Двуканальных датчиков уже не хватит, или yaw в процессе слетит, или акселерометры при “падении” сойдут с ума (при свободном падении они показывают ноль, если что).
Вы попробуйте сделать прикидочную математику с симулятором, да покрутите там ее там. Меня такой опыт отвадил от дальнейшей разработки, ибо результат не предсказуем, а времени требуется оочень много, проще использовать уже готовые наработки, проверенные многими людьми.

А с 3 выборками все просто - усреднение значений.
Хотя эт зависит от режима АЦП: free-running, single conversion?

Anadimiy

Да не, до акробатики то мне далеко. Для начала пусть просто летает с небольшими ускорениями)
Для акселерометров напишу поправку на вертикальные ускорения (вызванные пультом) в условиях штиля.

Сейчас сделал платку с аналоговым акселерометром (самый дешевый за 200р), подключил к ардуине и вывел линию горизонта на комп в processing-е. Линия основывается на усреднении 10-ти значений с ацп. Такие же несуществующие виртуальные акселерометры подключил к остальным аналоговым входам и делаю последовательное считывание по 10 значений с каждого.
При этом линия на экране двигается с хорошим фпс плавно, без всяких тормозов.
Насчет режима ацп не знаю.

leprud
Anadimiy:

Линия основывается на усреднении 10-ти значений с ацп

Рекомендую теперь к этой плате приложить вибрации (100-800Гц желательно, что соответствует в какой-то мере реальным частотам вибраций) разных амплитуд, и посмотреть, что творится с графиком.
Обычное усреднение тут, увы, будет только мешать и портить все картину, будто берем переменное напряжение и меряем амплитуду в произвольные моменты времени, усредняя арифметически. Ессно будет получать произвольные значение, вплоть до нуля.

Anadimiy

У меня не совсем обычное усреднение, а скользящее, т.е. последние 10 значений усредняются.
Положил на дрожащий корпус компа - отличий от ситуации со столом не заметил. Но амплитуды тут конечно маленькие. Надо будет попробовать на сабвуфер положить)

А вы как, предлагаете использовать цифровые датчики вместо аналоговых? Если да, то в шине или отдельно?

leprud

Амплитуда вибраций должна быть приличная… Лучше всего конечно использовать мотор с плохо сбалансированным пропеллером, чтоб быть ближе к реальным условиям. О! Положите (а лучше закрепить конечно) на телефон и включите там виброзвонок. Случай вырожденный конечно, но эффект может дать.

Датчики… Хм… Стандартом сейчас считается I2C, но у этой шины свои приколы, одно зависание чего стоит 😃
Не заморачивайтесь с датчиками, еще ж потом нужно будет прикидывать какие именно датчики использовать, с какой погрешностью, с какими максимальными абсолютными значениями и пр.

Рисуйте математику, алгоритмы, сравнивайте их с готовыми летающими решениями, попробуйте определить, лучше ли у вас получается. Если нет - то овчинка не стоит выделки, увы 😦