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

Anadimiy

leprud, как же верны, если написано что 100% это 2мс и период 2мс, то это должно быть постоянное напряжение. А на картинке идут перерывы непонятной продолжительности.

Опрос будет идти 150Гц

leprud
Anadimiy:

100% это 2мс и период 2мс

учу читать, дорого 😃

dollop:

импульс длинной 1000…2000мкс с частотой 50Гц (20мс)

надеюсь, понятно, что 1000мкс=1мс?

а 150Гц… Как такой скорости добиваться будете? spread-i2c, или внешние АЦП?

Anadimiy

leprud,
Там еще написано что частоту увеличивают в 10 раз, поэтому не 50Гц, а 500. Что есть 2мс, по Вашей же формуле.

Ацп в контроллере атмега позволяет считывать с аналогового входа с такой частотой без всяких хитростей

dollop

Ну 500Гц, это я загнул (на пальцах просили…). Пусть будет 450Гц, ну или 490Гц(МАХ). Разрывы-то на нижнем рисунке видны!

Anadimiy

Понятно. А что насчет других вопросов?

“И еще два вопроса:
Какой амплитуды должны быть импульсы?
Для всех ли ppm регуляторов подходит такая схема?”

dollop
  1. Амплитуда должна быть 4-6В
  2. Не для всех 😦. (это связано с алгоритмами обработки ппм внутри регулятора. Если регуль шибко умный, то может расценить повышение частоты на входе как помехи иль еще чего - таких регулей процент небольшой - около 10-20). Но есть список, 100% подходящих. В ветке по multiwii или на их сайте со списком можно ознакомиться
Anadimiy

dollop, был бы еще более признателен за этот список)

Кстати, мб я что то кардинально не понимаю, но чем этот вид сигнала, что вы описали, отличается от шим?
И в описании из ссылки на 13-м посте есть еще синхропауза. Она здесь не используется?

dollop

Берите дешевые и известные - не ошибетесь.
Hobbyking SS Series
Hobbywing
Turnigy Plush

warthox.bplaced.net/?page_id=76

Ток, на который расчитаны регули зависит от мотора (винтов, акков).

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

leprud
Anadimiy:

Ацп в контроллере атмега позволяет считывать с аналогового входа с такой частотой без всяких хитростей

О как… А задержки мультиплексоров? А время обработки при считывании данных? Или вы к одному входу все цеплять будете?
Я то думал вы таки сумели сделать что-то хорошее и новое уже…

Anadimiy

leprud, цеплять к одному входу - это вы что имеете в виду? Датчики будут подключены каждый к своему аналоговому входу мк напрямую, без шин

DVE

Формирование импульсов уже было в исходниках, поищите например по слову “сервотестер”.

leprud
Anadimiy:

Датчики будут подключены каждый к своему аналоговому входу

6-12 входов значит нужно… Не будет 150Гц тогда.
Даташиты почитайте в разделе о АЦП и мультиплексорах ихних

23 days later
Anadimiy

Извиняюсь, откуда 12 то?
2 акселя, 2 гироскопа, 1 компас, 1 баро(или еще один аксель). Итого 6.

На форумах пишут что время переключения между аналоговыми входами меньше 1мс. Значит в худшем случае 4мс на прогон датчиков (баро и компас редко опрашиваться будут). Получаем 250Гц минимум.

leprud

3 акселерометра, 3 гироскопа, 3 канала компаса, баро. Сонары и пироголовы - по желанию.
вот и выходит такое количество каналов.
Если же вы надеетесь, что вам хватит двуканальных гироскопов и акселерометров- рекомендую еще почитать литературу…
Далее, 10 каналов, минимум по 3 выборки с каждого (надеюсь - понятно, почему?), обработка программой, выходит сколько герц?

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, но у этой шины свои приколы, одно зависание чего стоит 😃
Не заморачивайтесь с датчиками, еще ж потом нужно будет прикидывать какие именно датчики использовать, с какой погрешностью, с какими максимальными абсолютными значениями и пр.

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