У меня есть несколько хобби-сервоприводов ( Power HD 1501MG ), и я хотел бы иметь возможность управлять ими (через Arduino), чтобы они либо поворачивались под заданным мной углом, либо переводили их в режим «свободного хода», куда груз возьмет их куда угодно.
Это вообще возможно, или я просто собираюсь в итоге зачистить шестерни?
Моя первая мысль - просто убить питание сервопривода, но сила, необходимая для перемещения их в этом состоянии, больше, чем мне бы хотелось.
Если это возможно, я смотрю на аппаратные изменения или я могу сделать это программно?
Ответы:
То, что вы спрашиваете, не будет очень легко со стандартным RC сервоприводом.
То, что вы просите, это сервопривод с обратным приводом. То есть тот, который вы можете свободно вращать, применяя внешний крутящий момент. Конечно, их можно создать, и они используются на многих роботах, но большинству RC-сервоприводов требуется значительный крутящий момент для их обратного хода. Я бы назвал их полуобработанными.
Что мешает вам вернуться за рулем? Две вещи:
Трение: во- первых, трение в цепи и двигателе. RC сервоприводы всегда ориентированы вниз; выход вращается медленнее, чем двигатель. Конечно, это означает, что когда вы пытаетесь включить задний ход, вам нужно очень быстро вращать мотор. Любое трение или зацепление в двигателе будут ощущаться в течение десятков раз на выходе.
Ток: что-то удивительное в электродвигателях заключается в том, что если вы закоротите клеммы, их станет сложнее повернуть. Вращение двигателя генерирует электрический ток, который работает против вашего вращения. Электроника внутри сервопривода вполне может пропускать достаточное количество тока, даже когда оно выключено, что заметно препятствует обратному перемещению. В прошлом я заметил, что некоторые большие шаговые двигатели, даже если они выключены, почти невозможно включить задний ход, когда они подключены к отключенному оборудованию. Но когда вы отключите их, они могут вращаться свободно.
Таким образом, одним из способов улучшения обратного хода является предотвращение протекания тока. Очевидный способ сделать это - полностью отключить двигатель от его электроники. Но это трудно сделать, даже используя полевые транзисторы, потому что диоды внутри полевых транзисторов вполне могут пропускать ток. Тем не менее, вы можете использовать реле, которое действительно отключит двигатель. Вы должны будете использовать его только на одной из клемм двигателя.
«Правильные» сервоконтроллеры (такие как ESCON от Maxon) на самом деле содержат регулятор тока, который может активно предотвращать протекание тока, подавая правильное напряжение на клеммы двигателя. Замена электроники в сервоприводе чем-то способным контролировать ток может действительно помочь.
Что вы должны сделать: откройте сервопривод, отсоедините двигатель и соберите его. Насколько легко вернуться назад? Если это легко, тогда возможно будет делать то, что вы хотите. Если это все еще слишком сложно для вашего приложения, то вам придется выбрать другой сервопривод или сделать свой собственный. Сделайте одну ступень с одной передачей, чтобы максимально уменьшить трение, и используйте приводную электронику с контуром управления током, чтобы гарантировать нулевой ток.
источник
Интересный вопрос.
Первый вариант, который я рассмотрю, - это отключение питания, как вы предложили (возможно, управление MOSFET в программном обеспечении для переключения питания).
Другим более сложным подходом может быть контроль потребления тока сервопривода, чтобы определить, когда он находится под большой нагрузкой. Если вы хотите перейти в режим «свободного хода», попросите ваше программное обеспечение постоянно перемещать сервопривод в положение, которое приводит к наименьшему потреблению тока. Это не будет полностью приводить к «автономному» сервоприводу, так как от сервопривода будут некоторые колебания, когда программное обеспечение пытается найти «правильную» позицию, но это может работать в зависимости от вашего приложения.
Вам не нужно будет модифицировать ваши сервоприводы для мониторинга текущего потребления. Плата, подобная этой от SparkFun, будет находиться между сервоприводом и его источником питания (вам нужна одна из них на сервопривод) и будет выдавать аналоговое напряжение (которое вы можете прочитать на выводе АЦП микроконтроллера), соответствующее току:
Изображение из SparkFun
источник
Обычно эти типы сервоприводов для хобби не предназначены для непрерывного вращения и часто включают механический упор. Осторожно, то, что я обрисовал в общих чертах ниже, является верным способом никогда не получить фактическую работу с обратной связью, но вместо этого сделает сервопривод только непрерывным.
В большинстве случаев вы можете выполнить быстрый онлайн-поиск «Непрерывная модификация для сервомотора x», но я обрисую общий процесс здесь.
Теперь отправка «центральной» команды сервоприводу должна остановить его движение, в то время как отправка положительной или отрицательной команды должна приводить к ее постоянному вращению в одном или другом направлении. Скорость вращения должна быть пропорциональна «расстоянию» от центра отправляемой команды.
Если вы хотите восстановить работу сервомотора в вашем недавно модифицированном сервоприводе, вы можете добавить какой-нибудь кодер для повторного закрытия цикла.
В качестве альтернативы вы можете взглянуть на сервоприводы серии Dynamixel , которые допускают как непрерывную, так и сервоуправляемую работу и включают некоторую поддержку Arduino.
источник
Не надо, вместо этого возьмите себе несколько приличных моторов и ведите их через мост, как вы найдете на этом моторном щите .
источник