Ардуино: оптический датчик препятствия. Инфракрасный датчик препятствия Ик инфракрасный препятствий

ИК-датчик препятствий для роботов-машин YL-63 (FC-51)
Smart Car Obstacle Avoidance Sensor Module Infrared Tube Module Reflective Photoelectric Sensor

Бесконтактный датчик YL-63 обнаруживает объекты в диапазоне расстояний почти от нуля и до установленного предела не вступая с ними в непосредственный контакт. Разные производители присваивают одному и тому же устройству разные наименования. Одни именуют представленный датчик наименованием YL-63 другие FC-51. Датчик предназначен для применения, когда не требуется информация о расстоянии до объекта, а только о его наличии или отсутствии. Предельная дистанция регистрации зависит от настройки. Датчик YL-63 имеет дискретный выход. Это оптический датчик регистрирующий увеличение интенсивности отраженного инфракрасного (ИК) излучения в контролируемом пространстве. Изменение отраженного излучения происходит из-за движущихся частей механизмов или перемещения окружающих предметов. YL-63 может размещаться на движущемся объекте для определения положения в окружающем пространстве. Применяется для обнаружения препятствия при движении колесных и гусеничных автоматов. Датчик может стать частью наглядного пособия для обучающихся в области систем управления и автоматики.
Устройство содержит источник ИК излучения и фотоприемник. Излучение отражается от препятствия и регистрируется фотоприемником. Он передает сигнал на компаратор LM393, который настроен на срабатывание при определенном уровне освещенности фотоприемника. Компаратор формирует сигнал на выходе датчика YL-63 низкого или высокого логического уровня.

Оптический датчик YL-63 относится к классу диффузионных. Название группы датчиков возникло из-за лежащего в основе работы датчика отражения излучения по множествам направлений - диффузии излучения отражающей поверхностью.
Работа устройства заключается в определении освещенности фотоприемника. Поскольку YL-63 фиксирует отраженное излучение, то возникает погрешность измерения расстояния, вызванная различной отражающей способностью поверхностей объектов изготовленных из разнообразных материалов.

Коэффициенты расстояния для отражения от различных материалов.

Белая матовая бумага 1
Хлопчатобумажная ткань 0,6
Серый поливинилхлорид 0,57
Дерево
слабо окрашенное 0,73
необработанное 0,4
Пластик
белый 0,7
черный 0.22
Черная резина 0,2-0,15
Матовый алюминий 1,2
Нержавеющая полированная сталь 2,3

Различное отражение и поглощение излучения различных материалов используются для работы воспринимающего узла тахометра. Предположим у нас есть . Требуется узнать количество оборотов в минуту вала двигателя. Нас выручит YL-63. Достаточно приклеить на маховик фрагмент белой бумаги, направить луч датчика на маховик и получим воспринимающий узел тахометра.
Для снижения последствий различных помех обрабатывающим микроконтроллером накапливаются данные полученные от датчика за короткий промежуток времени и производится усреднение. Датчик YL-63 может работать в приборах не имеющих МК.

Параметры

Напряжение питания 3,3-5 В
Дистанция обнаружения до отражающей белой матовой плоскости 0,02-0,3 м
Угол обнаружения 35°
Размеры 43 х 16 х 7 мм

Контакты

Датчик препятствия YL-63 он же FC-51 имеет вилку разъема из трех контактов:
VCC - питание,
GND - общий провод,
OUT - выход.

Индикаторы

На плате модуля расположено два индикатора. Свечение зеленого сообщает о включении питания. Красный светодиод светится если в зоне обнаружения находится объект.

Установка расстояния срабатывания

Настройку устройства облегчает работа индикатора обнаружения. Это позволяет настроить YL-63 он же FC-51 на срабатывание в реальных условиях. Установка чувствительности датчика выполняется с помощью переменного резистора, установленного на плате. Препятствие устанавливается на требуемом удалении от фотоприборов датчика. Поворотом подвижного контакта переменного резистора на плате модуля YL-63 выполняется установка расстояния срабатывания, добиваются включения красного светодиода. Затем проверяют дистанцию срабатывания перемещением отражающего объекта. Настройку повторяют не менее трех раз.

Программа для Ардуино обработки сигнала Y L-63

Сигнал датчика подается на контакт 12 Ардуино.

Void setup() {
Serial.begin (9600);
pinMode (12, INPUT);
}
void loop() {
Serial.print("Signaal: ");
Serial.println (digitalRead(12));
delay (500);
}

ИК-датчик препятствий для роботов-машин YL-63 (FC-51)
Smart Car Obstacle Avoidance Sensor Module Infrared Tube Module Reflective Photoelectric Sensor

Бесконтактный датчик YL-63 обнаруживает объекты в диапазоне расстояний почти от нуля и до установленного предела не вступая с ними в непосредственный контакт. Разные производители присваивают одному и тому же устройству разные наименования. Одни именуют представленный датчик наименованием YL-63 другие FC-51. Датчик предназначен для применения, когда не требуется информация о расстоянии до объекта, а только о его наличии или отсутствии. Предельная дистанция регистрации зависит от настройки. Датчик YL-63 имеет дискретный выход. Это оптический датчик регистрирующий увеличение интенсивности отраженного инфракрасного (ИК) излучения в контролируемом пространстве. Изменение отраженного излучения происходит из-за движущихся частей механизмов или перемещения окружающих предметов. YL-63 может размещаться на движущемся объекте для определения положения в окружающем пространстве. Применяется для обнаружения препятствия при движении колесных и гусеничных автоматов. Датчик может стать частью наглядного пособия для обучающихся в области систем управления и автоматики.
Устройство содержит источник ИК излучения и фотоприемник. Излучение отражается от препятствия и регистрируется фотоприемником. Он передает сигнал на компаратор LM393, который настроен на срабатывание при определенном уровне освещенности фотоприемника. Компаратор формирует сигнал на выходе датчика YL-63 низкого или высокого логического уровня.

Оптический датчик YL-63 относится к классу диффузионных. Название группы датчиков возникло из-за лежащего в основе работы датчика отражения излучения по множествам направлений - диффузии излучения отражающей поверхностью.
Работа устройства заключается в определении освещенности фотоприемника. Поскольку YL-63 фиксирует отраженное излучение, то возникает погрешность измерения расстояния, вызванная различной отражающей способностью поверхностей объектов изготовленных из разнообразных материалов.

Коэффициенты расстояния для отражения от различных материалов.

Белая матовая бумага 1
Хлопчатобумажная ткань 0,6
Серый поливинилхлорид 0,57
Дерево
слабо окрашенное 0,73
необработанное 0,4
Пластик
белый 0,7
черный 0.22
Черная резина 0,2-0,15
Матовый алюминий 1,2
Нержавеющая полированная сталь 2,3

Различное отражение и поглощение излучения различных материалов используются для работы воспринимающего узла тахометра. Предположим у нас есть . Требуется узнать количество оборотов в минуту вала двигателя. Нас выручит YL-63. Достаточно приклеить на маховик фрагмент белой бумаги, направить луч датчика на маховик и получим воспринимающий узел тахометра.
Для снижения последствий различных помех обрабатывающим микроконтроллером накапливаются данные полученные от датчика за короткий промежуток времени и производится усреднение. Датчик YL-63 может работать в приборах не имеющих МК.

Параметры

Напряжение питания 3,3-5 В
Дистанция обнаружения до отражающей белой матовой плоскости 0,02-0,3 м
Угол обнаружения 35°
Размеры 43 х 16 х 7 мм

Контакты

Датчик препятствия YL-63 он же FC-51 имеет вилку разъема из трех контактов:
VCC - питание,
GND - общий провод,
OUT - выход.

Индикаторы

На плате модуля расположено два индикатора. Свечение зеленого сообщает о включении питания. Красный светодиод светится если в зоне обнаружения находится объект.

Установка расстояния срабатывания

Настройку устройства облегчает работа индикатора обнаружения. Это позволяет настроить YL-63 он же FC-51 на срабатывание в реальных условиях. Установка чувствительности датчика выполняется с помощью переменного резистора, установленного на плате. Препятствие устанавливается на требуемом удалении от фотоприборов датчика. Поворотом подвижного контакта переменного резистора на плате модуля YL-63 выполняется установка расстояния срабатывания, добиваются включения красного светодиода. Затем проверяют дистанцию срабатывания перемещением отражающего объекта. Настройку повторяют не менее трех раз.

Программа для Ардуино обработки сигнала Y L-63

Сигнал датчика подается на контакт 12 Ардуино.

Void setup() {
Serial.begin (9600);
pinMode (12, INPUT);
}
void loop() {
Serial.print("Signaal: ");
Serial.println (digitalRead(12));
delay (500);
}

Практически каждый самодвижущийся робот имеет такие датчики. Это своеобразные глаза робота. Датчик работает по принципу радара - посылка и прием ИК света. Светодиод излучает инфракрасные лучи, которые отражаясь от препятствия попадают на приемник ИК излучения TSOP1736 , который формирует на выходе сигнал низкого уровня, что говорит о том, что есть сигнал. Если же препятствия нет, то лучи уйду в никуда и отражения не будет, приемник ИК лучей ничего не увидит.

Вобщем идея очень проста, но есть тут несколько тонкостей. Во первых приемник ИК излучения реагирует только на импульсы определенной частоты, частота указана в последних двух цифрах обозначения TSOPа - 1736 - 36Кгц, 1738 - 38 Кгц. Т.е. для управления светодиодом (вывод вход датчика) нужно подавать импульсы именно с частотой приема TSOPа. Это можно реализовать либо программно, либо использовав модуль ШИМ управляющего микроконтроллера, а можно и аппаратно, собрав генератор на нужную частоту, скажем на таймере 555. Лично я использую для управления ИК диодами ШИМ модуль микроконтроллера. Чтобы датчик ответил на сигнал оптимально подавать пачку из 8-15 импульсов на светодиод, а потом сразу же проверять состояние ИК приемника. Если на его выводе лог.0 то есть препятствие - нужно выполнять маневр. И еще, фильтр ИК приемника может подстраиваться в небольших пределах на принимаемый ИК сигнал, это нигде не документируется, но это так. Поэтому совсем точно выдерживать 36Кгц не обязательно, достаточно установить близкую частоту (ну скажем 35750 ГЦ) и дать достаточное количество импульсов, чтобы TSOP мог подстроиться к ним и успеть среагировать, обычно делают 10-15 импульсов.

Вывод TSOPа имеет открытый коллектор, когда сигнал принят вывод устанавливается в низкий логический уровень. Если выход датчика подключен к порту контроллера со встроенным подтягивающим резистором то резистор R2 в схеме не нужен.

Тут еще нужно сказать, что дальность определения расстояния очень сильно зависит от материала. Например на черный пластик датчик вобще не реагирует, а на белые обои реагирует прекрасно. Для относительной регулировки чувствительности датчика используется подстроечный резистор R4. А чтобы датчик реагировал только на отраженный свет, а не на сам светодиод нужно между диодом и приемником установить непрозрачную для ИК лучей перегородку.

Питается устройство напряжением 5 вольт (у меня от NI-MH аккумулятора 4,8 вольт).

Пример настройки модуля ШИМ на 36 КГц для микроконтроллера PIC
movlw d"14"
movwf CCPR1L ;Установка периода 50%
movlw b"00001111"
movwf CCP1CON ;Включаем ШИМ
bsf STATUS,RP0 ;Банк 1
movlw d"27" ;Частота ШИМ примерно 36КГЦ (для TSOP1736)
movwf PR2
bcf STATUS,RP0 ;БАНК 0
clrf TMR2
movlw b"00000100" ;Включение модуля ШИМ
movwf T2CON ;и таймера TMR2, чтобы ШИМ работало

Сразу к делу, иначе речи быть не может! lm311 это компаратор (Стоимость 9-10 рублей, распространенный). Компаратор сравнивает 2 входящие величины. На схеме одна входящая величина это "идеальное напряжение" которое выставляется переменным резистором, вторая величина - величина проходящая через фото транзистор на второй вход компаратора. Сравнивая величины компаратор делает вывод. Если луч светодиода светит на фото транзистор (или отображается от поверхности) то на выходе Signal устанавливается логический ноль. Если же луч не отображается и не попадает на фототранзистор то загорается светодиод...

Нами были проверенны фотодиоды, фототранзисторы, ик реле. И был сделан вывод. Наилучшими датчиками в данной схеме явлдяются: Фотодиоды 5 мм. И Фототранзисторы 3мм. Существует множество различных фото устройств и возможно вы сами что то подберете под Вас.
Начинающим предпочтительно изготовление на макетной плате.

Вместо резисторов 330 Ом возможно поставить резисторы около 91-100 Ом.
Потребление платы минимальное.
Дальность действия:
При организации фото барьера - расстояние достигает метра - при условии точной настройки светодиода и фотоприемника.
При организации датчика определения линии или препятствия расстояние достигало 2-15 сантиметров.

Датчик изготовлен, работает, тест прошел, работоспособность доказана!
Ваши вопросы в комментарии.
Датчик был применен вместе в микроконтроллером не имеющим встроенного Ацп и компаратора.



Другие статьи по разделу:

Сom адаптер. Рабочая схема. RS232-TTL

Каждый робот, способный ездить, летать или плавать, должен видеть препятствия, находящиеся у него на пути. Чтобы робот смог это сделать, ему необходимы соответствующие датчики. В английской литературе такие устройства называют proximity sensor , мы же их будем называть датчиками препятствия. На этом уроке мы рассмотрим один из самых распространенных датчиков препятствия, который работает по принципу отражения. Устроен он очень просто. Датчик содержит направленный источник света и детектор света. Источником часто служит инфракрасный светодиод с линзой, а детектором — фотодиод или фототранзистор. Светодиод на датчике постоянно включен и излучает узкий пучок света в прямом направлении. Если перед датчиком есть препятствие (рисунок А), то на детектор попадает отраженный свет от источника, и на выходе датчика появляется положительный импульс. В противном случае, если препятствия нет, то датчик молчит (рисунок Б). Есть и третий вариант, когда препятствие есть, но свет от него не отражается! На рисунке В изображен как раз такой случай. Получается, матовую черную поверхность робот не увидит.

1. Подключение

Будем подключать самый простой датчик с цифровым выходом. Принципиальная схема подключения к выводам Ардуино Уно :
Внешний вид макета

2. Настройка чувствительности

Как известно, вокруг нас имеется множество источников инфракрасного излучения, включая лампы освещения и солнце. Фоточувствительный элемент датчика регистрирует это фоновое излучение, и может дать ложный сигнал срабатывания. Другими словами, датчик препятствия может сработать, когда никакого препятствия и нет вовсе. Чтобы решить эту проблему, на датчике имеется возможность настроить чувствительность таким образом, чтобы воспринимать только свет достаточной силы. Обычно это реализуется с помощью компаратора — электронного устройства, позволяющего сравнивать два уровня напряжения. Одно напряжение подается на компаратор с фотодиода, а другое с делителя напряжения на основе потенциометра. Второе напряжение будем называть пороговым . Теперь датчик даст положительный сигнал только тогда, когда напряжение на фотодиоде станет больше, чем настроенное нами. Для настройки порогового напряжения нам понадобится шлицевая отвертка (она же — плоская). В этой процедуре нам также поможет зеленый светодиод состояния, который загорается когда датчик регистрирует достаточный уровень инфракрасного света. Алгоритм настройки сводится к трем шагам:
  • помещаем датчик в условия освещенности, в которых он будет работать;
  • подключаем датчик к питанию, при этом на нем загорится красный светодиод;
  • убираем перед датчиком все препятствия, и крутим потенциометр до тех пор, пока зеленый светодиод состояния не погаснет.
Для проверки поднесем к датчику ладонь, и на определенном расстоянии загорится зеленый светодиод. Уберем руку — светодиод погаснет. Расстояние на котором датчик регистрирует препятствие зависит от уровня фоновой засветки, от настройки чувствительности и от правильного расположения фотодиода и светодиода на датчике. Они должны быть расположены строго параллельно друг другу. Теперь, когда датчик настроен должным образом, приступим к составлению программы.

3. Программа

Для примера, будем зажигать и гасить штатный светодиод №13 на Ардуино Уно , в зависимости от показаний датчика. При использовании цифрового датчика, программа будет такой же, как и в случае работы с кнопками. На каждой итерации цикла loop мы считываем значение на выводе №2, и затем сравниваем это значение с уровнем HIGH . Если значение равно HIGH , значит датчик видит препятствие, и мы зажигаем светодиод на выводе №13. В противном случае — гасим светодиод. const int prx_pin = 2; const int led_pin = 13; byte v; void setup() { pinMode(prx_pin, INPUT); pinMode(led_pin, OUTPUT); } void loop() { v = digitalRead(prx_pin); if(v == HIGH) digitalWrite(led_pin, HIGH); else digitalWrite(led_pin, LOW); }

4. Пример использования

Попробуем теперь применить цифровой датчик по прямому назначению. Заставим двухколесного робота реагировать на показания двух датчиков, размещенных слева и справа. Сделаем так, чтобы при обнаружении препятствия робот отворачивал от него в противоположную сторону, а затем продолжал движение вперед. Оформим программу в виде блок-схемы процедуры loop .

Задания

Если все получилось, попробуйте выполнить еще несколько заданий с роботом.
  1. Направить датчики препятствия вниз, чтобы робот смог чувствовать край стола. Написать программу, которая предотвращает падение робота со стола.
  2. Снова направить датчики вниз, но на этот раз для другой цели. Как мы выяснили, датчик может отличить черную поверхность от белой. Воспользуйтесь этим свойством, чтобы сделать робота-следопыта (он же LineFollower).
  3. Направить датчики в стороны, и заставить робота двигаться вдоль стены.

Заключение

На следующем уроке мы познакомимся с датчиком, который устроен практически так же, но больше подходит для детектирования черных и белых поверхностей. Попробуем считывать уже не цифровой, а аналоговый сигнал датчика, чтобы сделать более совершенного робота-следопыта.