Логотип sheen.bot

Идеи и опыт

Роботы, следующие по линии: физика и код

17 сент. 2025 г.·Sheen Robotics
Роботы, следующие по линии: физика и код

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

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

Как датчик считывает линию

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

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

Как превратить показание в решение

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

Этот этап калибровки не опционален. Проводите его на настоящей трассе, в настоящем помещении, каждый раз при переезде. Матовая чёрная изолента на светлом полу даёт чистый контраст; глянцевая лента или тёмная плитка — слабый. Десять минут калибровки экономят час мучительной отладки потом.

Два способа рулить: релейный и пропорциональный

Простейшее управление — релейное (bang-bang), его также называют «включено-выключено». Логика читается так: если левый датчик видит линию — поворачивай влево; если правый датчик видит линию — поворачивай вправо; иначе едь прямо. Это легко написать и легко понять, но руление получается резкими рывками. Робот виляет зигзагом даже по прямой и вынужден ползти, чтобы удержаться на поворотах, потому что он знает только «да» или «нет», но никогда — насколько сильно он сбился.

Пропорциональное управление исправляет это, используя аналоговые показания вместо ответа «да или нет». Вы вычисляете ошибку, например error = left - right, и делаете силу поворота пропорциональной ей: turn = Kp * error. Малая ошибка даёт мягкую коррекцию; большая — сильную. Единственное число Kp, пропорциональный коэффициент усиления, определяет, насколько резко реагирует робот. Это первое настоящее знакомство с теорией управления, и его достаточно, чтобы робот плавно скользил по трассе, по которой релейное управление громыхало бы. Добавление членов I и D для полноценного ПИД-контура — естественный следующий шаг, когда пропорциональное управление начнёт получаться уверенно.

Настройка — вот главный урок

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

  • Откалибруйте на настоящей трассе при настоящем освещении, прежде чем трогать что-либо ещё.
  • Задайте базовую скорость достаточно низкой, чтобы вы успевали следить за роботом и поймать его.
  • Начните с маленького Kp и повышайте его, пока робот не начнёт держать линию, а не уезжать в сторону.
  • Если начались колебания и его водит из стороны в сторону, немного снизьте Kp или уменьшите базовую скорость.
  • Проверяйте на самом крутом повороте трассы, а не на лёгкой прямой. Прямая вас обманывает.

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

Типичные отказы и как их отлаживать

Большинство проблем с роботом-следопытом сводится к нескольким шаблонам. Сопоставьте симптом с вероятной причиной, прежде чем переписывать код:

  • Робот полностью игнорирует линию: неверный порог, датчики закреплены слишком высоко или батарея разряжена настолько, что светодиоды светят слабее.
  • Резкий зигзаг: слишком велик Kp или базовая скорость. Уменьшайте по одному.
  • Улетает на крутых поворотах: слишком быстро едет либо два датчика стоят слишком близко друг к другу и не замечают поворот заранее.
  • Уводит в сторону на прямой: два мотора подобраны неидеально. Добавьте небольшую постоянную поправку на одну сторону.
  • Утром работает, после обеда нет: солнечный свет изменил показания. Откалибруйте заново под новое освещение.
  • Все датчики показывают почти одно и то же: проверьте проводку и номера выводов и убедитесь, что лента матовая, а не блестящая.

Как попробовать это в классе

Робот-следопыт — один из лучших первых проектов по робототехнике, потому что весь цикл «считать, решить, действовать» виден за один проезд по полу. Сборка ровера на плате sheenbot∞ даёт ученикам датчики отражения и управление моторами на одной плате, а готовые наборы можно взять в магазине. Если вы предпочитаете, чтобы этому научили, академия в Кейптауне проводит еженедельные занятия и каникулярные мастер-классы, где следование по линии — регулярная сборка.

Главное

Считывание отражения сообщает роботу, где линия, пороговая обработка превращает это в чёткое решение, а пропорциональное управление — решение в плавное руление. Код намеренно короткий. Настоящий навык — терпеливая настройка по одному изменению за раз, которая превращает виляющего робота в машину, держащую поворот, и этот навык переносится почти на любой другой проект. Другие разборы сборок ищите в ньюсруме sheen.bot.

Часто задаваемые вопросы

Сколько датчиков нужно роботу-следопыту?

Двух достаточно для руления, потому что для управления нужно знать лишь, ушла ли линия влево или вправо. Большее число датчиков — часто ставят пять — позволяет роботу точнее оценивать, насколько он сбился, и проходить более крутые повороты, отчего пропорциональное управление становится плавнее.

Почему мой робот едет по линии в одной комнате и не едет в другой?

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

Пропорциональное управление — это то же самое, что ПИД?

Пропорциональное — это «П» в ПИД и первый, самый важный член. ПИД добавляет интегральный член, чтобы убрать постоянный увод, и дифференциальный, чтобы гасить перерегулирование. Большинство подростковых проектов прекрасно работают на одном пропорциональном, а два других добавляются позже как улучшение.

#робототехника#следование по линии#датчики#программирование#проекты

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

Почему школьная метеостанция зависает на 99% влажности
Идеи и опыт· 22 сент. 2026 г.

Почему школьная метеостанция зависает на 99% влажности

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

Читать далее →
Как безопасно хранить аккумуляторы для робототехники во время длинных декабрьских каникул
Идеи и опыт· 21 сент. 2026 г.

Как безопасно хранить аккумуляторы для робототехники во время длинных декабрьских каникул

Оставив литиевые аккумуляторы полностью заряженными или разряженными в ноль в классе при температуре 40 °C на весь декабрь, вы рискуете испортить их или спровоцировать пожар. Вот точный протокол хранения для батарей LiPo, Li-ion и NiMH.

Читать далее →
Почему 12-вольтовый электромагнитный клапан не открывается при самотеке из бака JoJo
Идеи и опыт· 20 сент. 2026 г.

Почему 12-вольтовый электромагнитный клапан не открывается при самотеке из бака JoJo

Большинство недорогих 12-вольтовых соленоидных клапанов — непрямого действия: для открытия мембраны им требуется давление от 0,2 до 0,5 бар, которого безнапорные баки обеспечить не могут.

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