датчик линии ардуино код
Аналоговый датчик линии
Аналоговый датчик линии, в отличие от цифрового, видит не только чёрную и белую поверхность, но и найдёт все оттенки серого.
Закрепите пару таких сенсоров внизу мобильной платформы, и ваш робот станет участником соревнований езды по линии или робосумо. Датчик линии также позволит роботу увидеть пропасть и спасёт от падения со стола.
Пример для Arduino
Проверим датчик в действии с платформами Arduino. На выходе сенсора аналоговый сигнал. Для быстрого и удобного подключения используйте Troyka Shield.
Схема устройства
Код программы
После загрузки скетча — откройте монитор Serial-порта. Перемещайте датчик над разными градациями серого и следите за показаниями.
Элементы платы
Troyka-контакты
Датчик подключается к управляющей электронике по трём проводам.
Оптопара TCRT5000
Оптопара TCRT5000 — это собранные в одном корпусе светодиод и фототранзистор. Светодиод излучает свет в инфракрасном диапазоне с длиной волны 950 нм. Световой поток отражается от поверхности и попадает на фототранзистор. Чем светлее поверхность, тем больше отражается света, чем темнее — тем меньше.
Показания датчика также зависят от расстояния сенсора до поверхности. При расстоянии менее 3 миллиметров — перегородка между ИК-излучателем и приёмником мешает транзистору принимать отраженный свет. А при расстоянии более 10 миллиметров — отраженный свет рассеивается и не доходит до приёмника.
Переменный резистор
При повороте подстроечного резистора до упора по часовой стрелке, датчик будет воспринимать границу между черной и белой поверхностями как размытую. А при повороте в обратную сторону — граница для датчика станет резче.
Световая индикация
Когда датчик находится над светлой поверхностью индикаторный светодиод горит, а над тёмной — не горит.
Светодиод позволяет более точно откалибровать датчик. Оттенок серого, над которым он загорается в зависимости от настройки — cчитайте реперной точкой.
Цифровой датчик линии
Цифровой датчик линии призван отличать тёмную поверхность от светлой.
Разместите датчик на нижней поверхности мобильной платформы, чтобы научить вашего робота двигаться вдоль линии, не выезжать за пределы территории или не сваливаться с края стола.
Пример использования с Arduino
Проверим датчик в действии с платформами Arduino. На выходе сенсора цифровой сигнал. Для быстрого и удобного подключения используйте Troyka Shield.
Схема устройства
Код программы
После загрузки скетча — откройте монитор Serial-порта. Проведите датчиком сначала над столом, а потом за краем стола. При выходе за край стола на мониторе должно возникнуть предупреждение.
Видеообзор
Элементы платы
Troyka-контакты
Датчик подключается к управляющей электронике по трём проводам.
Оптопара TCRT5000
Оптопара TCRT5000 — это собранные в одном корпусе светоиод (синий на рисунке) и фототранзистор n-p-n типа (чёрный на рисунке). Светодиод излучает в инфракрасном диапазоне на длине волны 950 нм. Свет отражается от поверхности и попадает на фототранзистор.
Нужно иметь ввиду, что показания датчика также зависят от расстояния до поверхности. Когда датчик слишком низко, перегородка между диодом и фототранзистором оптопары мешает транзистору принимать отраженный свет. Когда датчик слишком высоко, отраженный свет рассеивается и не доходит до датчика. В обоих случаях датчик выдаст 0.
Инвертор
На борту цифрового датчика расположен инвертирующий триггер Шмитта. При низком напряжении на фототранзисторе — на выходе датчика единица, при высоком — ноль.
Переменный резистор
Переменный резистор позволяет настраивать датчик линии на различные оттенки серого. Если повернуть ручку резистора до упора против часовой стрелки (максимальное сопротивление), то датчик будет выдавать логический ноль над поверхностью светлого оттенка серого. Если повернуть ручку до упора по часовой стрелке (минимальное сопротивление) то датчик будет реагировать только на самые тёмные оттенки. Варьируя сопротивление, вы можете настроить датчик на нужный вам оттенок.
Сигнальный светодиод
Сигнальный светодиод загорается, когда датчик находится над светлой (по его мнению) поверхностью. Наличие диода позволяет более точно откалибровать датчик. Оттенок серого, над которым он загорается в зависимости от настройки можно считать реперной точкой.
Восьмиканальный датчик линии Octoliner v1
Езда по линии — самое зрелищное и азартное соревнование по робототехнике. Следуя по чёрной линии, робот должен быстрее всех добраться до финиша. В этом ему помогает датчик линии: при помощи оптических сенсоров робот «видит» чёрную линию и следует по ней. Чем точнее датчик, тем быстрее робот преодолеет дистанцию и придёт к финишу.
Установите на «Робоняшу» целую сборку из датчиков линии, и ваш робот станет чемпионом в этом виде соревнований. Ни одна линия не ускользнёт от его восьмиканального зрения.
Видеообзор
Как это работает
На борту модуля расположено восемь датчиков линии. Кроме чёрного и белого цвета, каждый сенсор способен распознать 4096 оттенков серого. Благодаря такой чувствительности робот лучше определяет границу перехода от линии к фону и быстрее реагирует на повороты.
Интенсивность излучения и чувствительность фотоприёмников можно программно регулировать.
Примеры работы для Arduino
Подключение датчика
К платформе Arduino сенсорный модуль удобнее подключать через плату расширения: например, через Troyka Shield.
Получение данных с датчиков линии
Для запуска примеров скачайте и установите библиотеку Octoliner.
Попробуем получить значения с датчиков сборки и вывести полученные значения на монитор serial-порта. Для этого создадим объект для работы с датчиком, выставим чувствительность фотоприёмников и настроим яркость свечения инфракрасных светодиодов.
Поиск линии
Теперь научим датчики определять нахождение линии. Будем использовать диапазон от –1 до 1:
Для плавной езды по линии рекомендуем использовать сборку датчиков совместно с ПИД-регулятором.
Примеры работы для Espruino
Схема устройства
К платформе Iskra JS сенсорный модуль удобнее подключать через плату расширения: например, через Troyka Shield.
Получение данных с датчиков линии
Напишем программу, которая поможет получить значения с датчиков сборки и вывести полученные значения на консоль. Для этого подключим модуль работы со сборкой датчиков, выставим чувствительность фотоприёмников и настроим яркость свечения инфракрасных светодиодов.
Поиск линии
Теперь научим датчики определять нахождение линии. Будем использовать диапазон от –1 до 1:
Для плавной езды по линии рекомендуем использовать сборку датчиков совместно с ПИД-регулятором.
Элементы платы
Плата крепится к роботу при помощи шести ушек, которые сделаны под размер винтов М3.
Микроконтроллер STM32F030F4P6
Мозг сенсорной сборки — мощный 32-разрядный микроконтроллер STM32F030F4P6 с вычислительным ядром ARM Cortex M0. Контроллер считывает данные с восьми датчиков линии и передаёт управляющей платформе по интерфейсу I²C/TWI.
Микросхема MCP6004
На борту модуля расположены два четырёхканальных операционных усилителя MCP6004, при помощи которых можно отрегулировать чувствительность сразу восьми сенсоров.
Понижающий DC-DC
Преобразователь NCP582LSQ33 с выходом 3,3 В обеспечивает питание логической части модуля. Максимальный выходной ток 150 мА.
Светодиодная индикация
На плате расположены два светодиода — индикаторы данных и питания.
Имя светодиода | Назначение |
---|---|
ACT | Отвечает за обмен данными между управляющей платформой и сенсорной сборкой. При обмене данными индикатор мигает. |
PWM | Показывает чувствительность датчиков: чем больше чувствительность, тем ярче горит светодиод. |
Troyka-контакты
На модуле выведен разъём Troyka-контактов:
Входной сенсорный канал
На модуле расположено восемь датчиков линии на оптопаре TCRT5000.
Оптопара TCRT5000 — это светодиод и фототранзистор, собранные в одном корпусе. Светодиод излучает инфракрасный свет, длина волны 950 нм. Световой поток отражается от поверхности и попадает на фототранзистор, где преобразуется в электрический сигнал. Чем светлее поверхность, тем больше отражается света. Чем темнее — тем меньше.
Показания датчика зависят не только от цвета линии, но и от расстояния сенсора до поверхности. Если расстояние менее 3 мм, то перегородка между ИК-излучателем и приёмником мешает транзистору принимать отражённый свет. При расстоянии более 15 мм отражённый свет рассеивается и не доходит до приёмника.
Датчик линии, аналоговый
Общие сведения:
Видео:
Спецификация:
Подключение:
Датчик подключается к любому аналоговому выводу arduino
Модуль удобно подключать 2 способами, в зависимости от ситуации:
Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO
Используя 3-х проводной шлейф, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.
Питание:
Напряжения питания датчика 5В постоянного тока. Подводится к выводам «V» (+5В) и «G» (GND).
Подробнее о модуле:
Датчик освещает поверхность направленным ИК светодиодом (длинна световой волны 940нм). Световой поток отражается от поверхности и попадает на кремниевый NPN фото-транзистор, где преобразуется в электрический сигнал. Так как используется фото-транзистор NPN типа (обратной проводимости), с нагрузкой на коллекторе, то уровень электрического сигнала на выходе «S», обратно-пропорционален отраженному от поверхности свету и прямо пропорционален удалению от отражающей поверхности.
Из графика видно, что если датчик линии находится в 5 мм от белой отражающей поверхности, то уровень на выходе «S» будет равен
0,3В.
Если цвет поверхности изменится с белого на чёрный, то уровень на выходе «S» увеличится с
4,6В.
Если цвет поверхности не изменился (остался белым), а датчик удалился с 5 мм, до 20 мм, то уровень на выходе «S» увеличится до
Примеры:
Включение светодиода при попадании датчика на тёмную линию.
Подключаем датчик к аналоговому входу A0 (PIN_LINE).
В качестве светодиода используем интегрированный в arduino или подключаем внешний к 13 выводу (PIN_LED).
При помощи функции analogRead(), получаем уровень сигнала на аналоговом входе A0 (PIN_LINE).
При помощи функции digitalWrite(), включаем или выключаем светодиод. Если уровень выше 400 то включаем, иначе выключаем.
Подключение TCRT5000 к Arduino
Сегодня говорим о цифровом датчике линии TCRT5000 и его подключении к Arduino. Устройство достаточно функционально, оно широко применяется в конструировании и робототехнике, например, позволяет отличить черную поверхность от белой, поможет заставить робота двигаться по заданной траектории, а также определит пустоты под ним. Кроме того, датчик может служить для определения скорости вращения кулера ∕ вентилятора (в качестве достойной альтернативы датчику Холла).
Подключение TCRT5000 к Arduino
Не будем долго мучать вас техническими терминами, приступим к главному – коннекту. Наглядно электрическая схема подключения выглядит следующим образом:
Модуль можно установить по сути на любую плату расширения (микроконтроллер) Ардуино. Сегодня мы попробуем протестировать его на базе Troyka Shield (на наш взгляд, один из самых простых вариантов). Подключаем приборы так, как показано на скриншоте:
Загружаем в приложение среды разработки IDE простой программный скетч:
Теперь откроем монитор Serial-порта (меню Инструменты), проведем цифро-аналоговым датчиком над поверхностью стола, а потом за его пределами. При выходе за край поверхности на экране должно возникнуть предупреждение. Это значит, что прибор нормально функционирует и выполняет поставленные вами задачи.