Шаговый двигатель против серво привода

puhloschiok
puhloschiok аватар
Offline
Зарегистрирован: 02.11.2017

Товарищи, решил возобновить один из старых своих проектов. В нём требуется вращение вала с 0 до 180 градусов, с 11-ю промежутками (т.е. 12 значений шкалы всего). Вал будет всегда поварачиваться на +/-15 градусов.

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

Всем заранее спасибо за ответы!

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Нет.

puhloschiok
puhloschiok аватар
Offline
Зарегистрирован: 02.11.2017

andriano понятно, спасибо!

Т.е. у меня только один вариант: постоянно держать значение поворота в Ардуине? А есть ли хотя бы такое понятие как "стартовая позиция" сервы. Т.е. чтобы по команде перевести его в какую-то позицию по-умолчания?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Если на пальцах:
Серва - привод с абсолютными координатами.
Сказали : беги на 137 градусов- она побежала и встала на этот градус.
И будет достаточно четко бегать туда не взирая ни на что.
Шаговик - привод с относительными координатами.
Сказали сделай 137 шагов влево - он и сделал.
А где оказался - зависит откуда стартовал.
И считать какое-то положение начальным полностью ваша задача.

sadman41
Offline
Зарегистрирован: 19.10.2016

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

Pyotr
Offline
Зарегистрирован: 12.03.2014

Сам сколхозил привод десятиоборотный (и не один... ). Потенциометр можно ставить и пятиоборотный, и однооборотный по необходимости. Моторредуктор стеклоочистителя от "Волги" с разборки.

b707
Онлайн
Зарегистрирован: 26.05.2017

Pyotr пишет:

Сам сколхозил привод десятиоборотный (и не один... ). Потенциометр можно ставить и пятиоборотный, и однооборотный по необходимости.

и какова точность позиционирования получилась? ИМХО, разрешение и воспроизводимость значения с потенциометра не особо радуют...

Pyotr
Offline
Зарегистрирован: 12.03.2014

b707 пишет:

и какова точность позиционирования получилась? ИМХО, разрешение и воспроизводимость значения с потенциометра не особо радуют...

В моем случае точность устраивает. Использую для привода фрамуг в теплице и кранов\вентилей.
В угловых единицах точность не измерял, а в значении АЦП устанавливается точно в заданное значение.
При калибровке задается мин. и макс. положения и значения ШИМ при приближении к заданному положению отдельно на открывание и закрывание. 
При работе скорость вращения 1 об/сек при 100% ШИМ. За полоборота до заданного положения ШИМ плавно уменьшается и последние 10-15 градусов при мин. значении ШИМ вал привода становится в нужное положение.

Линейность характеристики потенциометра заявлена +-0.25%.

nevkon
Offline
Зарегистрирован: 20.01.2015

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

Так вот есть сервоприводы с абсолютным энкодером, они будут всегда знать в каком положении находится вал. Только цена такого привода не обрадует - от 15-20 т.р.

b707
Онлайн
Зарегистрирован: 26.05.2017

Pyotr пишет:

Линейность характеристики потенциометра заявлена +-0.25%.

спасибо огромное за ответ. А потенциометры как-нибудь отбираете специально? Можно ссылку на те, что использовали?

sadman41
Offline
Зарегистрирован: 19.10.2016

Судя по виду - это Органический твердый потенциометр Bourns c Aliexpress. Оригинальный стоит дороже всей конструкции ))

Pyotr
Offline
Зарегистрирован: 12.03.2014

b707 пишет:

спасибо огромное за ответ. А потенциометры как-нибудь отбираете специально? Можно ссылку на те, что использовали?

Потенциометры беру 500 Ом - 1 кОм. Покупал более 20  у разных продавцов. Косяков не замечал.

Из последних заказов
Десятиоборотные
Пятиоборотные  у них вал тоньше
 Однооборотный  бесконтактный. Нет ограничения по углу поворота. При вращении вых. напр. увеличивается от 0 до 5 В, далее снова 0 В. Мертвой зоны нет. Вращается очень легко, просто не ощущается. Только при начале вращения еле заметное усилие. Думаю подшипник качения установлен с избыточным натягом. Ещё никуда не приспособил)

Pyotr
Offline
Зарегистрирован: 12.03.2014

puhloschiok пишет:

Товарищи, решил возобновить один из старых своих проектов. В нём требуется вращение вала с 0 до 180 градусов, с 11-ю промежутками (т.е. 12 значений шкалы всего). Вал будет всегда поварачиваться на +/-15 градусов.

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

Всем заранее спасибо за ответы!

Как вариант косвенно контролировать положение сервы. После команды на поворот контролировать ток сервы. После установки в нужное положение ток уменьшается на 1-2 порядка. Если же что-то мешает серве отработать угол, то ток не уменьшится.

Или к валу пристроить потенциометр и контролировать положение дуней.

Pyotr
Offline
Зарегистрирован: 12.03.2014

sadman41 пишет:

Судя по виду - это Органический твердый потенциометр Bourns c Aliexpress. Оригинальный стоит дороже всей конструкции ))

По ценам да. Если я беру моторредукторы с классики по 150 р, а тот, что на фото за 200р. Ну плюс еще драйвер и код. Зато получается умная и мощная серва. А ещё у меня есть моторредуктор на 24 В с какого-то автобуса. Просто зверь))

puhloschiok
puhloschiok аватар
Offline
Зарегистрирован: 02.11.2017

Большое всем спасибо за ответы! Много полезной информации.

Что касается привязки к пину потенциометра, то я как раз наткнулся вчера на статью: https://habr.com/company/amperka/blog/127773/

Про бюджет могу сказать только то, что я не готов покупать серву за несколько тысяч. Не та задача. Максимум, что готов потратить, это 15-20 долларов.

Я вот выяснил, что сейчас есть не аналоговые, а так называемые цифровые сервы. Может с ними есть какие-то более простые варианты? Положил глаз на этот: https://ru.aliexpress.com/item/Servo-PDI-5508MG-8KG-JX-speed-metal-teeth...

sadman41 вы упомянули встраивание спец.потенциометра. Что вы имеете под этим в виду? :)

 

sadman41
Offline
Зарегистрирован: 19.10.2016

puhloschiok пишет:

Я вот выяснил, что сейчас есть не аналоговые, а так называемые цифровые сервы. Может с ними есть какие-то более простые варианты? Положил глаз на этот: https://ru.aliexpress.com/item/Servo-PDI-5508MG-8KG-JX-speed-metal-teeth-flat-sports-car-drift-car-digital-steering-gear/32704808311.html

sadman41 вы упомянули встраивание спец.потенциометра. Что вы имеете под этим в виду? :)

Не то, чтобы встраивание, скорее - насаживание на вал. Типа такого: https://ru.aliexpress.com/item/SV01A103AEA01R00-rotasi-sensor-angle-Pemangkas-potensiometer-asli-Murata/32339936894.html

https://www.murata.com/en-eu/products/productdetail.aspx?cate=cgsubRotarPositSenso&partno=SV01A103AEA01B00

С серийными цифровыми сервами (во всяком случае за $20) нет никаких других вариантов. Я мельком видел проджект OpenServo. Вот там всю начинку меняли у сервы и она уже могла по I2C отдавать назад позицию:  https://openservo.org/ServoDocumentation

puhloschiok
puhloschiok аватар
Offline
Зарегистрирован: 02.11.2017

sadman41 так это же просто шикарное решение! Если этот потенциометр умеет передавать свою текщую позицию, то ничего другого и не нужно. Правда я ещё окончательно с сервой не определился, и слабо понимаю, к каждому ли валу подойдёт этот потенциометр.

sadman41
Offline
Зарегистрирован: 19.10.2016

puhloschiok пишет:

sadman41 так это же просто шикарное решение! Если этот потенциометр умеет передавать свою текщую позицию, то ничего другого и не нужно.

Передавать сам он не будет, вы будете его через analogRead() читать и значение через map() приводить к градусам.

puhloschiok пишет:

Правда я ещё окончательно с сервой не определился, и слабо понимаю, к каждому ли валу подойдёт этот потенциометр.

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

puhloschiok
puhloschiok аватар
Offline
Зарегистрирован: 02.11.2017

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

Задумку я свою как-то уже тут озвучивал, и вы даже мне советовали кое-чего. Но я в то время совершенно ничего про Ардуино не знал, потому многие вопросы уже даже не актуальны на данный момент: http://arduino.ru/forum/obshchii/upravlenie-vodonagrevatelem-s-pomoshchy...

ВН
Offline
Зарегистрирован: 25.02.2016

не прошло и полгода, как что-то начало проясняиться ... &