Стедикам из подвеса на бесколлекторных двигателях.

V_I_P_E_R
Vecmilgravis:

Игорь, сравните со своими работающими/неработающими.

Посмотрел. Мои лепились точно в одной партии, так как я сам разделял платы. У меня вроде все как “работающие слева”, вроде - потому что сейчас не могу посмотреть, а на моем фото такой же, как слева. А перемычек на GND вообще не делали? Какой адрес у них - по мануалу (0-40 0-42) или “дефолт”?

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

V_I_P_E_R
Vecmilgravis:

но на фото перемычки видны

и еще вопрос по левому энкодеру - он вообще без перемычек и видится программой? Какой у него адрес стоит?

Vecmilgravis
V_I_P_E_R:

и еще вопрос по левому энкодеру - он вообще без перемычек и видится программой? Какой у него адрес стоит?

Без перемычек - это ролл, там А1 и А2 должны быть 0.

Сегодня пропаяли неработающую платку. Вроде завелась. Но поймал ситуацию, когда при включении были видны только два из трёх энкодеров. После перезапуска - опять три. Склоняюсь всё же, что на землю надо тоже перемычки кидать с А1 и А2, если они должны быть 0, иначе можем получить непредсказуемо в самый неподходящий момент ошибку адреса и ошибку в работе подвеса.

V_I_P_E_R

Итак, решилась проблема с платой. Спасибо Юрию Gapey за абсолютно точно дистанционно поставленный диагноз и Сергею и Андрею из кинематика - официала Basecam за проверку и оперативный ремонт платы. Жаль, что некоторые другие официалы Basecam в Москве не перенимают опыт общения с клиентами и техподдержки. Проблема была в отгоревшей земле на шине i2c, повезло что обошлось одним фильтром. Тестирую энкодеры дальше)

Vecmilgravis:

Без перемычек - это ролл, там А1 и А2 должны быть 0.

Ну вот хоть убейте - не видит его программа!!! В аналогичной ситуации. Подключаю на ролл А1 и А2 без перемычек и ничего не происходит. Пошел паять на GND перемычки.
Вопрос: сразу после добавления энкодера (после перезагрузки) должен ли вновь добавленный энкодер давать данные в диагностику? Или он даст данные только после калибровки?

V_I_P_E_R

Спаял. Подключил. Ничего не работает.
Плата - без проблем.
Подключенный через PWM энкодер - без проблем.
Оба энкодера по i2c - ну никак.
Спаял перемычки а1, а2 в соответствии с инструкцией. Все подключил. Включил энкодеры на ролл и яв, указав 5048В, адрес оставил дефолт (пробовал и расставить 0х40 и 0х42, результата тоже нет). Ни в диагностике, ни во вкладке debug нет никакой информации - debug пишет disconnected, диагностика показывает 0 на оба энкодера.
Если поставить галочку “skip auto detection” и выставить адреса - лезет тонна ошибок по i2c, но энкодеры не работают. При этом в debug получаю:
Encoder[ROLL] type: AS5048B (I2C)
magnitude: 0, auto-gain: 0
diagnostic: no problems
read errors: 11206
Encoder[PITCH] type: AS5048A,B (PWM)
read errors: 0
Encoder[YAW] type: AS5048B (I2C)
magnitude: 0, auto-gain: 0
diagnostic: no problems
read errors: 11196
DRIVERS STATE: OTW=0, DRV_FAULT=0
и соответственно кол-во ошибок чтения растет, моторы на соответствующих осях работают крупными секторами.
Голова сломана. Кто что подскажет? Может и правда в поддержку Basecam написать? Или повыбрасывать все и заняться вязанием?

Vecmilgravis

Проверьте, звонятся ли точки для проводов на плате SDA и SCL на ноги микрух. У меня на неработающей плате звонились только при сильном нажатии, т.е. микруха как бы висела над платой и не была пропаяна.
Вы пробовали работающую плату переключить с PWM на I2C?
Данные вроде видны сразу без калибровки (ИМХО)
Если отключены какие то из осей во вкладке Дополнительно, то на этих осях нету рав данных с энкодеров в Диагностике, даже если на этих осях энкодеры выбраны.

V_I_P_E_R
Vecmilgravis:

звонятся ли точки для проводов на плате SDA и SCL на ноги микрух

да, без нажатия

Vecmilgravis:

Вы пробовали работающую плату переключить с PWM на I2C?

Нет, перепаивать ноги придется, да и PWM уже готовый, вклеен.

Vecmilgravis:

Если отключены какие то из осей во вкладке Дополнительно, то на этих осях нету рав данных с энкодеров в Диагностике, даже если на этих осях энкодеры выбраны.

Это в смысле выходы на моторы? Выходы включены и соответствуют осям. Все моторы работают и стабилизируют. Но не работают энкодеры)

Написал в техподдержку Basecam - надеюсь, жду.

V_I_P_E_R
alexmos:

Алгоритм контроля мотора завязан на энкодеры,

Алексей, а нет ли варианта какого-либо расширения кол-ва PWM? Не хватает двух каналов для подключения энкодеров и получается вся описанная в данной ветке проблема с подключением их по i2c. Если бы был вариант какого-то “сплиттера” для PWM - было бы проще. Каналы задействованы управлением с пульта всех каналов + переключение режимов.

alexmos
V_I_P_E_R:

Алексей, а нет ли варианта какого-либо расширения кол-ва PWM?

Есть решение - все управление вы може завести через Sum-PPM (на входе RC_ROLL в обычной прошивке или AUX3 в энкодерной). Упаковать 8 PWM каналов в Sum-PPM можно с помощью кодировщика, они часто продаются вместе с ардупилотом, стоят копейки. Или, если у вас приемник имеет такой выход, можете его использовать. Можно и самому сделать из ардуины.

Но вообще странно что I2C завести не удается. Это ж самая простая шина, три провода подключить и все, они напрямую идут к ногам чипа и ошибиться сложно. Если конечно чип не SPI (с буквой A на конце). Если подозрения что не ставится адрес - попробуйте перебрать адреса в GUI (оставив только один энкодер на шине) пока он не определится. Да, ещё замечание - “I2C high speed” не должен быть включен - эти энкодеры только на 400kHz работают.

V_I_P_E_R
alexmos:

Да, ещё замечание - “I2C high speed” не должен быть включен - эти энкодеры только на 400kHz работают.

Алексей, если бы можно было поставить 3 раза спасибо - поставил бы))) все заработало, по крайней мере только что все энкодеры отозвались в диагностике. Но я (как и многие пользователи) не ясновидящий - почему же об этом нигде не написано? Я наоборот считал, что повышенная скорость шины нужна, т.к. большее кол-во потребителей (да, потребительское отношение, я пилот и некоторые вещи в электрике только познаю)))
Еще раз спасибо, пошел настраивать.

Ну вот, все откалибровалось, работает отлично. Система передачи информации с ява со слипрингом не дает люфтов. Эпопея с настройкой закончилась, теперь надо все убрать в коробки (буду печатать) и на поле для летных испытаний.
Энкодеры - вещь. И с учетом темы на стедиках обязательно ставьте их! Я поставил на подвес ради увеличения возможностей ява (иногда сдувало) - результат прекрасный! В данной конфигурации подвес никогда не мог держать углы, которые держит теперь. Усилие отличное. По энергопотреблению и безотказности - буду тестировать.

Rovbuilder
V_I_P_E_R:

Ну вот, все откалибровалось, работает отлично

ээх, поздравляю, хоть общими усилиями за пару страниц постов к чему то пришли, дико интересно потребление,
c Алексеем (Vecmilgravis) поставили такие штуки
удобно и видно все

V_I_P_E_R
Rovbuilder:

поставили такие штуки
удобно и видно все

Ну такой штуки у меня нет. Я скорее смогу в сравнении сказать, как было - как стало. На 4 банках 1000 ман подвес работал около часа. Сейчас явно будет меньше, уровень мощности моторов на минимуме - значит и есть будет меньше. Поведение соответствует тому, как должно быть с энкодерами.
Но вот есть у меня скромный такой вопрос. А кто подскажет, за счет чего энкодеры так изменяют работу двигателя? Почему увеличивается усилие, уменьшается потребление и пропадают шаги? Каков механизм этой панацеи?

Rovbuilder
V_I_P_E_R:

Ну такой штуки у меня нет.

дк тестером не интерсно тыкнуть и узнать сколько ест устройство разве?

V_I_P_E_R:

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

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

RuslanG
V_I_P_E_R:

А кто подскажет, за счет чего энкодеры так изменяют работу двигателя?

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

V_I_P_E_R
RuslanG:

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

Ок. Мощность понизилась - это ладно. Усилие почему увеличилось? Куда шаги делись?

Вопрос просто для общего развития, думаю полезно разобраться.

Rovbuilder:

тестером не интерсно тыкнуть и узнать сколько ест устройство разве

Проверю, сейчас тестер на 200 мА, найду побольше и проверю.

lokanaft
V_I_P_E_R:

Куда шаги делись?

То есть уже просто так не перещёлкивается мотор совсем, даже если сильно его провернуть?

RuslanG
V_I_P_E_R:

Усилие почему увеличилось? Куда шаги делись?

за счет линейности усилия, раньше как усилие было, нарастает потом бац сорвалось, все кратно полюсам, и получается что не попал в фазу задрожало и сорвало, вот и приходилось пиды понижать.
а шаги все там же, просто теперь система точно знает (14бит = 0.02гр) где сейчас мотор. Я думаю Алексей если прочитает, то отпишет более подробно.

Rovbuilder:

дк тестером не интерсно тыкнуть и узнать сколько ест устройство разве

у меня в спокойствии 0.04А=40мА, под нагрузкой (если рукой двигать все оси сразу) до 0.9А, если просто болтать то не больше 0.1А

V_I_P_E_R
RuslanG:

Я думаю Алексей если прочитает, то отпишет более подробно.

Думаю всем было бы полезно.

lokanaft:

То есть уже просто так не перещёлкивается мотор совсем, даже если сильно его провернуть?

Да, именно так. Мотор стал “резиновый” - упругий и без трещотки.

alexmos
V_I_P_E_R:

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

Так получилось, хорошо что вообще вспомнил. Я в основном все подвесы на обычной скоости I2C настраиваю, высокая скорость нужна только для особых случаев когда много устройств на шине и на обычной скорости обработать все не хватает пропускной способности. Также и с энкодерами, когда писал мануал об этой особенности не подозревал. Потом случайно поймал эту проблему, нашел что причина в скорости, отключил высокую и продолжил настройку. Тогда не подмал, что это надо бы в мануале описать, а лучше вообще сразу эту ситуацию в прошивке обработать. Зато теперь есть повод это сделать.

V_I_P_E_R:

Но вот есть у меня скромный такой вопрос. А кто подскажет, за счет чего энкодеры так изменяют работу двигателя? Почему увеличивается усилие, уменьшается потребление и пропадают шаги? Каков механизм этой панацеи?

Алгоритмы управления совсем разные. Без энкодеров мотор работает как синхронный двигатель - крутится магнитное поле постоянной амплитуды и магниты за ним следуют. Но поле крутится независимо от того, успевает мотор или нет - такой информации у системы нет. С энкодерами мы знаем угол магнитов по отношению к полю, и работает векторное управление. Если по простому - поле не крутится дальше, если мотор остановился. И амплитуду можно в 0 сбросить, если не нужно усилие. Более подробно в этих отличных статьях:
geektimes.ru/company/npf_vektor/blog/270666/
geektimes.ru/company/npf_vektor/blog/269486/

vankinvenik

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