Модуль датчика линии
Теория
Датчик линии. Датчик линии чаще всего используются на мобильных роботах для ориентации в пространстве. Такие мобильные роботы могут использоваться, например, на складах.
Как же работает датчик линии. На датчике линии установлены датчика, которые испускают инфракрасный свет и определяя уровень освещённости, которые возвращаются к датчику. Тёмный свет отражает меньше света, а светлый больше, таким образом мы можем определить когда робот съезжает с линии и в какую сторону.
Практика
Примечание: датчик рекомендуется располагать на расстоянии 1 - 2 см от исследуемой поверхности. При таком расположении, сенсоры выдают значения в диапазоне 800-1200 на белой поверхности, 2700-3800 на чёрной поверхности, в зависимости от выбранного расстояния. Следовательно увеличение значения на одном из сенсоров, может означать что он направляется на чёрный цвет, а при уменьшении на белый цвет.
Давайте составим программу для отслеживания съезда с линии. Программа будет подсвечивать определённый светодиод в зависимости от того в какую сторону относительно датчика уходит линия. Если белый цвет появляется слева, то загорится зелёный, если справа то красный светодиод. Для этой программы нам понадобятся:
Раздел “События”:
- “Когда контроллер запущен”
Раздел “Управление”:
- “Всегда” х1
- “Подождать 1 сек.” х1
- “Если Иначе” х2
Раздел “Операторы”:
- “ < 50” x1
- “ > 50” x2
- “ или” x1
Раздел “Контроллер”:
- “Монохромный светодиод Красный в состояние Включено” х3
Раздел “Сенсоры”:
- “Считать значение s1 с датчика линии на 1 порту” х3
Теперь перейдём к составлению самой программы. Для начала присоединим постоянный цикл “Всегда” к блоку “Когда контроллер запущен”, после чего в этот цикл добавим блок условия “Если Иначе”. Для условия нам понадобятся блоки: “Значение s2 с датчика линии на 1 порту” и “ < 50”. На блоке “ < 50” значение 50 меняем на 2500. Таким образом мы проверяем находиться ли второй, то есть центральный, сенсор на линии (при значении выше 2500, сенсор видит чёрный цвет). И в блок “ < 2500” в первую часть ставим блок “Значение s2 с датчика линии на 1 порту”. Не забываем выбрать тот порт, к которому присоединяем модуль. Внутрь условия, после “Если то” ставим блок “Монохромный светодиод Красный в состояние Включено”.
Теперь составим второе условие, тут мы будем проверять значения с боковых сенсоров s1 и s3. Как мы знаем из теории, при значении меньше 1200, сенсор видит белый цвет. Следовательно составляем условие из блоков “ > 50”, “ или ” и “Значение s1 с датчика линии на 1 порту”. Блоков сравнения и считывания нужно 2 шт. Блоки считывания переносим в первую часть блока сравнения, не забываем поменять порт и считываемое значение. Оба блока сравнения помещаем в блок “ или ”, а блок “ или ” в условие блока “ Если иначе”. Должна получиться конструкция “Если значение s1 с датчика линии на 1 порту > 1300 или значение s3 с датчика линии на 1 порту > 1300 то”.
Осталось добавить задержку и расставить блоки управления светодиодов. Блок “Подождать 1 сек.” ставим после всех условий, но внутри блока “Всегда”, и меняем 1 сек на 0.2 сек, чтобы считывание проходило чаще. Блок управления светодиодом, ставим в режим “Включено” и ставим внутрь условия, после “Если то”. После “Иначе” ставим блок с режимом “Выключения”. В итоге когда выполняются условия, должен загораться красный светодиод, который позволяет понять, что датчик съехал с линии.
И так сегодня мы с вами научились использовать датчик линии считывая с него значения и использовать их в программе контроллера.