Подвес камеры на бесколлекторных моторах на Alexmos/Basecam

alexmos
mataor:

так вот… опять предложу сделать контроллер на хмеге (для удобства можно взять atxmega32u4): 1) легко сделать на 3 и более осей (на каждом порту выше B есть 6 аппаратных 16-ти битных ШИМ выходов) 2) код легко портировать (впринципе все аппаратно-зависимые части давно готовы, остальной код чисто копипастится) 3) неудобство с программированием легко решается (либо отдельно собрать, либо прям на платке разместить at90usb162 с мин обвесом - вначале она программируется прямо по юсб, птом становится программатором)

Да я тоже подумал над атхмегой, но если уж переписывать под новую систему, то почему бы сразу на ARM не перейти, тот же STM32 имеет линейку на любой вкус, недорогие и быстродействие с трехкратным запасом - можно такие штуки все-в-одном замутить что аж завидно становится тому кто это сделает 😃 К сожаоению я с ними дела не имел и нужно потратить какое-то время сначала на освоение, потом на портирование текущего кода.

Basil
alexmos:

Момент будет такой же только если токи будут на порядки выше.

А количество витков увеличили то же на порядки?

mataor
alexmos:

К сожаоению я с ними дела не имел и нужно потратить какое-то время сначала на освоение, потом на портирование текущего кода.

1-е преимущество хмег - не придется переделывать 80-90% кода

alexmos:

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

2-е - у хмег периферия и ее возможности переплевывает большинство СТМ
3-е - быстродействия хмеги тоже по горло хватает… сейчас на вие я использую лиш небольшую часть ее возможностей

непомню писал ли я тебе… портанул таки FreeIMU библиотеку, так вот сейчас на 32МГц (а можно и 48МГц спокойно) основной расчет квантерионов и перерасчет в углы занимает 1300мкс в флоат вычислениях

кстати… могу скинуть мой текущий код вия - увидиш, что там отличий от оригинального - минимум.

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

по поводу моторок - перемотал сегодня 2204 моторку проводом 0,18 80 витков на зуб - сопротивление получилось 9 Ом, на очереди 2830 моторка (~60 витков тем же проводом влезает)

Mikle
mataor:

2-е - у хмег периферия и ее возможности переплевывает большинство СТМ

Вот тут хотел бы возразить Вам, коллега. Один только DMA у STM - это тот плюс, который закроет все остальные мнимые преимущества ХМега. Про таймеры и NVIC вообще молчу.

Конечно, можно понаставить этажерок из ардуин на Мега8, тоже работать будет, но пора уже выходить за рамки поделок на коленках. 21-й век на дворе, друзья! Только ARM! Только хардкор!

kedrikov

Зачем изобретать велосипед если на Атмега все прекрасно работает 😃 и выполняет поставленные задачи?

mataor
Mikle:

Вот тут хотел бы возразить Вам, коллега. Один только DMA у STM - это тот плюс, который закроет все остальные мнимые преимущества ХМега. Про таймеры и NVIC вообще молчу.

Конечно, можно понаставить этажерок из ардуин на Мега8, тоже работать будет, но пора уже выходить за рамки поделок на коленках. 21-й век на дворе, друзья! Только ARM! Только хардкор!

вначале почитайте даташит на Хмегу а потом попробуйте подобное утверждать! а таймеры на хмеге вообще шикарная вещЪ, по удобству, простоте и функциональность их никто не переплюнет!

Mikle
kedrikov:

Зачем изобретать велосипед если на Атмега все прекрасно работает 😃 и выполняет поставленные задачи?

Дело, как минимум, в недостаточном количестве таймеров для формирования 9 каналов ШИМ-сигналов для двигателей 3-осевого подвеса.
Далее, i2c шина занимает значительное процессорное время, которое можно освободить используя ПДП в высших моделях МК.
Далее, существующие мостовые драйверы имеют высокое сопротивление относительно отдельных современных МОП-транзисторов (в разы). Поэтому чтобы делать драйвер на рассыпухе, нужно будет, скорее всего, кодить софтовый ШИМ, задавать dead-time работы затворов.
А ещё энкодеры… А если ещё фильтры всякие…

mataor:

вначале почитайте даташит на Хмегу а потом попробуйте подобное утверждать! а таймеры на хмеге вообще шикарная вещЪ, по удобству, простоте и функциональность их никто не переплюнет!

Думаю, наш спор уже не повлияет на выбор микроконтроллера автором. По крайней мере, надеюсь на это.

mataor
Mikle:

Далее, существующие мостовые драйверы имеют высокое сопротивление относительно отдельных современных МОП-транзисторов (в разы). Поэтому чтобы делать драйвер на рассыпухе, нужно будет, скорее всего, кодить софтовый ШИМ, задавать dead-time работы затворов.

кстати… по этому поводу… как писал выше что ковырялся с полевиками - хмега позволяет организовать 2 оси управления на полевиках практически чисто аппаратно (кому интересно - в гугле введите " AWeX atxmega"), 3-ю можно и на аппаратных шимах сделать (благо в хмеге серии a3 - 22 штуки 16-ти битных ШИМ выхода на все случаи жизни)

alexmos

По совету Сергея я уже давно оценил возможности atxmega и согласен, что для простой 3-х осевой версии ее возможностей хватит. Но если заглядывать далеко в будущее, то я бы выбрал АРМ, даже несмотря на сложности работы с ним. В любом случае, заказал обе отладочные платы, и скорее всего буду разбираться с ними параллельно. Пока для трехосевой версии стоят другие проблемы, помимо выбора платформы, но ее предлагаю пока не обсуждать, чтобы не перегружать информацией эту тему.

SPer2010

Позволю себе немного покрутиться вокруг двигателей.
Насколько я понимаю суть подвеса, то чем меньше трение в осях подвеса, тем легче системе отработать возмущающее воздействие и вернуть камеру в первоначальное положение. А значит при равном моменте инерции наиболее подходят двигатели с наименьшим “залипанием”, то есть с меньшим “трением покоя”.
В реальной жизни такому требованию в наибольшей степени удовлетворяют двигатели 12N14P с DLRK намоткой, “звезда”.
Двигатели 12N16P не подходят принципиально.
Второй момент, желательно, чтобы сопротивление двигателя было 8 -10 Ом для нормальной работы контроллера.
Есть такой народный двигатель HXM 2730-3000
hobbyking.com/…/__5453__hexTronik_24gram_Brushless…
который имеет мизерное залипание, но его мощности может не хватить для камер - цифромыльниц. Да и получить такое сопротивление достаточно сложно.
Поэтому в качестве предмета обсуждения я предлагаю такую схему подвеса. (пока только для оси PITCH).
Вместо одного двигателя мы применяем два, со сквозной схемой питания звезда. Что это даёт: мы легко набираем необходимое нам сопротивление, Упрощаем балансировку по оси ROLL и, наконец, самое главное, подбирая положение роторов относительно общей оси мы “удваивем” число полюсов, уменьшая “залипание” и уменьшая тем самым необходимую мощность контроллера.
Вот такая информация для размышления.
Можно использовать также компактный двигатель Turnigy 2204-14t с очень мизерным “залипанием”, но его очень муторно перематывать.

botvoed

Мне кажется спор не очем)
атмеги иксмеги армы, все они очень хороши и имеют массу достоинств!
Но мне кажется это не предмет для спора - ибо лучше всегда иметь железки при малых размерах с большей мощностью!
Я вот на атмегах 8 делал за день на 644 переделал

Как мне кажется важнее конструктив -подбор моторов, передача сигналов через муфты скольжения и тд!
Кстате разнести по времени перекл полевиков можно не только программно, но использование драйверов и аппаратных шимов самое лучшее!

Brandvik

Да ну, к чему такие усложнения, все равно при ускорениях даже статически сбалансированный подвес отклонит “за счёт разных моментов инерции плеч”. Давайте вернемся к старым добрым сервам которым не страшны такие моменты?

ЗЫ С праздником Всех!

SPer2010

А вот и не позволю с этим согласиться - двухмоторная схема прекрасно балансируется и по моментам инерции плеч.
А с противоположной двигателю стороне всё равно необходимо иметь подшипник…

Antarius

Привет народ!
Тоже заинтересовался темой и решил сделать свой подвес для чудосистемы руссокоптер (с плясками можно получить два стандартных сигнала для серв для подвеса). Хочу сделать на ардуино, т.к. она у меня есть.

Правильно ли я понимаю принцип работы?

  1. Перематываем бесколлекторник, превращая его в обычный шаговый униполярный мотор с тремя обмотками?
  2. Управляем мотором не дискретно - раз, два, три, а классическим микрошагом - синус/косинус?
  3. Соответственно, заполняем три массива переменных со сдвигом на треть относительно друг друга с величинами PWM для соответствующих выходов на обмотки?
  4. Определяем длительность входного сигнала управления для сервы, и перемещаемся на нужную строку массивов, плавно крутя моторчик?

Так?

mataor
SPer2010:

Можно использовать также компактный двигатель Turnigy 2204-14t с очень мизерным “залипанием”, но его очень муторно перематывать.

как раз его вчера/сегодня и перематывал… не сказал бы что муторно, наоборот проще чем 2830 кторый сегодня пробовал намотать… еще раз повторюсь что влезло по 80 витков (можно и до 90-100 еще вместить) проводом 0.18, сопротивление вышло 9 ом

Antarius:

Так?

да, так вполне можно. кстати сразу скажу - 360 градусов синуса - это кол-во магнитных полюсов / 2

alexmos

Выложил обновления прошивки и GUI: www.simplebgc.com/files/

SPer2010:

Вместо одного двигателя мы применяем два, со сквозной схемой питания звезда. Что это даёт: мы легко набираем необходимое нам сопротивление, Упрощаем балансировку по оси ROLL и, наконец, самое главное, подбирая положение роторов относительно общей оси мы “удваивем” число полюсов, уменьшая “залипание” и уменьшая тем самым необходимую мощность контроллера. Вот такая информация для размышления.

МИНУСЫ:

  • нужно мотать два мотора вместо одного. Зачем, когда справляется и один?
  • один из моторов нестандартной намотки (6 выводов). Толще кабель - сложнее крутить.

Ну а вообще идея с задвоением обмоток интересная, но только если не будет хватать мощи у одного мотора.

Antarius:

Правильно ли я понимаю принцип работы? 1. Перематываем бесколлекторник, превращая его в обычный шаговый униполярный мотор с тремя обмотками? 2. Управляем мотором не дискретно - раз, два, три, а классическим микрошагом - синус/косинус? 3. Соответственно, заполняем три массива переменных со сдвигом на треть относительно друг друга с величинами PWM для соответствующих выходов на обмотки? 4. Определяем длительность входного сигнала управления для сервы, и перемещаемся на нужную строку массивов, плавно крутя моторчик? Так?

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

Brandvik

Уважаемый Анатолий, вы так и не ответили на ранее заданный вопрос (страница N7), откуда у вас берется момент инерции плечей который появляется при ускорениях, а уже позволяете себе не соглашаться…

SPer2010

До

alexmos:

МИНУСЫ:

  • нужно мотать два мотора вместо одного. Зачем, когда справляется и один?
  • один из моторов нестандартной намотки (6 выводов). Толще кабель - сложнее крутить.

Обмотка стандартная, только не собираем в общую точку стандартную " звезду".

Давайте попробуем протестировать двигатели по трению покоя “силе отрыва” в цифрах, тогда появится возможность рассуждать дальше.

Brandvik:

Уважаемый Анатолий, вы так и не ответили на ранее заданный вопрос (страница N7), откуда у вас берется момент инерции плечей который появляется при ускорениях, а уже позволяете себе не соглашаться…

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

Brandvik:

Да ну, к чему такие усложнения, все равно при ускорениях даже статически сбалансированный подвес отклонит “за счёт разных моментов инерции плеч”. Давайте вернемся к старым добрым сервам которым не страшны такие моменты?

И не надо противоречить самому себе, в диапазоне реальных угловых ускорений всё то, о чём мы говорили несущественно.

Brandvik:

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

По этому поводу добавлю, если обе массы находятся на вертикальной оси, а ускорение горизонтально, то углы отклонения разные и статика (при воздействии ускорения) отличается от вертикали.

spot

Ребята, тоже вернусь к перемотке моторов, раз тут опять подняли этот вопрос.
В видео Михаила Иваненко (Mihbay) что выложено на сайте проекта, намотка идет следующим образом:

Т.е. направление намотки обмотки глядя на торец зуба. Я так понимаю порядок нумерации зубьев по часовой стрелке или против - не имеет значения.
Если посмотреть иллюстрацию что приводится в видео и часто светилась тут на форуме, то получаем:

Т.е. направление намотки обмотки берется глядя из центра статора. В итоге направление намотки меняется на противоположное.

Вопрос: как все же правильно? Намотал первым способом, получил 5,7 Ом на фазу - очень греется драйвер и мотор при 9-12В питании.

drozd79

Парни извините за дилетантский вопрос, а почему нельзя использовать готовые маленькие шаговые движки?

spot
drozd79:

Парни извините за дилетантский вопрос, а почему нельзя использовать готовые маленькие шаговые движки?

Вот первая страница проекта, посередине о шаговиках.