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

lukacher
kolya27:

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

дитчик снизу ровно поставьте и всё 😃

Anatoll

официальная плата 8-бит, плата не видит датчик…
светодиод на датчике горит - а плата не видит сенсор
менял несколько датчиков, подключал совершенно новый
где искать проблему???
как проверить плату???

Taiga

Была проблема, при подключении третьей оси к восмибитной плате по I2C, летели ошибки. Потратил пол дня читая эту ветку, не просто читал, а собирал все прочитанное в один файл. Понятно получилась каша. Но эта каша мне здорово помогла! Убрал таки ошибки поставив две платы рядом (они были разнесены) и соединил их хорошей землей. В моей ситуации, это слава богу помогло. И это при том, что все провода проходят через пустотелые валы моторов. Никаких фильтрующих колец и экранированных проводов…
…Вот думаю, выкидывать сюда эту “кашу”?) …Ну да ладно, может кому поможет?! А в случае чего, модераторы потрите пожалуйста ниже написанное…

Выдержки из этой ветки:

Дергание может быть если строил пиды и мощность на просаженной батарее, а потом ставишь свеже-заряженную и мощи уже много

все расколбасы от неровности геометрии и люфтов, датчик начинает вибрировать самовозбуждает систему, так же стоит ПИДы настроить.

Если есть тряска, регулировал PID-ами и мощностью на двигатели. Добивался “тишины”, т.е. отсутствием всякого “подергивания” моторов.

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

Плавает горизонт? Калибруйте по 6 точкам.

Калибровка датчика по 6 точкам: Взял датчик, отстегнул от подвеса, положил горизонтально, нажал “калибрэйт акс”, подождал пока проморгается сетодиод, повернул датчик на переднее ребро, нажа ал калибрэйт…, подождал промаргивание, повернул датчик на спину нажал на калибрыйт, подождал, поставил на заднее ребро, нажал подождал… Повернул на левое боковое ребро нажал подождал, повернул на правое ребро, нажал подождал… ВСЁ

I2C , она-же TWI разрабатывалась как низкоскоростная шина для подключения к контроллерам медленной периферии в пределах платы …
она изначально не предназначена для работы в условиях сильных помех и для подключения удаленных устройств …
потом её разогнали в 4 раза …
мы со времен МК и MultiWii упорно пытаемся использовать её не по назначению цепляя то регули , то датчики на отдельных платх , притом на высокой скорости …
мало того , мы еще и цепляем туда устройства с разными уровнями сигнала …
вот три фактора в сумме (длинная шина, помехи , низкий уровень сигнала ) и приводят к таким результатам …
в идеале нужно повозможности убирать все 3 фактора …

  1. хороший провод к датчику с толстой изоляцией (меньше емкость) …
  2. ферритовые кольца на кабели моторов …
  3. хорошая толстая земля между платами основного контроллера и третьей оси …
  4. датчик подключаеть через LLC , притом LLC фильтры на датчик желательно ставить непосредственной близости от датчика , по кабелю лучше пускать сигнал 5в уровня …
    схему публиковали наверное мульён раз , навсяк случай повторю
    можно купить готовый у китайцев www.aliexpress.com/wholesale?...Text=i2c+level
    лично я использую не эту схему а PCA9306 … как её использовать подробно расписано в даташите …
    уменя еще осталось некоторое количество платок от RU-IMU , на которые можно припаять PCA9306 и MPU6050 , если сильно нада могу поделиться …

Пропробуйте, кто-нибудь, запитать плату третьей оси вместе с ее мотором от отдельного аккумулятора. Если ошибки на шине i2c пропадут, тогда будет ясно, как их побороть.

Что такое ПИДы на примере копания траншеи

P – чувствительность мотора. В зависимости от того, что требуется сделать, контроллер подает на него электричество, ровно столько сколько нужно для выполнения действия. Так вот этот параметр отвечает за соответствие того, что говорит регулятор и реальными действиями мотора. Контроллер говорит: «копать траншею, 3 метра». Регулятор: «махать лопатой?» «тыкать лопатой в землю?» ну и если вам повезло, то «копаю лопатой 3 метра, плюс минус метр».

I – скорость выравнивания подвеса. Подвес пальцем сдвинули, он возвращается в нормальное положение. С какой скоростью он это делает, отвечает этот параметр.

D – обратная компенсация P. Когда Р все четко отрабатывает, у него есть некий излишек действий, выражаемый в виде вибрации (вроде все отлично, но настолько усердно, что аж дрожит ☺) Вот D – это аля «дружище полегче, надо выкопать траншею 3 метра, а не 3 метра и плюс минус метр.» Вот этот плюс минус метр и убирает D.

PWM – сила с которой мотор удерживает подвес. Тут все просто. Если на лопату давить еле-еле, то лопата не войдет в землю. Так и подвес будет падать при наклонах. Если значение слишком высокое, то работать все будет отлично, но недолго (моторы когда-нибудь перегреются и сгорят). Опять же в примере с траншеей: лопату можно с небольшим усилием воткнуть в землю и чутка придавив ногой воткнуть, затем поднять землю и откинуть на полметра в сторону – и все отлично. А можно: со всей дури двумя руками втыкать лопату в землю, с размаху ногой бить по лопате, чтобы та влетела в землю, потом подняв землю со всей силы откидывать ее метров на 5 в сторону. Результат тот же – 3 метра траншеи, но в первом варианте вы чутка поднапряжетесь, а во втором случае с отдышкой и сошедшими 7 потами будете офигевать от усталости. А если надо выкопать 100 метров? Правильно работая по второму варианту, вы просто умрете на половине пути.

Сам процесс настройки

И так моторы перемотаны, подвес собран, контроллер и датчик подключены, камера установлена. Самое главное подвес собрать таким образом, чтобы по умолчанию он сам по себе стоял ровно и не заваливался, самое простое отбалансировать всю систему двигая камеру, используя ее как противовес моторам.
Включаем и видим, как вся эта конструкция живет обсолютно своей жизнью.

Шаг 1
Ставим P=5 I=0 D=2 PWM= 20
При таких значениях танцы подвеса должны прекратиться и подвес просто болтается, как сопля на ветру

Шаг 2
Калибруем датчик. Я просто кладу всю конструкцию на стол, так чтобы датчик лежал ровно и нажимаю калибровку. Во время калибровки подвес руками нетрогать и вообще в его сторону лучше не дышать.
Датчик лучше всего располагать на пересечении линий осей моторов и посадить жестко на клей или прикрутить винтами. Такое расположение избавит от необходимости дальнейшей настройки положения датчика относительно центра осей, что просто экономит время и нервы. Крепить на двусторонний скотч недопускается, 2 раза пробовал – 2 раза всю конструкцию колбасило. Хотя можно поиграться со скотчами разной толщины, мне проще на клей посадить. Датчик располагается Y - в сторону куда смотрит камера, Х – влево или вправо.

Шаг 3
Отключаем мотор Pitch

Шаг 4 (для Roll)
Теперь с шагом в 5 единиц увеличиваем PWM. До тех пор пока на моторах не появится такое усилие, чтобы удержать ось. Можно просто просто пальцами пошевелить подвес и будет понятно есть усилие на моторе или нет.

Шаг 5 (для Roll)
Ставим I=0,1 или любое другое минимальное значение

Шаг 6 (для Roll)
С шагом в 2 единицы увеличиваем P. До тех пор пока подвес не начнет держать правильное положение и появится легкая вибрация. Появилась вибрация - уменьшаем значение Р на 1 единицу.

Шаг 7 (для Roll)
С шагом в 1 единицу увеличиваем D. До тех пор пока вибрация не пропадет или почти пропадет

Шаг 8
Подключаем мотор Pitch. Повторяем шаги 4-7 для Pitch. Если моторы у вас одинаковые, то значения у вас должны быть ниже чем для Roll. Связано с тем, что ось Pitch менее нагружена (еще есть момент про работу самого датчика и его удаленность, но не будем вдаваться в дебри)

Шаг 9
С шагом в 0,05 единиц увеличиваем значение I. Наклоняем подвес и смотрим как резко он возвращается назад. Молниеносной скорости тут не надо, все должно быть плавно и четко, резкие движения при съемках недопустимы.

Шаг 10
Если у вас осталась легкая вибрация по осям, то попеременно пощелкайте с шагом 1 единицу значения P и D (но не меняйте значения больше чем на 1 единицу, т.е. ваши итоговые значени P и D не должны отличаться от тех, что были получены в шаге 7 более чем на 1 единицу) Вибрация пропадет.

Шаг 11
Берем подвес и крутим, вертим, тестируем и наслаждаемся результатом.

Еще одна проверка: берем подвес и вращаем его вокруг своей оси (оси Z), камера должна стоять ровно. Если при поворотах камера наклоняется, то перекалибруйте датчик. Ось Х (Pitch) не соответствует реальному горизонту, как вариант воспользуйтесь уровнем (пузырьковым или в мобильнике) для выравнивания датчика перед калибровкой.

Ну и довесок (может пригодится кому):
Мои настройки для подвеса RCTIMER 2-Axis Brushless Gimbal For GoPro (с моторами HP2212 / 0.15мм / 70T / 18 Ом) ну гоупроху соответвенно:

P=15 I=0,2 D=10 PWM=130

P=9 I=0,2 D=9 PWM=70

PS: Надеюсь статья поможет новичкам типа меня, которые только пытаются понять что к чему. Старожилам и Гуру просьба сильно не пинать. В свою очередь хочу выразить респект SteinDen за пост #227 (обязательно к ознакомлению) который дал возможность хоть как то попробовать понять процесс настройки.

=================================================

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

Слишком высокое значение PWM = Не позволит увеличивать значение P свыше определенного значения - при этом возникают осцилляции, мотор начинает вибрировать, трястись.
P слишком низкий = плохая точность и значительный дрейф системы.

Полюса мотора - указывается количество магнитов двигателя. Обычно - 14. Было замечено, что ввод фактического числа полюсов мотора не всегда дает положительный результат. Например для 28 полюсного мотора - установка значения 28 приводила к гораздо худшей работе, то же самое для мотора с 6 полюсами - лучшие значения для работы были 12 и 14. Рекомендуется устанавливать значения 12 или 14.

Процедуру настройки подвеса лучше проводить поэтапно, сначала одну ось, потом другую. Для этого, можно отключить провода мотора от платы контроллера, или выставить значение maxPWM = 0. Обычно, я начинаю с оси Roll.

Установите значения IAcc=0, P=20, D=2, max PWM (Power) 40 для проведения тестов.

Шаг 1:
Наклоните подвес, обратите внимание на камеру - остается ли она в своем положении, или при движении видны срывы. Так же можно немного потрясти, имитируя воздействие внешних сил, чтобы убедиться, что момент развиваемый двигателем достаточный для удержания камеры в заданной позиции.
Если камера не удерживается в первоначальном положении, увеличьте значение maxPWM на 5 единиц и вернитесь к Шаг 1 заново.
Если мощность на валу мотора достаточна для удержания камеры, следуйте к следующему шагу.

Шаг 2:
Включите график (Chart), удерживайте подвес в руках примерно по уровню. Вращайте подвес на 90 градусов. Обратите внимание на разницу в углах графиков. Это дрифт. Выключите график.

Шаг 3:
Увеличьте значение P на 5 единиц.

Шаг 4:
Появилась вибрация, тряска?
Если Нет - возвращайтесь к Шаг 2.
Если Да - увеличьте значение D на 0,1.
Теперь, возвращайтесь к началу Шаг 4 и повторите процедуру.

В конце концов, вы получите такое значение D, которое уже не сможет устранять осцилляции, вызываемые высоким значением P. В этом случае, уменьшите немного значение P, при этом возможно придется подкорректировать D. Теперь все. Это лучшее, что можно было получить от вашего подвеса.

Проследуйте к Шаг 2, и обратите внимание, что величина дрифта, отображаемая на графике стала значительно меньше, а это означает, что достигнуто более высокое качество работы подвеса.

Теперь установите значение Iacc равное 1 или 2, для того, чтобы подвес возвращался точно в уровень. Это также может вызвать осцилляции. В этом случае необходимо немного уменьшить значения P и\или maxPWM.

При подключении второго двигателя, или установки значения maxPWM отличное от нуля, вы можете заметить, что ранее настроенная ось начала вибрировать. В этом случае следует увеличить значение D и\или уменьшить P, maxPWM.

Ось Pitch более чувствительна к осцилляциям, чем ось Roll. Я полагаю, это объясняется тем, что мотор Roll, расположенный дальше всего от датчика MPU6050, оказывает меньше всего низкочастотного воздействия. Двигатель Pitch, наоборот расположен ближе всего к плате гироакселя MPU6050.

Все современные MEMS гироскопы\акселерометры работают благодаря пьезоэлектрическому эффекту и имеют отличный микрофонный (акустический) эффект. По мере удаления источника вибрации( мотора Roll) становится возможным применение гораздо более высоких значений P и maxPWM, чем для оси Pitch. Отсюда следует такая практическая рекомендация - ставить на ось Pitch гораздо меньший по размерам двигатель, чем на Roll, тем более, ось Pitch является менее нагруженной. Это позволит увеличить значение P и maxPWM.

Старайтесь избегать применения моторов с “запасом мощности”. Это даст большие сложности с настройкой - преждевременное появление осцилляций, большой вес всего подвеса. Некачественная работа всей системы.

Для нагрузки в виде GoPro, для оси Pitch более чем достаточно мотора 20 - 25 грамм, с 6 полюсами. При этом maxPWM будет на уровне 90-120. Для оси Roll в зависимости от конструкции подвеса и его массы возможно потребуется более крупный мотор.

Ну и раз уж сообщение переросло в мини FAQ - если у вас слишком длинный , тонкий провод ( в моем случае это проблемный силикон AWG28) идущий к MPU6050, вы можете заметить, как подвес начинает жить своей жизнью - крутится по всем осям произвольно. В этом случае, достаточно установить резисторы 1 Ком вместо 4,7 кОм на плате контроллера БК подвеса. На фото обозначено красным кружком. Для плат версии 3. Таким образом мы изменили номиналы подтяжки шины I2C.

Taiga
Anatoll:

официальная плата 8-бит, плата не видит датчик…
светодиод на датчике горит - а плата не видит сенсор
менял несколько датчиков, подключал совершенно новый
где искать проблему???
как проверить плату???

Может быть ошиблись с разводкой сигнальных проводов SCL SDA? Если да, то датчик работать не будет, но зеленый светодиод при этом будет гореть. Попробуйте поменять местами провода SCL SDA. При этом ничего страшного не случится. Нельзя только ошибаться с разводкой по питанию датчика! Там если перепутать провода, датчик просто сгорит. Но у вас с питанием все нормально, горит зеленый светодиод! Остаются только SCL SDA.

vik991

проблемка образовалась–подключаю подвес(висит на коптере) постепенно камера кренится в одну сторону–сразу нормально а через пару мин даже меньше по немногу увеличивается крен-Это значит что плывет горизонт? В каком бы положении не ставил камеру с наклоном или креном сперва выравнивается а потом медленно кренится только в одну сторону.подвес dys алексмос 8бит. Без питания может находится в любом положении т е балансировка нормальная.

pinco

может поможет расширенная калибровка ?

vik991
pinco:

может поможет расширенная калибровка

Это та калибровка где нужно снять платку за камерой и всячески ее крутить?

Taiga:

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

это оно?

skydiver
Taiga:

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

Все современные МЕМС иму работают на электростатическом эффекте, а пьезогиры ушли с рынка еще лет пять назад.

pinco

нет, снимать не нужно
посмотрите на сайте инструкцию по контроллеру
там есть описание
помнится мне помогло

vik991

“Простой режим: установите сенсор строго горизонтально по двум осям и нажмите КАЛИБРОВАТЬ”-цитата. это значит положение когда камера строго смотрит вниз те по плоскости параллельна столу?

Anatoll
vik991:

положение когда камера строго смотрит вниз

это когда камера смотрит вперед на строго горизонтальной плоскости…

Taiga

Первый раз сделал трехосевой подвес на гексу. До этого клепал носимые для зеркалок, на гексу это посложнее! …Так вроде нормально отлетал, только камера почему-то изредка подергивается. Был сильный ветер, но думаю дело не в нем. Камера SJCAM 4000. АlexMos…

vik991
Anatoll:

это когда камера смотрит вперед на строго горизонтальной плоскости

понятно–а датчик соответственно перпендикулярно.спасибо большое. Кстати так и не нашел где перемычка или запаять для того чтоб пять вольт подать на управляющий разьемы-на 32 бит уже сделано,на другой версии 8 бит называется L1-но на моей не нашел-разобрал полностью и ничего.запитаю приемник от назы.

mAck0s

Дико извиняюсь если не в тему, но м.б. ктонибуть подскажет - где в Москве купить _паркфлаер ру/product/1183145/ ???
срочно нужен. Нет времени ждать доставки 😦

gosha1970

Подскажите в чем может быть проблема. Не могу нормально откалибровать датчик который на раме. Датчик с камеры прекрасно калибруется по шести точкам, кладу горизонтально ось Z и т.д. А датчик с рамы показывает полный бред, так же кладу горизонтально, но вместо оси Z он показывает Y. Уже надоело ужасно, мучаюсь с подвесом второй месяц…
Подвес и плата( alexmos 32) от DYS под sony nex.

igoralekseevru

коллеги: помогите разобраться где собака порылась

купил 32 битную версию контроллера, последняя 2.50 б2 прошивка и последний GUI, соединение по BT (от 8 битного правда но ведь ничего же не менялось?)

тыкаю auto в определение моторов - каждый раз выдает разный результат (количество полюсов) (телефонная версия определила полюса правильно)

тыкаю в auto PID - выдает какие-то дикие значения под P 200

подвес вроде бы работает но как то очень медленно доворачивает

что делать? PID ы от 8-битного совсем не подходят

P.S. пару раз вылезло serial data corrupted

блютус с flyduino.net/Serial-Bluetooth-Adapter-PlugnPlay-fo…

верно я понял что нужно parity even сделать и возможно проблемы уйдут? А как потом им настраивать 8 битные контроллеры? обратно перепрошивать блютус?

RuslanG
gosha1970:

но вместо оси Z он показывает Y.

а что значит показывает У, там нужно по осям расставить, и они не обязательно должны быть как в книжке, вверх Z, вправо Х

igoralekseevru:

обратно перепрошивать блютус?

проще еще один купить, не так дорого стоит, нервы дороже

gosha1970
RuslanG:

а что значит показывает У, там нужно по осям расставить, и они не обязательно должны быть как в книжке, вверх Z, вправо Х

Ну ведь логично если оба датчика лежат абсолютно одинаково, то оси должны совпадать ?