Як я можу змінити недорогий сервісний хобі, щоб він працював "вільно"?


15

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

Це навіть можливо, або я просто закінчу знімати передачі?

Перша моя думка - просто вбити силу сервоприводу, але сила, необхідна для переміщення їх у такому стані, більше, ніж я хотів би.

Якщо це можливо, я переглядаю зміну обладнання або можу це зробити в програмному забезпеченні?


3
Хобі-сервоприлади не дуже підходять для надійної робототехніки, а модифіковані сервісні хобі - ще гірші. Вам не сподобається те, що ви отримаєте, якщо це зробите. Купіть доступний двигун постійного струму і невеликий Н-міст, щоб загнати його, він буде набагато надійнішим, і ви будете набагато щасливішими. Ви можете побудувати H-міст з ланцюга L298 за дуже низькою ціною.
Джон Ватте

1
Я думаю, моє наступне запитання тут буде: "що таке міст-мост?" (Але спробую спочатку google!)
Хроб

Відповіді:


13

Те, що ви просите, не буде дуже простим із звичайним RC-сервоприводом.

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

Що заважає тобі назад керувати ними? Дві речі:

Тертя: По-перше, тертя в ланцюзі передач і моторі. RC-сервоприводи завжди спрямовані вниз; вихід крутиться повільніше, ніж мотор. Звичайно, це означає, що при спробі повернути його назад, ви повинні дуже швидко крутити мотор. Будь-яке тертя або зачеплення мотора буде відчуватися десятки разів на виході.

зворотність

Струм: щось дивовижне в електродвигунах полягає в тому, що якщо коротко затискати, їх стає важче повернути. Обертання двигуна генерує електричний струм, який працює проти вашого обертання. Електроніка всередині сервоприводу цілком може пропускати достатній струм, навіть коли він вимикається, що помітно запобігає зворотній провідності. У минулому я помічав, що деякі великі крокові двигуни, навіть коли вони не знаходяться, майже неможливо повернути привід при підключенні до обладнання без харчування. Але коли ви від'єднаєте їх від мережі, їх можна вільно крутити.

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

Максон ESCON

"Правильні" сервоконтролери (наприклад, ESCON від Maxon) фактично містять контролер струму, який може активно запобігати протіканню струму, застосовуючи правильну напругу на клеммах двигуна. Заміна електроніки в сервоприводі чимось здатним до поточного керування може справді допомогти.

Що вам слід зробити: відкрийте сервопривід, розпаяйте двигун і знову зіберіть його. Наскільки просто зараз керувати назад? Якщо це легко, то, можливо, можна робити те, що ви хочете. Якщо для вашої заявки все ще занадто важко, вам доведеться вибрати інший сервопривід або зробити свій власний. Зробіть один із ступінчастою передачею, щоб максимально зменшилося тертя передач, а для забезпечення нульового потоку струму використовуйте електроніку приводу з петлею управління струмом.


Відповідь SimpleCoder також чудова.
Хроб

7

Цікаве запитання.

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

Іншим складнішим підходом може бути моніторинг поточного споживання сервоприводу для виявлення, коли він знаходиться під великим навантаженням. Коли ви хочете перейти в режим «вільного запуску», спробуйте зробити програмне забезпечення безперервного переміщення сервоприводу в положення, що призводить до мінімального споживання струму. Це не повністю призведе до «вільного запуску» сервоприводу, оскільки будуть відбуватися певні хиткі рухи від сервоприводу, коли програмне забезпечення намагатиметься знайти «правильне» положення, але воно може спрацювати залежно від вашої програми.

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

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

Зображення від SparkFun


@Khrob: Будь ласка, дивіться мою
редакцію

Приємно - я зараз замовив купу таких!
Хроб

@Khrob: Приємно, повідомте нам, як вони працюють! (І, будь ласка, не звинувачуйте мене, якщо це не працює;))
Кріс Лаплант

@Khrob: Також зауважте, що залежно від того, як вимірюєте невеликі струми, вам може знадобитися більш чутлива плата: sparkfun.com/products/8883
Chris Laplante

1
Я почну дешево і попрацюю дорогою!
Хроб

5

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

Більшу частину часу ви можете здійснити швидкий пошук в Інтернеті за "Постійною модифікацією для x сервоприводу", але я наведу тут загальний процес.

  • Визначте, чи має сервопривод фізичну зупинку. Якщо це станеться, вам доведеться відкрити сервопривід і вийняти його (рекомендую інструмент Dremel).
  • Потім ви хочете знайти "центр" механізму зворотного зв'язку.
    • Підключіть сервопривід до свого Arduino і надішліть команду "центр" (зазвичай ШІМ 127).
    • Знайдіть механізм зворотного зв’язку (як правило, потенціометр) та обріжте його до тих пір, поки сервопривод зовсім не рухатиметься.
    • Або склейте потенціометр на місці, або виміряйте опір і замініть потенціометр на резистор заданої величини.
  • Зберіть знову сервопривід.

Тепер відправлення команди "центр" на сервопривід має зупинити його переміщення, тоді як надіслання позитивної чи негативної команди повинно спричиняти постійне обертання в ту чи іншу сторону. Швидкість обертання повинна бути пропорційною "відстані" від центру надісланої команди.

Якщо ви хочете відновити операцію сервоприводу на ваш щойно змінений сервопривід, ви можете додати якийсь кодер, щоб повторно закрити цикл.

Крім того, ви можете подивитися на сервопривод Dynamixel серії , який дозволяє здійснювати як безперервну, так і сервоприводну роботу, і включає деяку підтримку Arduino.


Я добре з тим, що існує механічна межа руху, але це був би хороший спосіб розширити його ще більше, щоб з’явилася тріщина при перевернутій маятниковій настройці! Я переглянув матеріали Dynamixel, і це дуже круто, але більше $$, ніж я сподіваюся витратити на це.
Хроб

Моє враження полягало в тому, що ОП хотів щось запустити в русі, керуючи сервоприводом, а потім пустив його на «узбережжя» без живлення, поки він, природно, не зупиниться від інерції. Я не знаю жодної конструкції сервоприводу (безперервної чи ні), яка дозволила б досягти цього ефекту.
Crake

@Crake, я погоджуюсь, я вважаю, що я відповів неправильно, але я покину це, оскільки я вже виконав роботу: с. IIRC, сервоприводи Dynamixel повинні мати налаштування "узбережжя".
mjcarroll

@mjcarroll Так, я думаю, що корисно згадати, як змінити сервопривід для безперервного обертання, оскільки це звичайне завдання для дешевих проектів роботів. Мені цікаво, якщо сервоприводи Dynamixel використовують поточний алгоритм вимірювання, описаний у відповіді SimpleCoder, постійно прагнучи мінімізувати струм, регулюючи ШІМ, або якщо у них є фізична муфта, щоб відключити серводвигун від валу приводу.
Крейк

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.