подвес на бк моторах (open source) от немцев

k1T4eR

При 10 Ом сопротивлении двигатель будет нормально работать, или это определяется не только этим фактором?

cylllka
crand:

Значит я отстал от жизни. 😮
Может я что-то и не правильно сам понял, но если при подаче напряжения камера расположена горизонтально, то потом, при поворотах, горизонт держиться хорошо. Если же камера была наклонена, то при поворотах камера наклоняется. Как-то так.

Я не знаю как у “немца” работает алгоритм, но у Алексмос при подаче питания калибруется только гироскоп, и как уже писал Дмитрий, ему пофик в каком он положении, главное никаких вибраций.
А вот акселерометр калибруется или через ГУИ, или кнопкой на плате. При калибровке акселя, его (или площадку камеры) нужно разместить горизонтально, и нажать калибровка. Процесс занимает около 30-40 секунд. При этом на датчик не дишим, и даже несмотрим! (шутка), нималейшего движения. Акселерометр не нуждается в постоянной калибровке.

Dmitry_F
cylllka:

А вот акселерометр калибруется или через ГУИ, или кнопкой на плате.

Спасибо вам огромное, добрый вы человек. Вот бы теперь кто то подсказал где эта кнопка. В ассистенте есть кнопка GYRO-CAL это может быть калибровкой акселя?

cylllka
Dmitry_F:

Спасибо вам огромное, добрый вы человек. Вот бы теперь кто то подсказал где эта кнопка. В ассистенте есть кнопка GYRO-CAL это может быть калибровкой акселя?

Возможно это она и есть.

Chester_kz
cylllka:

Возможно это она и есть.

Полез в код от 048 выяснить этот вопрос. И не нашел ничего что касается калибровки акселерометра. Гироскопы да в момент подачи питания и по кнопке а пот про аксели тишина. Странно как-то… почему они отказались от калибровки. Получается датчик всегда должен стоят ровно по всем осям относительно камеры. На практике сделать это почти не возможно… всегда будет какая-то неточность. Или ей можно пренебречь?

SteinDen

Принцип ПИД настройки общий, но часто мы забываем всякие мелочи.

Нашел на рцгрупсе материал на тему настройки контроллера, значительную часть дополнил своим текстом.

Автор - Brandigan и я

Итак…

Горячий двигатель = слишком большое значение 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.

sskom

Собрал подвес и плату с RCTIMER.

Все пришло очень быстро и собралось без проблем. Но заставить его работать я так и не смог. Bt-tool2_048 скачал, подвес он видит. Arduino 1.0.5 скачал, выбрал Arduino Pro Atmega 328 и код в плату записал (нужно ли вообще это было делать?). После этого на дефолтных настройках подвес страшно вибрирует. Если уменьшить или обнулить maxPWM, то вибрации проходят. Но самое печальное, что подвес вообще не держит ни горизонт, ни даже не сопротивляется.

И что делать с питанием? Сколько все-таки вольт подавать? А когда USB включен, то питание выключать или пусть остается? Уже и видео кучу пересмотрел и форумов на двух языках перечитал, а прогресса нет.

Help!

SteinDen
sskom:

Help!

Я не понимаю, почему на подвесе Rctimer датчик MPU6050 стоит вверх чипом? Ведь 48 прошивка корректно работает с датчиком обращенным вниз, при этом контакты платы MPU должны быть обращены к мотору Roll. Проверьте - может есть возможность установки платы чипом гироакселя вниз.

Если вибрирует, стоит понизить P. Но перед этим проверьте правильность установки галок Reverse. Или поменять местами два провода мотора.

Встречаются изредка сообщения о выходе из строя плат при одновременном подключении USB и аккумулятора. Но большинство настраивает при подключенном компьютере и силовой АКБ.

Питание ограничено в первую очередь электролитическими конденсаторами (16\25В) Сами драйверы и L7805 достаточно “высоковольтны” - можно хоть 6S подключать.

sskom

Спасибо огромное! Переставил датчик - все заработало! Столько фотографий пересмотрел как этот датчик устанавливать, такого положения не было. А где, подскажите, написано про правильную установку?
Теперь принялся за настройку и пока подключено 8V по Roll идет срыв. Может этим моторам все-таки нужно больше?

Dmitry_F
SteinDen:

Нашел на рцгрупсе материал на тему настройки контроллера, значительную часть дополнил своим текстом

Денис огромное вам человеческое спасибо!!!

uv3dut
sskom:

Может этим моторам все-таки нужно больше?

Попробуйте 12 вольт

SteinDen
sskom:

А где, подскажите, написано про правильную установку?

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

В версии _049_A10 (в разделе definitions.h) была возможность введения смещения на установку платы MPU6050. В последующих ревизиях ее почему-то убрали. Надеюсь выведут как опцию в ГУИ.

//Offset for ACC Sensor
#define OFFSET_PITCH 0 // Offset Pitch
#define OFFSET_ROLL 0 // Offset Roll

sskom:

Теперь принялся за настройку и пока подключено 8V по Roll идет срыв. Может этим моторам все-таки нужно больше?

Попробуйте запитать от 3S, и поиграться с значением maxPWM.

sskom

Запитал от 4S. Все вроде неплохо, но не могу в крайних положениях получить горизонт. Менял IAcc от 0 до 10 и дальше, с шагом 0.1 и 0.05. Попробую переставить датчик по осям моторов. Спасибо еще раз за помощь и подробную интсрукцию!

SteinDen

Вышла новая прошивка BruGi_049A_r45
code.google.com/p/brushless-gimbal/…/detail?name=B…

Что радует - убрали глюк связанный с наклоном камеры по оси Pitch. Я заснял тестовое видео на этой прошивке.

* RC +/-45 degree glitch fixed at pitch, roll still unchanged
* faster lock at startup
* OAC output runs at 25Hz, is same rate as used by 046…
* RC low pass filters have been set slower in absolute mode
Note: GUI does not support sensor orientation settings, use meisters version

И кстати, у меня на этой прошивке почему-то перестал работать RCgain, соотв. невозможно изменить скорость наклона камеры. На 48 работает. У кого есть возможность проверьте также эту функцию. Возможно закрался баг.

sskom

SteinDen,

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

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

sskom

Нашел куда подключать. Действительно RCgain на скорость перемещения не влияет.

Chester_kz

Поставил 049. Моторы гудели. Начал настраивать. Поставил настройки и файла Setting-GoPro-typical-2-Brugi_049.png который идет с прошивкой. Вроде было лучше чем 048. Решил немного прибавить PWM по pitth.Сколько именно добавил не помню но не много. Вышел на улицу проверить положил подвес включил подвес и получил два горелых драйвера. Вот такие дела. Может прошивка такая может причиной стало то что подвес лежал на земле и моторы не смогли сразу свободно крутиться. Вообщем как-то так. Будте осторожны…
Теперь блин новую плату заказывать(или две) и ждать хз сколько. (((

SteinDen
Chester_kz:

получил два горелых драйвера

Очень удивительно. Какой-бы сигнал не выдавала атмега, спалить сразу 2 драйвера, гарантированно быстро, можно лишь сменив полярность, как на фото ниже.
Я заливал загрузчик в чистую мегу328 - драйвера разогревались из-за “каши” на входах. Но выхода из строя ни разу не было. Кроме того, я уже много дней “очень жестко” экспериментирую и добавлением PWM до 255 значения мне удавалось спалить обмотки моторов, намотанных проводом 0,1 - 0,14. Т.е. драйверы способны отдать 5 Ампер в пике, что немало. Кроме того, L6234, как указано в даташите имеют теплозащиту. При достижении критической температуры должен уменьшится протекающий ток. Но судя по отзывам народа, уже имелись случаи самоотпайки драйверов - а это не менее 260 градусов.

Я бы на вашем месте тщательно все проинспектировал, дабы исключить в будущем.

Chester_kz

Прочитал ваш пост тоже начал думать о переплюсовки. Разъем на батарейке JST. Провел експеремент можно ли воткнуть разъем наоборот. И оказалось что да. 😦(( Видно сами разъемы были не очень да еще и разболтались. Исходя из этого и вашего поста могу сказать что с вероятностью 98% моя вина и была переплюсовка. Так что прошивка не причем. Тока мне от этого уже не легче… 😦(

SteinDen
Chester_kz:

Тока мне от этого уже не легче… (

Я советую проверить, заливается ли скетч в атмегу и идет ли коннект по USB. Иными словами проверить - исправна ли Atmega328 и FT232.

Если это все исправно, то лучше купить драйвера, здесь к примеру www.elitan.ru/price/index.php?seenform=y&find=L623… ( Москва) - это возможно будет быстрее чем заказывать у китайцев. Два драйвера по 192.00 руб. + доставка, можно экспресс.

Или посмотрите у местных поставщиков. Кстати у вас китай рядом, может быть отсюда быстрее придет - www.aliexpress.com/item/…/903328650.html

И если используете разъемы на питание платы, то советую схему на фото ниже. Если поменяете полярность, то диоды создадут короткое замыкание для предохранителя, соотв. он выгорит. Два диода в параллель для гарантированного выгорания предохранителя, а не кристалла Шоттки. Большое падение напряжения (при реверсе питания) на кристаллах Шоттки защитит всю плату.

Этот способ включения гораздо лучше, чем просто диод в разрыв питания тем, что у вас не будет падения напряжения на диодах.

Chester_kz

Большое спасибо за совет. Драйвера с китая будут к нам идти столько же сколько и в Россию. Кроме драйверов скорее всего погорели и LDO. Так как подача правильного питания показала что ничего на плате не загорелось. Если драйвера еше как-то смогу перепаять но вот SMD LDO думаю нет. К стыду своему до сих пор не имею паяльной станции. Есть еше одна плата v3 но с ней другая проблема. До меня с нее выдрали USB разъем. Пере поял разъем. Но видно что FTDI там накрылся. GUI не конектиться. Попытки прошивки заканчиваются avrdude: stk500_getsync(): not in sync: resp=0x00. Пробовал подключаться отдельным FTDI тоже самое. Судя по схеме контроллера используется тока VCC,TX,RX,GND. Но видно сидящий битый FTDI портит всю картину. В тоже время в авр смог залить бутлодер через ISP.