Стедикам из подвеса на бесколлекторных двигателях.
Но я (как и многие пользователи) не ясновидящий - почему же об этом нигде не написано? Я наоборот считал, что повышенная скорость шины нужна, т.к. большее кол-во потребителей (да, потребительское отношение, я пилот и некоторые вещи в электрике только познаю)))
Так получилось, хорошо что вообще вспомнил. Я в основном все подвесы на обычной скоости I2C настраиваю, высокая скорость нужна только для особых случаев когда много устройств на шине и на обычной скорости обработать все не хватает пропускной способности. Также и с энкодерами, когда писал мануал об этой особенности не подозревал. Потом случайно поймал эту проблему, нашел что причина в скорости, отключил высокую и продолжил настройку. Тогда не подмал, что это надо бы в мануале описать, а лучше вообще сразу эту ситуацию в прошивке обработать. Зато теперь есть повод это сделать.
Но вот есть у меня скромный такой вопрос. А кто подскажет, за счет чего энкодеры так изменяют работу двигателя? Почему увеличивается усилие, уменьшается потребление и пропадают шаги? Каков механизм этой панацеи?
Алгоритмы управления совсем разные. Без энкодеров мотор работает как синхронный двигатель - крутится магнитное поле постоянной амплитуды и магниты за ним следуют. Но поле крутится независимо от того, успевает мотор или нет - такой информации у системы нет. С энкодерами мы знаем угол магнитов по отношению к полю, и работает векторное управление. Если по простому - поле не крутится дальше, если мотор остановился. И амплитуду можно в 0 сбросить, если не нужно усилие. Более подробно в этих отличных статьях:
geektimes.ru/company/npf_vektor/blog/270666/
geektimes.ru/company/npf_vektor/blog/269486/
Может, уже появились моторы со слипрингами и енкодерами сразу?
пока не может
Алгоритмы
Алексей, а есть ли возможность изменить скорость возврата в ноль в случае чрезмерной нагрузки? Срыва нет, но есть сдвиг от внешнего усилия например на 15 градусов. В ноль ось восстанавливается достаточно долго. Имею ввиду ось с энкодером.
Алексей, а есть ли возможность изменить скорость возврата в ноль в случае чрезмерной нагрузки? Срыва нет, но есть сдвиг от внешнего усилия например на 15 градусов. В ноль ось восстанавливается достаточно долго. Имею ввиду ось с энкодером.
От значения “I” в пидах очень зависит скорость возврата, разве нет?
У меня тоже вопросик. Через слипринги + кольцевые магниты + энкодеры - не могу избавиться от ошибок по I2C. На 8 бит можно было как то бороться толи резиками, толи кондюками, а на 32битке что то ещё можно попробовать, кроме колец на шнурки моторов? Когда моторы выключены - ошибок нет, когда включены - несколько штук в секунду. 😦
а на 32битке что то ещё можно попробовать, кроме колец на шнурки моторов?
А какая длина кабелей? У меня 2 на i2c с длинами 5 и 25 см. - ни одной ошибки.
Жестко установлены энкодеры? Я когда еще формировал модель крепления для печати крепил на времянку - ошибки лезли.
От значения “I” в пидах очень зависит скорость возврата, разве нет?
Это да, но я говорю не о стабилизации, а о восстановлении после внешнего воздействия (ну рукой повернули на 15 градусов ось питч например). А этот параметр по идее не меняется изменением ПИДов.
Алексей, а есть ли возможность изменить скорость возврата в ноль в случае чрезмерной нагрузки? Срыва нет, но есть сдвиг от внешнего усилия например на 15 градусов. В ноль ось восстанавливается достаточно долго. Имею ввиду ось с энкодером.
Сейчас в 8бит и 32бит эта скорость зависит от “I”, увеличивайте ее. Вот только недвано я это изменил, теперь на большом угле зависит от “OuterP” и “P”. В следующем релизе будет так.
А какая длина кабелей? У меня 2 на i2c с длинами 5 и 25 см. - ни одной ошибки.
Жестко установлены энкодеры? Я когда еще формировал модель крепления для печати крепил на времянку - ошибки лезли.
Длины от 15 до 50см, энкодеры закреплены жёстко. Но дело то в том, что в времянке провода были раза в полтора длиннее, и всё шевелилось, и ошибок не было, а
перепаял со слип рингами - и началось…
Ну вот, все работало и настроилось, но при установке на рабочее место и проверке управления оказалось, что не работает вход RC_ROLL/SUM - просто не видит входного сигнала, переключал разные входы. До этого была проблема с фильтром на i2c, могло что-то сгореть за компанию? Кто подскажет что посмотреть?
времянке провода были раза в полтора длиннее, и всё шевелилось
может в новом проводе проблема?
перепаял со слип рингами
Это с тем самым круглым магнитом? У меня ошибки лезли при ошибке считывания, то есть что-то мешает считать сигнал с магнита или не жестко стоит энкодер и он кидает ошибку чтения. Посмотрите по вкладке debug - что показывает? Ошибку чтения в большом кол-ве? Если да - скорее всего не прокатило с проводами через магнит.
Ну вот, все работало и настроилось, но при установке на рабочее место и проверке управления оказалось, что не работает вход RC_ROLL/SUM - просто не видит входного сигнала, переключал разные входы
Попробуйте на AUX3 подключить.
Длины от 15 до 50см, энкодеры закреплены жёстко. Но дело то в том, что в времянке провода были раза в полтора длиннее, и всё шевелилось, и ошибок не было, а перепаял со слип рингами - и началось…
Все вполне объяснимо - в слипринге сильная емкостная связь между соседними кольцами, наводки от ШИМ моторов на I2C в разы больше. Как это решают другие, не знаю, подождите может что посоветуют. Попробуйте перебрать разные выводы слипринга, чтобы отделить проводники друг от друга.
Попробуйте на AUX3 подключить.
А как на него вывести этот выход? Во вкладке RC не дает выбрать выход AUX3 для CMD (в моем случае).
А как на него вывести этот выход? Во вкладке RC не дает выбрать выход AUX3 для CMD (в моем случае).
На него перенесен весь функционал RC_ROLL. В документации на энкодерную прошивку это указано.
На него перенесен весь функционал RC_ROLL. В документации на энкодерную прошивку это указано.
Точно. Читал. Забыл.
А я вот тут задумался об уменьшении проводки между приемником и платой - ведь для питания достаточно одного комплекта проводов, а остальные можно оставить только сигнальные? И по AUX3 аналогично - кинуть 1 сигнальный на А3? Или я не прав?
может в новом проводе проблема?
Это с тем самым круглым магнитом? У меня ошибки лезли при ошибке считывания, то есть что-то мешает считать сигнал с магнита или не жестко стоит энкодер и он кидает ошибку чтения. Посмотрите по вкладке debug - что показывает? Ошибку чтения в большом кол-ве? Если да - скорее всего не прокатило с проводами через магнит.
Что то мне подсказывает, проблема не в проводах, так как эта проблема на разных слипах вылезает.
В debug тоже есть ошибки чтения.
Все вполне объяснимо - в слипринге сильная емкостная связь между соседними кольцами, наводки от ШИМ моторов на I2C в разы больше. Как это решают другие, не знаю, подождите может что посоветуют. Попробуйте перебрать разные выводы слипринга, чтобы отделить проводники друг от друга.
с трудом верится что там сильная емкостная связь …думаю что не более чем в жгуте проводов … расстояния между кольцами соизиммеримы с толщиной изоляции проводов …
чем перебирать ,проще вскрыть один слип и вызвонить порядок проводов на кольцах … на крайние кольца мотор(ы) , следом силовые питание и земля ,потом сигнальные с приемника и тому подобные , потом питание сенсоров и I2C c противоположного от мотора края …
еще один возможный источник ошибок с энкодеров - проходящие в непосредственной близости от чипа провода от мотора , особенно при использовании кольца … у энкодера от вносимого проводом магнитного поля может просто крышу сносить …
А вот ещё вопрос по принципу работы прошивки энкодерной. Если магнитное поле определяется как to low, контроллер переходит на алгоритм “как без энкодеров”? и тогда питание на моторах не снижает?
вскрыть слип пока возможности нету, их и так не хватает 😦
вскрыть слип пока возможности нету, их и так не хватает
процарапываете иголкой по кругу по канавке из которой выходят провода (два пучка) …
как только сцарапаете клей снимется верхняя крышка …
дальше не разбирать , ато обратно не соберёте , вовсяком случае без спецприспособлений для раздвигания щеток …
там внутри есть две достаточно большие щели чтобы добраться щупом до колец …
у меня на SNM12U-12 порядок следующий :
1- черный
2- коричневый
3- красный
4- оранжевый
5- желтый
6- зеленый (более темный) *
7- синий
8- фиолетовый (сиреневый)*
9 - серый (темный зелноватый)*
10- белый
11- зеленый (более светлый)*
12- голубой
те что помечены * обозваны так как я их вижу (немного дальтоник)
опять-же оттенки могут отличаться от партии к партии …
для проверки - цвета с соседними номерами должны выходить в разных пучках …
А вот ещё вопрос по принципу работы прошивки энкодерной. Если магнитное поле определяется как to low, контроллер переходит на алгоритм “как без энкодеров”? и тогда питание на моторах не снижает?
Почему спрашиваю. По ощущениям - работает подвес как будто без энкодеров. Так же жужжит шагами моторов, питание не уменьшает на стоящие оси и т.д. В debug пишет магнитное поле to low. Но если смотреть в диагностике рав данные с энкодеров - то там при вращении осями данные меняются.
По факту кольцевые магниты, не смотря на более внушительные размеры, по сравнению с комплектными малышами, если верить данным пишущимся в debug, оказались слабее, и расстояние до появления надписи “to low” разрешают делать не более 2 мм, что маловато для вывода проводов от слипа (ну, может солнышком ещё попробовать …)
магниты брал вот эти
www.ebay.com/itm/360430995574
и расстояние до появления надписи “to low” разрешают делать не более 2 мм
Ну так это ведь изначально и обсуждали - вы же говорили что до 3 сантиметров дает установить?
Так же жужжит шагами моторов, питание не уменьшает
= не работают энкодеры. Калибровку сделали? Если выставить все и не словить too low и провести калибровку - должны заработать и будут вести себя иначе, как с энкодерами.
не более 2 мм, что маловато для вывода проводов от слипа (ну, может солнышком ещё попробовать …)
У меня на слипе очень тонкие провода и вполне есть возможность уложить солнышком в 2 мм. Вопрос только не будут ли они энкодеру мешать, я изначально поэтому и не делал подобную конструкцию, сразу решил делать “копию оси” движка. И все работает.
вы же говорили что до 3 сантиметров дает установить?
.
до 3-5 сантиметров меняются данные, если крутить оси и смотреть рав данные в диагностике. И при этом to low с 2мм
И при этом to low с 2мм
На его месте меня бы тоже глючило - вместо маленького центрального пихают круговой магнит с преградами в виде проводов и хотят чтоб работал правильно.