Как я могу изменить недорогой сервопривод для хобби, чтобы он работал «свободно»?

15

У меня есть несколько хобби-сервоприводов ( Power HD 1501MG ), и я хотел бы иметь возможность управлять ими (через Arduino), чтобы они либо поворачивались под заданным мной углом, либо переводили их в режим «свободного хода», куда груз возьмет их куда угодно.

Это вообще возможно, или я просто собираюсь в итоге зачистить шестерни?

Моя первая мысль - просто убить питание сервопривода, но сила, необходимая для перемещения их в этом состоянии, больше, чем мне бы хотелось.

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

Khrob
источник
3
Сервоприводы для хобби не очень подходят для надежной робототехники, а модифицированные сервоприводы для хобби еще хуже. Вам не понравится то, что вы получите, если сделаете это. Вместо этого купите недорогой двигатель постоянного тока с редуктором и небольшой Н-мостик, он будет намного надежнее, и вы будете намного счастливее. Вы можете построить H-мост из схемы L298 по очень низкой цене.
Джон Уотт,
1
Я думаю, что мой следующий вопрос здесь будет «что такое H-мост?» (Но я сначала попробую Google!)
Хроб

Ответы:

13

То, что вы спрашиваете, не будет очень легко со стандартным RC сервоприводом.

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

Что мешает вам вернуться за рулем? Две вещи:

Трение: во- первых, трение в цепи и двигателе. RC сервоприводы всегда ориентированы вниз; выход вращается медленнее, чем двигатель. Конечно, это означает, что когда вы пытаетесь включить задний ход, вам нужно очень быстро вращать мотор. Любое трение или зацепление в двигателе будут ощущаться в течение десятков раз на выходе.

backdrivability

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

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

Максона ESCON

«Правильные» сервоконтроллеры (такие как ESCON от Maxon) на самом деле содержат регулятор тока, который может активно предотвращать протекание тока, подавая правильное напряжение на клеммы двигателя. Замена электроники в сервоприводе чем-то способным контролировать ток может действительно помочь.

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

Rocketmagnet
источник
Ответ SimpleCoder тоже отлично.
Хроб
7

Интересный вопрос.

Первый вариант, который я рассмотрю, - это отключение питания, как вы предложили (возможно, управление MOSFET в программном обеспечении для переключения питания).

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

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

введите описание изображения здесь

Изображение из SparkFun

Крис Лапланте
источник
@Khrob: Пожалуйста, смотрите мои изменения
Крис Лапланте
Хорошо - я сейчас заказал кучу таких!
Хроб
@Khrob: Хорошо, дайте нам знать, как они работают! (И, пожалуйста, не вините меня, если это не сработает;))
Крис Лапланте
@Khrob: Кроме того, обратите внимание, что в зависимости от того, какие малые токи вы измеряете, вам может потребоваться более чувствительная плата: sparkfun.com/products/8883
Крис Лапланте,
1
Я начну дешево и продолжу свой путь!
Хроб
5

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

В большинстве случаев вы можете выполнить быстрый онлайн-поиск «Непрерывная модификация для сервомотора x», но я обрисую общий процесс здесь.

  • Определите, есть ли у сервопривода физическая остановка. Если это произойдет, вам придется открыть сервопривод и удалить его (я рекомендую инструмент Dremel).
  • Затем вы хотите найти «центр» механизма обратной связи.
    • Подключите сервопривод к вашему Arduino и отправьте команду «center» (обычно PWM 127).
    • Найдите механизм обратной связи (обычно это потенциометр) и подстраивайте его до тех пор, пока сервопривод вообще не будет двигаться.
    • Либо приклейте потенциометр на месте, либо измерьте сопротивление и замените потенциометр резистором с заданным значением.
  • Соберите сервопривод.

Теперь отправка «центральной» команды сервоприводу должна остановить его движение, в то время как отправка положительной или отрицательной команды должна приводить к ее постоянному вращению в одном или другом направлении. Скорость вращения должна быть пропорциональна «расстоянию» от центра отправляемой команды.

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

В качестве альтернативы вы можете взглянуть на сервоприводы серии Dynamixel , которые допускают как непрерывную, так и сервоуправляемую работу и включают некоторую поддержку Arduino.

mjcarroll
источник
Я в порядке с механическим ограничением движения, но это был бы хороший способ расширить его еще больше, чтобы иметь трещину на перевернутом маятнике! Я посмотрел на материал Dynamixel, и это очень круто, но больше, чем я надеюсь потратить на это.
Хроб
У меня сложилось впечатление, что ОП хотел начать что-то в движении, управляя сервоприводом, а затем позволить ему «двигаться» без питания, пока он не остановится естественным образом. Я не знаю ни одного сервопривода (непрерывного или нет), который бы позволил этому эффекту произойти.
Crake
@ Крейк, я согласен, я считаю, что я ответил на неправильный вопрос, но я оставлю это, так как я уже сделал работу: с. IIRC, сервоприводы Dynamixel должны иметь настройку «берег».
mjcarroll
@mjcarroll Да, я думаю, полезно упомянуть, как модифицировать сервопривод для непрерывного вращения, поскольку это обычная задача для дешевых проектов роботов. Мне любопытно, используют ли сервоприводы Dynamixel алгоритм измерения тока, описанный в ответе SimpleCoder, постоянно стремясь минимизировать ток путем регулировки ШИМ, или если у них есть физическая муфта для отключения серводвигателя от приводного вала.
Crake