Датчики линии

Датчик линии смотрит на отражение света от поверхности под роботом. Белое поле обычно отражает больше инфракрасного света, чёрная линия — меньше. Но качество движения зависит не только от датчика, а от высоты, ширины линии, освещения, калибровки и алгоритма.
Один отражательный канал сообщает только локальный контраст под собой. Массив каналов позволяет оценить положение линии относительно центра робота. Пороговый сигнал проще, аналоговый даёт больше информации, но требует АЦП и калибровки.
Зачем это нужно
Линейный робот должен не просто заметить чёрную полосу, а постоянно понимать, где она находится: левее центра, по центру или правее. Если использовать один TCRT5000, робот видит только состояние в одной точке. Если поставить QTR-8A или 5-канальный модуль, появляется геометрия линии.
Примеры датчиков

| Датчик | Каналы | Выход | Что сравнить |
|---|---|---|---|
| TCRT5000-модуль | 1 | аналоговый A0 и пороговый DO | простота против чувствительности к высоте |
| QRE1113 | 1 | аналоговый | малый размер, удобно ставить массив вручную |
| Pololu QTR-8A | 8 | 8 аналоговых выходов | можно вычислять положение линии |
| 5-channel tracker | 5 | обычно цифровые выходы | проще читать, но меньше информации о полутонах |
Главный вопрос: нужно ли роботу знать только «линия под датчиком» или положение линии относительно центра? От ответа зависит выбор одного канала, массива, аналогового или цифрового выхода.
Главная идея
В отражательном датчике рядом стоят инфракрасный светодиод и фототранзистор. Свет падает на поверхность, отражается и возвращается к приёмнику. Чем сильнее отражение, тем больше сигнал.

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

Показание зависит не только от цвета линии.
| Фактор | Что меняется |
|---|---|
| Высота датчика | слишком далеко — отражение слабое; слишком близко — геометрия нарушается |
| Ширина линии | узкая линия может попасть между каналами |
| Поверхность | матовая, глянцевая и пыльная поверхность отражают по-разному |
| Внешний свет | солнце и лампы добавляют фон |
| Скорость робота | при редком опросе робот пролетает важные участки |
Поэтому перед ездой нужно снять карту сырых значений на своей трассе: белое поле, чёрная линия, край линии и участок с бликами.
Один канал или массив
| Вариант | Схема | Что знает робот | Когда подходит |
|---|---|---|---|
| Один канал | ![]() | только светло/темно под одной точкой | простая проверка края или медленный робот |
| Массив каналов | ![]() | где линия относительно центра | движение по трассе и плавное управление |
Один канал можно использовать как левый и правый «глаз», но между ними остаётся слепая зона. Массив уменьшает эту проблему: соседние каналы показывают, как линия входит под робота и куда смещается.
Порог: простой вариант

Порог выбирают между значениями белого поля и чёрной линии. Если белое даёт около 850, а чёрное около 220, порог можно начать с середины. Но если трасса меняется, один порог может перестать работать. Лучше хранить калибровочные значения и проверять запас между классами.
Положение линии по весам

Для массива каждому каналу задают вес: левым отрицательные, правым положительные, центральному ноль. Тогда положение линии можно оценить как средневзвешенное. Если больше сигнал от левых каналов, линия левее центра; если от правых — правее.
Такой подход лучше простого набора 0/1, потому что он сохраняет информацию о переходе линии между каналами. Но он требует калибровки и проверки потери линии: сумма сигналов не должна быть нулевой или бессмысленной.
Как позиция управляет колёсами

Положение линии превращают в ошибку управления. Если линия левее центра, робот должен повернуть влево: левое колесо замедляется или правое ускоряется. Если линия правее, наоборот.
Главная опасность — запоздалая реакция. Слишком сильная фильтрация делает движение плавным на графике, но робот поздно замечает поворот трассы.
Что запомнить про датчик линии
- Датчик линии измеряет отражение, а не «чёрный цвет» напрямую.
- Один канал даёт локальное решение, массив даёт положение линии.
- Аналоговые значения требуют АЦП, порога и калибровки.
- Высота установки и ширина линии так же важны, как модель датчика.
- Управление должно учитывать потерю линии и задержку фильтра.
Практика
- Снимите сырые значения датчика над белым полем, чёрной линией и краем линии.
- Сравните один канал и массив: какие ситуации один канал не различает?
- Подберите порог и проверьте его при другом освещении.
- Для массива задайте веса каналов и вычислите положение линии на трёх примерах.
Проверьте себя
- Почему чёрная линия под средним датчиком должна уменьшать отражение именно среднего канала?
- Чем аналоговый выход полезнее порогового?
- Почему узкая линия может потеряться между каналами?
- Почему фильтр датчика линии нельзя делать слишком медленным?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
- Отражательный датчик — датчик, который измеряет отражённый свет.
- Компаратор — схема, сравнивающая сигнал с порогом.
- Массив датчиков — несколько каналов, расположенных рядом.
- Порог — граница, отделяющая одно состояние от другого.
- Средневзвешенное положение — оценка позиции по сигналам и весам каналов.
Связанные темы
- АЦП — как читать аналоговые каналы линии.
- Калибровка датчиков — как выбрать рабочий диапазон и порог.
- Фильтрация данных с датчиков — как сглаживать сигнал без потери поворота.
Источники
- Pololu. QTR Reflectance Sensor Arrays.
- SparkFun. QRE1113 Line Sensor Breakout.
- Vishay. TCRT5000 reflective optical sensor datasheet.

