Friday, January 27, 2012

Переделка сервопривода

Принтеры и шаговые двигатели - это конечно здорово, но пора снова вернуться к роботам, а точнее к их составным частям. В этот раз я бы хотел поговорить о том, как я собираюсь приводить в движение колеса будущего робота.
Надо признать, идея сделать робота захватила меня давно, но я не вел никаких заметок. Тогда я нашел себе единомышленника в лице коллеги по "цеху" (идея возникла у нас вдвоем, не хочется присваивать её себе одному). Так вот, собственно мы даже собрали робота! Он должен был ехать на свет и умещался в корпусе от компьютерной мыши. Но, он так и не поехал. Причина была в том, что мы на ось моторов одели колеса, и у маленьких моторчиков из детской игрушки попросту не хватило крутящего момента, чтобы сдвинуть колесо. Робот стоял на месте и только оторвавшись от земли он начинал вращать колесами.
Я вынес урок из этой истории, и теперь подход к проектированию у меня более основательный. Хотя, если быть честным - не было бы того самого робота - очень маловероятно, что я сейчас этим занимался. Это был мой "первый блин".
Так вот, чтобы сдвинуть робота с места моторчику нужен редуктор. Я уже писал про редукторы в посте о сервоприводах. Собственно сервопривод я и собираюсь переделывать.
Почему нельзя просто приделать колесо к сервоприводу? Дело в том, что сервопривод из-за особенности конструкции имеет ограничения по углу на который он может поворачиваться (чаще всего это 180°). Он не может вращаться постоянно, что в случае с колесом просто необходимо.
Вот тут то мы и приступим к переделке нашего сервопривода, чтобы дать ему такую возможность.

Немного теории

Существуют два варианта переделки сервопривода.
В-первом случае "мозги" сервы остаются при ней, просто при помощи несложного трюка сервопривод начинает "думать", что он постоянно находится в положении 90° (можно сделать и другое положение, но 90° - это уже своего рода классика). Чтобы заставить колесо крутиться в одну или другую сторону достаточно подать сигнал и тем самым поменять угол на любой другой. В зависимости от нового значения угла сервопривод будет крутиться пытаясь достичь нового значение, а из-за предпринятого хака "понять", что он уже прибыл на место так и не сможет. В итоге будет крутиться, пока мы не установим значение угла в исходное положение. Этот способ многим хорош и лучше использовать его, если есть такая возможность. Чуть далее я напишу почему этот способ мне не подошел.
Во-втором случае все несколько проще. Идея в том, чтобы убрать все микросхемы из сервопривода и превратить его тем самым в самый обычный моторчик, только уже в корпусе и с готовым редуктором. Как правильно отметил Стас Савченко в комментарии, этот способ обладает существенным недостатком, так как после такой переделки сервопривод невозможно будет подключить напрямую к контроллеру из-за слишком большого потребляемого тока (который на моем сервоприводе составляет порядка 200мА при 5В, что явно превышает максимальное значение тока на выходе микроконтроллера в 20мА). Но, есть и плюс – зато мы сможем управлять скоростью двигателя с помощью ШИМ.

Внимание #1!
Необходимо понимать и помнить, что мы будем вносить изменения в конструкцию самого сервопривода и вернуть его в то состояние с которого мы начинали будет невозможным. Изменения необратимы, так сказать.
Внимание #2!
Я выбрал второй вариант переделки. Это связано прежде всего с тем, что такие маленькие сервы просто не могут уместить в себе нужных резисторов которые нужны. Более того - резисторов нужного номинала у меня попросту не оказалось.

Приступим
Чтобы разобрать наш сервопривод нам понадобиться отвертка. Т.к. я разбираю очень маленький сервопривод, то и отвертка нужна соответствующая. Лично я использую отвертки из какого-то дешевого китайского набора. Купил я его в киоске в подземном переходе по цене около 5$, так что не сильно затратно.
 Чтобы вскрыть сервопривод надо открутить всего четыре винтика. Находятся они на нижней крышке. Откручиваем:
Сняв крышку можно рассмотреть блок управления. Вдаваться в подробности я не буду, все равно я собираюсь его удалить отсюда. Так же виден моторчик к которому ведут два провода.
Сверху так же находится крышка, сняв которую можно рассмотреть шестеренки редуктора. Стоит обратить внимание, что две из них закреплены на потенциометре - это достаточно важно, так как чтобы редуктор продолжил выполнять свою функцию нам придется фактически сломать потенциометр - будем использовать его просто как ось для шестеренок.
Собственно, необходимо снять все шестеренки с сервопривода и на время отложить их в сторонку. Достаем потенциометр (кстати, он же переменный резистор) из корпуса аккуратно подтолкнув его с нижней стороны сервопривода отверткой.
Вот собственно и настал момент точки не возврата. Конечно всегда можно будет все спаять обратно, но это уже сложнее. Итак - откусывает потенциометр.
Затем таким же методом разделяем плату управления с проводами питания и сигналов.

После чего откусываем провода от моторчика. Тут будьте внимательны и не откусите контакты от самого моторчика - если не уверены - лучше оставьте провод с запасом. Потом его можно будет выпаять. Я же откусываю провод до самого контакта.
Проведем инвентаризацию.
Вроде бы все на месте. Теперь берем в руки наш потенциометр.
Дело в том, что он сейчас вращается тоже только на определенный угол. А так как он является осью и на нем крепиться самая большая шестеренка на которую собственно мы и будем крепить колесо в последствии - надо сделать так, чтобы он вращался постоянно. Вынимаем две металлические пластинки которые препятствуют этому. Получаем:
Надеюсь на фотографии понятно, что я сделал. Выдирал маленькими плоскогубцами, так как ничего более подходящего под рукой не было.
Теперь надо срезать ограничитель на самое шестеренке. Выглядит он как выступ с нижней части шестеренки. Найти его легко, выглядит он следующим образом.
Режем.
И собственно после этого можно приступать к сборке редуктора обратно в корпус. Вставляем обратно ось сделанную ранее нами из потенциометра.
Далее, одну за одной шестеренки начиная с самой маленькой. Будьте внимательны вставляя последнюю шестеренку - она по особенному крепиться на ось бывшего потенциометра, так как наконечник оси выполнен в форме буквы D. Надо, чтобы этот выступ попал в углубление в шестеренке. Получается что-то, похожее на следующую картинку.
Одеваем верхнюю крышку на редуктор, чтобы он не развалился в ходе дальнейшей работы.
Ну что, осталось не так и много. Берем провод с коннектором который мы ранее откусили от платы и разделяем в нем проводки. Не стоит разделять из на большое расстояние, по факту одного сантиметра вполне достаточно.
Зачищаем два из них (по сути любых, но я использовал красный и зеленый). Достаточно срезать около 3мм изоляции. Для наших целей - более чем.
Оставшийся не зачищенный провод просто загибаем чтобы он нам не мешался.
Переходим к горяченькому. Самое время нагревать паяльник. За то время, что паяльник греется я устроил поудобнее сервопривод в захвате.
Первым делом надо будем убрать остатки старого припоя которые остались на контактах двигателя. Я это делаю с помощью оловоотсоса, предварительно разогрев контакт паяльником до такого состояния, чтобы припой расплавился. Главное тут не перестараться - задняя крышка моторчика все же пластмассовая и долго греться не любит. Процесс выглядит примерно так:
Я понимаю, что возможно и не сильно заметно что я сделал, но припоя на контактах не осталось практически, чего я и добивался.
Замечательные статьи по пайке есть в DI HALT'а. Он вообще гений, как мне кажется. Ссылка на его блог, там кроме пайки очень много всего на самом деле, просто поищите поиском.
Если коротко, то для того, чтобы сделать хорошую пайку - надо всегда избавиться в начале от старого припоя.
Осталось припаять два провода. Кто знаком с пайкой - справиться за 5 секунда. Кто как я во-второй раз в жизни нормально взялся за паяльник понадобиться чуть больше времени, но все равно - это очень просто, такое сделать может каждый.
Во время пайки я использую флюс который, надо признать, делает работу легче в разы и качество пайки с ним обеспечить намного проще. Лично мне по совету, опять же, DI HALT'а на его блоге уже успел полюбиться ЛТИ-120. У меня он во в такой модной баночке сразу с кисточкой.
Обильно промазываем контакты и провода которые собираемся паять этим самым флюсом - жалеть его не надо.
И пока флюс не высох припаиваем в начале один провод.
И снова флюс и паяем.

Осталось отмыть флюс, хотя у меня и не военное дело, но протереть тряпочкой смоченной каким ацетоном контакты все же рекомендую.
Вот собственно и финиш паяльных операций. Сворачиваем паяльник обратно в коробку, а сервопривод закрываем задней крышкой.
Закручиваем четыре винта.
Вот собственно и все, переделка сервы закончилась. Перезакрепив сервопривод поудобнее и попрочнее в захвате можно приступить и к испытаниям.
В этот раз я не буду изощряться с контроллером, а просто подам напряжение с блока питания в 5V на зеленый и красный провода. Внимание, на видео достаточно громкий звук от работы привода.
Как видно, теперь нашему сервоприводу ничего не мешает вращаться без остановки. Звук издаваемый приводом на самом деле не тихий, но в принципе - это терпимо. Вот пожалуй и все на сегодня.