Как робот едет точно по линии с помощью датчика линии?
Классическое задание — робот едет по чёрной линии на белом поле и не съезжает. Какой датчик это видит и как написать логику, чтобы он держался линии и не вилял?
2 ответа
«Езда по линии» — классика робототехники, и в основе лежат ИК-датчики линии.
Как датчик видит линию: ИК-светодиод светит на пол, а фотоприёмник ловит отражение. Белое отражает сильно, чёрное — слабо. Так датчик отличает «я над белым полем» от «я над чёрной линией».
Простой вариант — два датчика (слева и справа от линии). Логика:
оба на белом → линия по центру → ехать прямо
левый на чёрном → съезжаем вправо → доворот влево
правый на чёрном → съезжаем влево → доворот вправо
Работает, но робот при этом дёргается («рыскает») — это релейное управление.
Плавный вариант — линейка из 5-8 датчиков + ПИД-регулятор. Датчики дают «позицию линии под роботом» как число (ошибку отклонения от центра). ПИД из ошибки считает, насколько подвернуть, и плавно держит робота на линии без виляния. Именно так ездят роботы на соревнованиях по линии — быстро и ровно.
Частые ошибки:
- датчики высоко над полом → плохо различают цвет (держи 3-8 мм);
- внешний свет/блики мешают → калибруй пороги под конкретную трассу;
- на двух датчиках хотят высокой скорости → без ПИД на скорости робот слетает с линии.
Стартуй с двух датчиков, потом переходи на линейку с ПИД.
Суть: датчик линии — это «глаз», который отличает чёрное от белого по силе отражённого ИК-света. Дальше два пути. Простой — пара датчиков и правило «вижу чёрное слева — рули налево». Серьёзный — линейка датчиков + ПИД, который превращает «насколько съехал» в плавный доворот. Первый делается за вечер и дёргается; второй едет ровно и быстро, но требует настройки коэффициентов.