Перейти к основному содержимому

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

Мобильный робот едет по линии с массивом отражательных датчиков

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

Коротко

Один отражательный канал сообщает только локальный контраст под собой. Массив каналов позволяет оценить положение линии относительно центра робота. Пороговый сигнал проще, аналоговый даёт больше информации, но требует АЦП и калибровки.

Зачем это нужно

Линейный робот должен не просто заметить чёрную полосу, а постоянно понимать, где она находится: левее центра, по центру или правее. Если использовать один TCRT5000, робот видит только состояние в одной точке. Если поставить QTR-8A или 5-канальный модуль, появляется геометрия линии.

Примеры датчиков

Примеры датчиков линии

ДатчикКаналыВыходЧто сравнить
TCRT5000-модуль1аналоговый A0 и пороговый DOпростота против чувствительности к высоте
QRE11131аналоговыймалый размер, удобно ставить массив вручную
Pololu QTR-8A88 аналоговых выходовможно вычислять положение линии
5-channel tracker5обычно цифровые выходыпроще читать, но меньше информации о полутонах

Главный вопрос: нужно ли роботу знать только «линия под датчиком» или положение линии относительно центра? От ответа зависит выбор одного канала, массива, аналогового или цифрового выхода.

Главная идея

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

Чёрная линия под средним датчиком массива

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

Почему показания меняются

Факторы, меняющие отражение

Показание зависит не только от цвета линии.

ФакторЧто меняется
Высота датчикаслишком далеко — отражение слабое; слишком близко — геометрия нарушается
Ширина линииузкая линия может попасть между каналами
Поверхностьматовая, глянцевая и пыльная поверхность отражают по-разному
Внешний светсолнце и лампы добавляют фон
Скорость роботапри редком опросе робот пролетает важные участки

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

Один канал или массив

ВариантСхемаЧто знает роботКогда подходит
Один каналОдин канал над линиейтолько светло/темно под одной точкойпростая проверка края или медленный робот
Массив каналовМассив каналов над линиейгде линия относительно центрадвижение по трассе и плавное управление

Один канал можно использовать как левый и правый «глаз», но между ними остаётся слепая зона. Массив уменьшает эту проблему: соседние каналы показывают, как линия входит под робота и куда смещается.

Порог: простой вариант

Порог переводит аналоговое отражение в решение

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

Положение линии по весам

Положение линии по весам каналов

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

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

Как позиция управляет колёсами

Ошибка положения линии управляет скоростью колёс

Положение линии превращают в ошибку управления. Если линия левее центра, робот должен повернуть влево: левое колесо замедляется или правое ускоряется. Если линия правее, наоборот.

Главная опасность — запоздалая реакция. Слишком сильная фильтрация делает движение плавным на графике, но робот поздно замечает поворот трассы.

Что запомнить про датчик линии

  • Датчик линии измеряет отражение, а не «чёрный цвет» напрямую.
  • Один канал даёт локальное решение, массив даёт положение линии.
  • Аналоговые значения требуют АЦП, порога и калибровки.
  • Высота установки и ширина линии так же важны, как модель датчика.
  • Управление должно учитывать потерю линии и задержку фильтра.

Практика

  1. Снимите сырые значения датчика над белым полем, чёрной линией и краем линии.
  2. Сравните один канал и массив: какие ситуации один канал не различает?
  3. Подберите порог и проверьте его при другом освещении.
  4. Для массива задайте веса каналов и вычислите положение линии на трёх примерах.

Проверьте себя

  1. Почему чёрная линия под средним датчиком должна уменьшать отражение именно среднего канала?
  2. Чем аналоговый выход полезнее порогового?
  3. Почему узкая линия может потеряться между каналами?
  4. Почему фильтр датчика линии нельзя делать слишком медленным?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

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

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • Отражательный датчик — датчик, который измеряет отражённый свет.
  • Компаратор — схема, сравнивающая сигнал с порогом.
  • Массив датчиков — несколько каналов, расположенных рядом.
  • Порог — граница, отделяющая одно состояние от другого.
  • Средневзвешенное положение — оценка позиции по сигналам и весам каналов.

Связанные темы

Источники