Логотип sheen.bot

Идеи и опыт

Почему ваш двухколёсный робот не едет прямо

20 авг. 2026 г.·Sheen Robotics
Почему ваш двухколёсный робот не едет прямо

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

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

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

Анатомия разброса двигателей

Небольшие мотор-редукторы постоянного тока — особенно распространённые в учебных наборах любительские двигатели в жёлтом корпусе — изготавливаются с широкими производственными допусками. Несколько микроскопических различий гарантируют, что двигатель A поведёт себя иначе, чем двигатель B:

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

Проблему усугубляют и механические факторы за пределами самого двигателя. Если одна резиновая шина посажена на обод на 0,5 мм глубже, её эффективный радиус качения меняется. Если аккумуляторный блок робота смещён на 10 мм влево от осевой линии, на левое колесо приходится большая нормальная сила и большее сопротивление качению. В итоге приводная база оказывается несимметричной.

Почему жёстко прописанные «поправки» всегда подводят

Первое, что приходит ученику в голову, — вручную уравнять двигатели в коде:

// The standard beginner workaround
motorLeft.setSpeed(255);
motorRight.setSpeed(238); // trim down the faster motor

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

  • Кривые разряда батареи: когда за 45-минутный урок напряжение падает, двигатели постоянного тока теряют скорость нелинейно. Поправка, откалиброванная при 8,2 В, начнёт уводить в сторону, как только батарея просядет до 7,4 В.
  • Изменение трения поверхности: переезд с гладкой плитки кабинета на офисный ковролин с коротким ворсом меняет сопротивление качению неодинаково для обеих шин.
  • Тепловые изменения: по мере нагрева редукторов и обмоток при непрерывной работе внутреннее трение падает, и соотношение скоростей двух сторон смещается.

Решение: замкнутая обратная связь с энкодерами

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

Проще всего добиться этого с помощью поворотных энкодеров на колёсах. Энкодер состоит из датчика (обычно оптического прерывателя или магнитного датчика Холла) и вращающегося элемента на валу двигателя или на колесе (щелевого диска или многополюсного магнитного кольца). Каждый раз, когда колесо поворачивается, датчик выдаёт импульсы.

Подход к управлениюМеханизмПоведение при севшей батарееПоведение на новой поверхности
Разомкнутое (фиксированный ШИМ)Считает двигатели одинаковымиУводит непредсказуемоУводит непредсказуемо
Разомкнутое (жёсткая поправка)Вручную смещает один двигательТеряет калибровкуТеряет калибровку
Замкнутое (обратная связь по энкодерам)Динамически подстраивает мощность по измеренным тикам колёсДержит прямой курсДержит прямой курс

Как реализовать пропорциональное управление скоростью

Чтобы сделать работающий замкнутый регулятор, продвинутый курс матанализа не нужен. Для школьной робототехники достаточно простого пропорционального (П) контура, выполняющегося каждые 50–100 миллисекунд.

Вместо того чтобы задавать мощность двигателей напрямую, программа измеряет обороты колёс за фиксированный интервал времени и подстраивает мощность так, чтобы убрать разницу:

  1. Считайте импульсы энкодеров на обоих колёсах за фиксированное окно (например, каждые 50 мс).
  2. Вычислите ошибку: error = leftTicks - rightTicks.
  3. Если error > 0, левое колесо вращается быстрее правого. Немного уменьшите ШИМ левого двигателя, немного увеличьте ШИМ правого — или примените поправку, пропорциональную величине ошибки: correction = error * Kp (где Kp — подобранный коэффициент усиления).
  4. Обнулите счётчики тиков и повторите.

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

Главный вывод

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

#робототехника#двигатели#пид-регулирование#STEM-образование#электроника

Больше в категории «Идеи и опыт»

Почему вода в нашей школьной гидропонике позеленела от водорослей?
Идеи и опыт· 30 авг. 2026 г.

Почему вода в нашей школьной гидропонике позеленела от водорослей?

Вспышки водорослей случаются, когда свет попадает в богатую питательными веществами воду. Разбираем, почему подводят белый ПВХ и полупрозрачные ёмкости, и как справиться со вспышкой без токсичной химии.

Читать далее →
Почему добавление второго датчика подвешивает ваш micro:bit или Arduino
Идеи и опыт· 29 авг. 2026 г.

Почему добавление второго датчика подвешивает ваш micro:bit или Arduino

Когда лишний датчик останавливает весь проект на micro:bit или Arduino, виновата почти наверняка блокировка шины I2C: совпадение адресов, проблемы с подтягивающими резисторами или конфликт напряжений.

Читать далее →
Почему дешёвые датчики влажности почвы корродируют и что школам стоит использовать вместо них
Идеи и опыт· 28 авг. 2026 г.

Почему дешёвые датчики влажности почвы корродируют и что школам стоит использовать вместо них

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

Читать далее →