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

dollop

Ссылка поста №13 полностью отвечает на вопрос. Читать в разделе Принцип PPM-кодирования. В кратце это заключается в следующем. Подают на вход регулятора импульс длинной 1000…2000мкс с частотой 50Гц (20мс).

Для коптеров этого оказывается мало, поэтому частоту генерации импульса увеличивают в 10 раз - до 500Гц.
Частота вращения двигателя через esc кодируется очень просто. Длинна импульса 1000мкс - стоп. 1500мкс - 50%, 2000мкс - максимальные обороты. Это про “модельные регуляторы” в упрощенной форме, на пальцах так сказать.
Если esc подключен по i2c - то там совсем не так 😃.

Anadimiy

dollop, т.е. подключаем регулятор к шим выходу контроллера и подаем импульсы от 1 до 2мс с периодом 2мс?
И если нужна 100% скорость, то подаем просто постоянное напряжение?

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

Спасибо)

leprud
Anadimiy:

И если нужна 100% скорость, то подаем просто постоянное напряжение?

Прочтите все же указанную статью и внимательно посмотрите картинку выше…

И рекомендую пока не обращать внимание на исполнительные механизмы (моторы, сервы, актуаторы etc), а крепко подумать о датчиках и математике их обработки

Anadimiy

leprud, картинка и “формулы” противоречат друг другу в случае 100% оборотов.

Датчики и математика уже продуманы. Я уже переходу к части железной закупки и сборки.

leprud

Картинки абсолютны верны, ничто ничему не противоречит.

Да, по поводу математики и железа… Хотя б на 100Гц будет идти опрос датчиков, или как обычно 10-30?

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?