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

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

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

V_I_P_E_R
alexmos:

Алгоритмы

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

Vecmilgravis
V_I_P_E_R:

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

От значения “I” в пидах очень зависит скорость возврата, разве нет?

У меня тоже вопросик. Через слипринги + кольцевые магниты + энкодеры - не могу избавиться от ошибок по I2C. На 8 бит можно было как то бороться толи резиками, толи кондюками, а на 32битке что то ещё можно попробовать, кроме колец на шнурки моторов? Когда моторы выключены - ошибок нет, когда включены - несколько штук в секунду. 😦

V_I_P_E_R
Vecmilgravis:

а на 32битке что то ещё можно попробовать, кроме колец на шнурки моторов?

А какая длина кабелей? У меня 2 на i2c с длинами 5 и 25 см. - ни одной ошибки.

Жестко установлены энкодеры? Я когда еще формировал модель крепления для печати крепил на времянку - ошибки лезли.

Vecmilgravis:

От значения “I” в пидах очень зависит скорость возврата, разве нет?

Это да, но я говорю не о стабилизации, а о восстановлении после внешнего воздействия (ну рукой повернули на 15 градусов ось питч например). А этот параметр по идее не меняется изменением ПИДов.

alexmos
V_I_P_E_R:

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

Сейчас в 8бит и 32бит эта скорость зависит от “I”, увеличивайте ее. Вот только недвано я это изменил, теперь на большом угле зависит от “OuterP” и “P”. В следующем релизе будет так.

Vecmilgravis
V_I_P_E_R:

А какая длина кабелей? У меня 2 на i2c с длинами 5 и 25 см. - ни одной ошибки.

Жестко установлены энкодеры? Я когда еще формировал модель крепления для печати крепил на времянку - ошибки лезли.

Длины от 15 до 50см, энкодеры закреплены жёстко. Но дело то в том, что в времянке провода были раза в полтора длиннее, и всё шевелилось, и ошибок не было, а
перепаял со слип рингами - и началось…

V_I_P_E_R

Ну вот, все работало и настроилось, но при установке на рабочее место и проверке управления оказалось, что не работает вход RC_ROLL/SUM - просто не видит входного сигнала, переключал разные входы. До этого была проблема с фильтром на i2c, могло что-то сгореть за компанию? Кто подскажет что посмотреть?

Vecmilgravis:

времянке провода были раза в полтора длиннее, и всё шевелилось

может в новом проводе проблема?

Vecmilgravis:

перепаял со слип рингами

Это с тем самым круглым магнитом? У меня ошибки лезли при ошибке считывания, то есть что-то мешает считать сигнал с магнита или не жестко стоит энкодер и он кидает ошибку чтения. Посмотрите по вкладке debug - что показывает? Ошибку чтения в большом кол-ве? Если да - скорее всего не прокатило с проводами через магнит.

alexmos
V_I_P_E_R:

Ну вот, все работало и настроилось, но при установке на рабочее место и проверке управления оказалось, что не работает вход RC_ROLL/SUM - просто не видит входного сигнала, переключал разные входы

Попробуйте на AUX3 подключить.

Vecmilgravis:

Длины от 15 до 50см, энкодеры закреплены жёстко. Но дело то в том, что в времянке провода были раза в полтора длиннее, и всё шевелилось, и ошибок не было, а перепаял со слип рингами - и началось…

Все вполне объяснимо - в слипринге сильная емкостная связь между соседними кольцами, наводки от ШИМ моторов на I2C в разы больше. Как это решают другие, не знаю, подождите может что посоветуют. Попробуйте перебрать разные выводы слипринга, чтобы отделить проводники друг от друга.

V_I_P_E_R
alexmos:

Попробуйте на AUX3 подключить.

А как на него вывести этот выход? Во вкладке RC не дает выбрать выход AUX3 для CMD (в моем случае).

alexmos
V_I_P_E_R:

А как на него вывести этот выход? Во вкладке RC не дает выбрать выход AUX3 для CMD (в моем случае).

На него перенесен весь функционал RC_ROLL. В документации на энкодерную прошивку это указано.

V_I_P_E_R
alexmos:

На него перенесен весь функционал RC_ROLL. В документации на энкодерную прошивку это указано.

Точно. Читал. Забыл.
А я вот тут задумался об уменьшении проводки между приемником и платой - ведь для питания достаточно одного комплекта проводов, а остальные можно оставить только сигнальные? И по AUX3 аналогично - кинуть 1 сигнальный на А3? Или я не прав?

Vecmilgravis
V_I_P_E_R:

может в новом проводе проблема?

Это с тем самым круглым магнитом? У меня ошибки лезли при ошибке считывания, то есть что-то мешает считать сигнал с магнита или не жестко стоит энкодер и он кидает ошибку чтения. Посмотрите по вкладке debug - что показывает? Ошибку чтения в большом кол-ве? Если да - скорее всего не прокатило с проводами через магнит.

Что то мне подсказывает, проблема не в проводах, так как эта проблема на разных слипах вылезает.
В debug тоже есть ошибки чтения.

Gapey
alexmos:

Все вполне объяснимо - в слипринге сильная емкостная связь между соседними кольцами, наводки от ШИМ моторов на I2C в разы больше. Как это решают другие, не знаю, подождите может что посоветуют. Попробуйте перебрать разные выводы слипринга, чтобы отделить проводники друг от друга.

с трудом верится что там сильная емкостная связь …думаю что не более чем в жгуте проводов … расстояния между кольцами соизиммеримы с толщиной изоляции проводов …
чем перебирать ,проще вскрыть один слип и вызвонить порядок проводов на кольцах … на крайние кольца мотор(ы) , следом силовые питание и земля ,потом сигнальные с приемника и тому подобные , потом питание сенсоров и I2C c противоположного от мотора края …
еще один возможный источник ошибок с энкодеров - проходящие в непосредственной близости от чипа провода от мотора , особенно при использовании кольца … у энкодера от вносимого проводом магнитного поля может просто крышу сносить …

Vecmilgravis

А вот ещё вопрос по принципу работы прошивки энкодерной. Если магнитное поле определяется как to low, контроллер переходит на алгоритм “как без энкодеров”? и тогда питание на моторах не снижает?

вскрыть слип пока возможности нету, их и так не хватает 😦

Gapey
Vecmilgravis:

вскрыть слип пока возможности нету, их и так не хватает

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

у меня на SNM12U-12 порядок следующий :

1- черный
2- коричневый
3- красный
4- оранжевый
5- желтый
6- зеленый (более темный) *
7- синий
8- фиолетовый (сиреневый)*
9 - серый (темный зелноватый)*
10- белый
11- зеленый (более светлый)*
12- голубой

те что помечены * обозваны так как я их вижу (немного дальтоник)
опять-же оттенки могут отличаться от партии к партии …
для проверки - цвета с соседними номерами должны выходить в разных пучках …

Vecmilgravis
Vecmilgravis:

А вот ещё вопрос по принципу работы прошивки энкодерной. Если магнитное поле определяется как to low, контроллер переходит на алгоритм “как без энкодеров”? и тогда питание на моторах не снижает?

Почему спрашиваю. По ощущениям - работает подвес как будто без энкодеров. Так же жужжит шагами моторов, питание не уменьшает на стоящие оси и т.д. В debug пишет магнитное поле to low. Но если смотреть в диагностике рав данные с энкодеров - то там при вращении осями данные меняются.
По факту кольцевые магниты, не смотря на более внушительные размеры, по сравнению с комплектными малышами, если верить данным пишущимся в debug, оказались слабее, и расстояние до появления надписи “to low” разрешают делать не более 2 мм, что маловато для вывода проводов от слипа (ну, может солнышком ещё попробовать …)
магниты брал вот эти
www.ebay.com/itm/360430995574

V_I_P_E_R
Vecmilgravis:

и расстояние до появления надписи “to low” разрешают делать не более 2 мм

Ну так это ведь изначально и обсуждали - вы же говорили что до 3 сантиметров дает установить?

Vecmilgravis:

Так же жужжит шагами моторов, питание не уменьшает

= не работают энкодеры. Калибровку сделали? Если выставить все и не словить too low и провести калибровку - должны заработать и будут вести себя иначе, как с энкодерами.

Vecmilgravis:

не более 2 мм, что маловато для вывода проводов от слипа (ну, может солнышком ещё попробовать …)

У меня на слипе очень тонкие провода и вполне есть возможность уложить солнышком в 2 мм. Вопрос только не будут ли они энкодеру мешать, я изначально поэтому и не делал подобную конструкцию, сразу решил делать “копию оси” движка. И все работает.