Указатель направления ветра на моём балконе жил полтора месяца, а потом углы поплыли: при команде 20° стрелка вставала на 28, при 160° — на 151, и каждый день всё хуже. Я два вечера лечил это в коде — добавлял поправки, тасовал константы, грешил на потенциометр в серво. На третий вечер я наконец выкрутил качалку из рычага и увидел, что центральный винт, которым она крепится к валу, выкрутился и потерялся: качалка гуляла по шлицам вала на восемь-десять градусов, и вся эта свобода выдавала себя за ошибку программы. Поправки я стирал тем же вечером — с чувством человека, неделю чинившего отвёрткой телевизор, который не был включён в розетку.
Механику крепежа в уроках обычно пропускают — а зря: половина «глюков серво», которые мне приносили друзья, жила не в коде, а в качалке, винте или плеч рычага. Здесь разберём, что держит рычаг на валу и почему он разбалтывается, посчитаем момент на разных плечах, пройдём мои правила сборки — выведенные на сломанных качалках, — и соберём таблицу симптомов, по которой поломку крепежа отличают от поломки кода за минуту.
Что держит рычаг на валу
Вал SG90 — шлицевой: вдоль вала нарезаны мелкие рёбра, у классических крупных серво их 25, у мелких SG90 профиль свой, более частый. В комплекте с серво лежат качалки — белые пластиковые лучи разной формы: крестовая, прямая, круглая с отверстиями по кругу. Каждая садится на шлицы с лёгким натягом — и вот тут главная ловушка: натяг — это не крепёж. Без центрального самореза, который проходит сквозь качалку в вал, любой рычаг гуляет: вибрация от каждого переезда угла с плохо затянутым винтом понемногу вылизывает посадку, люфт растёт, и через месяц-полтора угол плавает, как у моего указателя.
Мой порядок сборки, отработанный на десятке узлов: сначала приказываю серво 90° и сажаю качалку так, чтобы она смотрела перпендикулярно корпусу — иначе середина хода уедет вбок, и мы уже разбирали, как это выглядит как «ошибка кода», в уроке про первое подключение. Затем центральный винт крестовой отвёрткой №0 — до упора, но без героизма. И только потом прикручиваю сам рычаг к качалке: рычаг и качалка — разные детали, рычаг можно переставлять, не трогая посадку на валу. Отдельная благодарность комплектной круговой качалке: отверстия по кругу позволяют менять длину плеча без ножовки.
Для узлов, которые пересобираешь часто, есть апгрейд: качалки с алюминиевой ступицей и переходники с 25-зубьевного вала на крупную серво. Граница у апгрейда простая: металл на валу спасает посадку, но не шестерни внутри SG90 — если узел бьётся в упоры, перекал сработает внутри корпуса, и никакая алюминиевая ступица этого не отменит. Плюс у тяжёлых качалок выше собственная инерция: серво с лёгкой пластиковой качалкой останавливается резче и меньше греется на частых переездах. Поэтому для SG90 я оставляю комплектный пластик, а металл беру, когда узел переезжает редко, но несёт груз — шлагбаум, клапан, редукторный рычаг.
Плечо и момент: почему рычаг длиннее — не значит лучше
Момент — это сила на плечо. Даташит SG90 честно пишет 1,8 кг·см: значит, на плече один сантиметр она потянет 1,8 килограмма, на плече 5 см — всего 360 граммов, на плече 8 см — 225 граммов. Условия у этих цифр жёсткие: вал по касательной, без ускорения, без рывков и при свежем питании. Для подъёма чего-либо с ускорением или против трения я делю даташитную цифру на два-три — иначе серво будет работать на границе, гудеть и греться, механику чего мы считали в уроке про ток удержания. Отсюда правило, которое я больше не обсуждаю сам с собой: нагрузка живёт ближе к валу. Рычаг длиннее 5 см у SG90 — только для стрелок и флажков, где тянет воздух, а не груз.
Когда момента не хватает, рынок подскажет MG996R с его 9–11 кг·см — но у него и ток в разы больше, отдельные проводки и свой разъём, вся арифметика в уроке про MG995 и MG996R. Часто дешевле пересобрать механику: перенести ось нагрузки ближе к валу, выпустить противовес или поставить блок, чем тащить в проект более толстую серво с её аппетитами.
Правила, которые я вывел из сломанных качалок
Первое правило — про саморезы в пластиковые ушки качалки: 2–3 оборота после упора, и хватит. Я как-то затянул «от души» — ушко лопнуло, а запасных прямых качалок в наборе оказалось две, обе уже при деле. Пластик в тонких местах трещит молча и до последнего держит видимость благополучия. Второе правило — никаких эпоксидки и термоклея на валу: эпоксидка делает узел неремонтопригодным, а термоклей плывёт — корпус серво в режиме удержания разогревается до 50–60 °C, и клей, у которого температура размягчения того же порядка, сползает вместе с качалкой. Проверено на катушке с нитками, которая уехала сама.
Третье правило — про крайние положения: рабочие углы всегда с отступом 15–20° от упоров, вбитым в код. Про тяжесть ударов в упор каждые 20 мс мы говорили в уроке про серво-переключатель, здесь добавлю механику: удар в упор — это не только ток, но и импульс на шестерни, и самый частый итог — облизанные зубья среднего звена редуктора. Проверка затяжки после сборки простая: качалка не должна проворачиваться пальцем с заметным усилием — если проворачивается, винт недотянут, и через месяц вибраций он выйдет совсем, как у моего указателя. Раз в месяц я прохожу винты узлов с интенсивным ходом: минута профилактики стоит дешевле полдня на переделку. Четвёртое — провод: серво в движущемся узле получайте петлёй от корпуса, иначе каждый ход рычага тянет кабель, и рано или поздно пайка на разъёме устаёт. И пятое: серво крепится к кронштейну за оба ушка саморезами через штатные отверстия — на одном винте корпус сам проворачивается от реакции, и люфт крепления снова выглядит как плавающий угол. В макетной плате серво не держится вообще: рывок — и она выпрыгивает с ножками, поэтому макетка годится для проводов и логики, а механику собирают на кронштейне; основы работы с макеткой — в уроке про breadboard.
Ходовик: проверяем границы на живой плате
После сборки узла я гоняю ходовик — скетч, который проходит маршрут с отступами, а потом нарочно пробует края, чтобы услышать, где упор. Время приезда тоже видно: даташит обещает 0,1 с на 60° без нагрузки, значит, переход на 140 градусов занимает около 300 мс; с плечом и грузом — вдвое дольше, поэтому паузы в ходовике щедрые, 400 мс. У ms= есть и вторая работа — диагностика трения: если на живой плате одинаковые переходы занимают всё больше времени, где-то в узле появился перекос оси или задиры, и механика просит смазки раньше, чем серво начнёт гудеть. Ритм ходовика я брал из урока про sweep туда-обратно, но добавил пробу упоров — она и есть самый честный тест сборки: если серво бьётся о край раньше записанных границ, механика перекручена и её надо пересаживать, а не править константы.
#include <Servo.h> Servo sv;int marshrut[] = {20, 160, 90, 160};int i = 0;unsigned long tHod = 0; void setup() { sv.attach(11); Serial.begin(9600); Serial.println("Hodovik: marshrut s otstupom 20-160");} void loop() { int cel = marshrut[i]; tHod = millis(); sv.write(cel); Serial.print("deg="); Serial.println(cel); delay(400); // время приезда с запасом Serial.print("ms="); Serial.println(millis() - tHod); i++; if (i > 3) { i = 0; Serial.println("probuyu kraya - tak ulyblivayutsya shesterni"); sv.write(0); delay(500); Serial.println("u=0"); sv.write(180); delay(500); Serial.println("u=180"); }}| Симптом | Причина | Что делаю я |
|---|---|---|
| Качалка люфтит, угол плавает на 5–10° | не затянут или потерялся центральный винт | крестовая №0, винт на место — и пересчитать поправки не придётся |
| Серво гудит и не едет | рычаг упёрся или плечо слишком длинное для груза | отступ от упора, нагрузка ближе к валу |
| Шестерни облизаны, вал крутится впустую | месяцы ударов в упор каждые 20 мс | замена шестерён или серво, вилка с отступом в коде |
| Ушко качалки треснуло | перетянутый саморез | новая качалка, 2–3 оборота после упора |
| Плата перезагружается при движении | пиковый ток серво роняет общее питание | отдельный источник 5–6 В и общий минус |
- 1. Рычаг люфтит на валу, углы плавают на 8–10°. Что проверяю первым?
- 2. Усилие 1,8 кг·см: сколько поднимет по прямой рычаг длиной 5 см?
- 3. Как я сажаю качалку, чтобы узел не разболтался?
- 4. Саморез в ушко качалки закручиваю…
- 5. Крайнее положение рычага бьётся об упор каждые 20 мс. Что делаю?
- Натяг на шлицах — не крепёж: центральный винт обязателен, иначе люфт выдает себя за ошибку кода
- 1,8 кг·см — это 360 г на плече 5 см: нагрузка живёт ближе к валу
- Саморез в ушко — 2–3 оборота после упора; эпоксидка и термоклей на валу не живут
- Отступ 15–20° от упоров бережёт и ток, и шестерни
- Механику проверяю руками при снятом питании: контур серво не должен бороться с вами
Частые вопросы по теме урока
- Рычаг люфтит на валу, углы плавают на 8–10°. Что проверяю первым?
- Натяг на шлицах — не крепёж. Выкрученный центральный саморез даёт люфт ровно такой величины и делает вид, что виноват код. центральный винт качалки
- Усилие 1,8 кг·см: сколько поднимет по прямой рычаг длиной 5 см?
- Момент делим на плечо: 1,8 кг·см / 5 см = 360 г, и то без запаса. Для реального подъёма я делю ещё на два-три. 360 г
- Как я сажаю качалку, чтобы узел не разболтался?
- Качалка на 90°, центральный винт, и только потом рычаг. Эпоксидка и термоклей на валу не живут — первый навсегда, второй плывёт от нагретого корпуса. приказав 90°, затем затянув центральный винт
- Саморез в ушко качалки закручиваю…
- Пластик ушка тонкий: перетяг лопает его молча. А натяг без винта разбалтывается за месяц вибраций. 2–3 оборота после упора, без фанатизма
- Крайнее положение рычага бьётся об упор каждые 20 мс. Что делаю?
- Удары в упор — это 650–700 мА и облизанные шестерни. Отступ в рабочих углах убирает проблему целиком. задаю отступ 15–20° от упора в коде