094-Датчик приближения на ИК-лучах (ATtiny13).

Автор: | 10.04.2013

 

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

 

Видео работы датчика:

Чем отличается такой датчик от, скажем, датчиков движения заводского исполнения (которые, кстати, стали очень доступными и недорогими)?

Главное отличие – это область применения. Готовые датчики все-таки больше ориентированы на большие помещения и контроль движения. В нашем случае датчик компактен и больше рассчитан на функции контроля приближения и предназначен для встраивания в готовые проекты.

 

Сфера использования может быть обширной:

— реакция объектов на приближение руки (например, интерактивные игрушки, автоматические устройства);
— открывание шкафчиков, дверей и тому подобное при приближении руки;
— зажигание света при проходе «контрольной точки»;
— ориентация в пространстве робота (контроль стен и препятствий);
— системы управления движеньями рук;
— сигнализация;
— …

1 Принцип работы.

 

Работает датчик очень просто. Устройство с определенным периодом  посылает импульсы при помощи IR-светодиода. Инфракрасные лучи, отражаясь от объекта, принимаются инфракрасным приемником TSOP. Объект есть – есть сигнал, объекта нет – нет и сигнала. Дабы не было ложных срабатываний от бытовых пультов, помех, импульсов при включении света, устройством передается определенная последовательность импульсов и при декодировании TSOP, все что не совпадает с этой последовательностью – отбрасывается. На бытовую технику (управляемую при помощи ИК-пультов) устройство не оказывает никакого воздействия, так как сигнал относительно слаб и промодулирован последовательностью которая нигде не используется.

 

2 Схема, плата.

094-Proximity_scheme.zip (Одна Загрузка)

 

Готовая плата IR драйвера

 

069-IR-driver-PCB1.zip (3772 Загрузки)

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

 

3 Прошивка микроконтроллера.

Для прошивки микроконтроллера (в  плате) нужно подключить программатор к соответствующим выводам:

094-main.zip (4904 Загрузки)
094-Fuse.png (5515 Загрузок)

Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
Фьюз-байты: Low=$7A, High=$FF
Как программировать микроконтроллеры читаем в FAQ.

 

4 Конструктивные особенности.

Одним из недостатков работы схемы является зависимость чувствительности датчика от общей освещенности. Это происходит по причине автоматической коррекции чувствительности самим TSOP (для того чтобы посторонняя освещенность не выводила приемник в нерабочую область).

Уменьшить этот эффект можно несколькими способами:

— Для того чтобы на приемник меньше попадало постороннего света нужно его поместить в непрозрачную трубку (я использовал черную термоусадку, предварительно ее усадив для получения более толстых стенок) и закрыть трубку с одной стороны непрозрачной пробкой (я залил черным горячим клеем) с другой поставив темно-красный светофильтр. Такая конструкция максимально ограждается от непрямых засветок при этом не страдает чувствительность так как для ИК-лучей красный светофильтр обладает хорошо проницаемый. Желательно и ИК-светодиод поместить в трубку – это уменьшит боковые отражения инфракрасных лучей – способных давать ложные срабатывания.

— Другим способом решения этой проблемы – применение коррекции по освещенности, например, самым простым является применение фоторезистора в цепи регулировки чувствительности (последовательно с переменным резистором чувствительности). При более ярком освещении ток через фоторезистор увеличивается, что ведет к увеличению чувствительности и наоборот.

Еще одна рекомендация, на этот раз по установке датчика. Так как принцип датчика основан на приеме отраженного излучения, при близком нахождении объекта возле отражающей плоскости (например, стена в коридоре), отражения от плоскости будут давать дополнительный фон который уменьшит общую чувствительность.  В таком случае постарайтесь ставить датчик под углом к плоскости – это направит отраженные лучи в сторону (в большей части).

 

5 Работа датчика.

После сборки датчика – включаем его в работу. Для начала выставляем чувствительность на середину, включаем датчик, направляем его в нужную сторону и чувствительностью настраиваем надежное срабатывание на нужный нам объект.

Если при работе датчика будет использоваться управление от бытового пульта, нужно пройти процедуру изучения кнопки (команды) пульта. В устройстве используется всего одна кнопка – переброс значения триггера. Для изучения кнопки необходимо обесточить устройство, «придавить» ножку выхода TSOP (на схеме ножка «Out») к «земле», включить устройство, отпустить ножку «Out» и нажать выбранную кнопку пульта. Теперь датчик начнет работать в штатном режиме.

При включении нескольких датчиков на близком расстоянии друг от друга (например, для контроля направления движения объекта) датчики будут мешать работе друг друга, так как их сигналы не синхронизированы. Для устранения этой проблемы используется вывод запрета инфракрасного излучения «LED-Запрет». На всех устройствах кроме одного этот вывод должен быть «прижат» к «земле». При этом все датчики будут работать от дного источника инфракрасного сигнала. Если одного излучающего светодиода недостаточно, то можно к выводу излучающего устройства подсоединять ИК-светодиоды в параллель (не забывая при этом о балластных резисторах).

 

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

 

6 Выводы.

По работе схемы есть как достоинство, так и недостатки.

Для начала недостатки:
— Зависимость работы устройства (чувствительности) от яркости освещения. Это решается, в некоторой степени, но проблема есть;
— Небольшая разрешающая способность (небольшие объекты будут «срабатывать» плохо);
— Небольшая дальность срабатывания (наличие отражающих стен и потолков уменьшают дальность, так как не позволяют увеличить чувствительность – появляются ложные срабатывания от отражений).

Ну и на десерт – достоинства:
— Простота конструкции (а если Вы уже раньше собирали платку – вообще делать почти ничего не нужно!);
— Отсутствие дефицитных и дорогостоящих элементов;
— Не нуждается в наладке.

Как видно из видео, датчик довольно уверенно реагирует на руку в пределах полуметра. Уверенно работает от пульта и не мешает находящемуся рядом телевизору. Потребляемый ток лежит в пределах 10мА.  Запитать датчик можно от источников напряжением от 3 до 6 вольт (некоторые TSOP не могут работать ниже 5ти вольт – это нужно учитывать).

 

По устройству все.

094-Proximity_Sensor_Source.zip (Одна Загрузка)

 

Не забываем заглядывать в раздел модификаций на форуме! Там можно найти (или оставить свои) модификации этого и других устройств блога.

(Visited 38 146 times, 1 visits today)

094-Датчик приближения на ИК-лучах (ATtiny13).: 299 комментариев

  1. siema

    Вы правы, забыл поменять модель. Спасибо и удачи, не прощаясь.

  2. Gnusmas

    Доброго времени суток. Начал эксперементы с 2 датчиками, вдалеке друг от друга, датчики прекрасно выполняют свою функци, но если в поле зрения одного попадает сигнал другого, то начинают хаотическое перключение. Замыкаю вывод LED-запректа на землю через резистор, и тогда этот датчик, на котором включен LED-запрет, вообще перестает работать.

  3. serega23

    Здравствуйте, а Вы можете сделать пршивку,чтобы на выходе «триггер» светодиод плавно включался и плавно включался?

  4. GetChiper Автор записи

    Это будет сложно реализовать на тини13.

  5. serega23

    Значит займётесь этим проектом?

  6. serega23

    Нужно ещё и плавное включение. Хочу его поставить как выключатель света.

  7. Gordon_shumway

    Доброго дня !

    Уважаемый автор ! Хочу тоже адаптировать девайс под свои нужды, но никак не пойму как вы умудрились одновременно и мигать светодиодом по хитрому алгоритму и принять и расшифровать излучение. Пожалуйста, поделитесь алгоритмом ! Программу не прошу, так как пишу на Баскоме. Постараюсь перевести. Спасибо !
    PS: на Баскоме есть команды GetRC5 (принять последовательность RC5) и
    и похожая для передачи RC5-последовательности. Вот только как их одновременно заставить работать — не пойму…

  8. GetChiper Автор записи

    И сигнал формируется и прием от TSOP — все работает в прерываниях. Соответственно для формирования зондирующих импульсов, нужно настроить таймер на вызов прерываний с периодом ИК-сигнала (36-38 кГц). Прием от TSOP обрабатывается в прерываниях по внешнему сигналу на ножке INT0. В этом случае два процесса не мешают друг другу.

  9. GetChiper Автор записи

    Команда есть — это случайный код. В случае когда изучена кнопка пульта — этим кодом становится последовательность кнопки.

  10. that

    Дуже класний проект і автору респект)))

    Але у мене виникла проблема при його реалізації:(

    Надумав використовувати такі датчики дома для вмикання світла в кімнатах в ночі і тому було зроблено 17 плат, перед цим звичайно все протестовано на макетці, працювало на ура:)

    1) В результаті фінального етапу зборки 8 плат просто не запрограмувалося, а інші було запрограмовані. В чому тут може бути проблема, погана пайка контактів чи які варіанти???
    2) із запрограмованих плат 5 просто не працюють, перевіряв ік-діоди через камеру, не світяться. Великий номінал резистора для обмеження струму??? ік-діод 100мА
    3) 2 екземпляра якби працюють але просто жахливо, не реагують, а то і взагалі якась жахлива затримка. При цьому ік-діоди працюють виявляється по різнову, в одному він моргає в іншому світиться постійно. Взагалі що тут робити і з чого починати шукати проблему???

    Буду вдячний за відповідь і прошу допомогти, а то скільки потраченого часу і сил, а також фінансів, що просто так зупинятися… небувати такому;)
    Дякую:)

  11. GetChiper Автор записи

    Этого устройства уже сделано немало модификаций и оно довольно хорошо обкатано (кстати можно попробовать модификации).

    По поводу отказа программироваться — у меня с тини13 тоже бывало такое. Решал при помощи другого программатора (менял программатор и все прошивалось).

    По поводу невнятной работы, создается впечатление или с ошибками залита прошивка или может фьюзы неправильно установлены (хотя это вряд ли — первое устройство-то работает).

    Худший вариант — это бракованная партия тинек, но это, думаю, маловероятно.

    Попробуйте для начала попробовать другой программатор (например железно работает «деревянный» СОМ-программатор)

  12. lonely_jack

    добрый день, возможно ли прошить эту схему на arduino uno r3 ?

  13. GetChiper Автор записи

    Нет, прошивка на контроллер Ардуины не пойдет.

  14. lonely_jack

    неправильно сформулировал…
    возможно ли прошить эту схему через arduino uno r3 ?
    и как это сделать:(

  15. serega23

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

  16. GetChiper Автор записи

    Нужно попробовать включить контроль питания во фьюзах МК.
    Нужно убрать обе галки фьюзов там где BODLEVEL

  17. serega23

    Убрал галки фьюзов, теперь работает как надо. СПАСИБО ВАМ ОГРОМНОЕ.

  18. lonely_jack

    подскажите, пожалуйста, как правильно прицепить это устройство к таймеру http://masterkit.ru/shop/smarthome/control/1327366 чтобы этот датчик как кнопка включения срабатывал, буду очень благодарен. Кстати, изучая тему, попутно собрал ваш усб программатор на tiny2313 — работает отлично

  19. lonely_jack

    как подключить к таймеру — разобрался. вопрос другой: подключаю светодиоды — оба горят. на приближение руки, при освещениии и без, не реагигирует. реагирует на пульт от тв — один моргает и горит дальше, другой гаснет. еще одно нажатие — опять моргает и другой загорается. попробовал оригинальную прошивку и мод. в чем может быть проблема? экранировал ик-диод и приемник термоусадкой

  20. GetChiper Автор записи

    Сам ИК светодиод работает? (можно это проверить посмотрев не него через камеру мобильного или фотоаппарат)
    Может попробовать вообще убрать ИК-светодиод? Как поведет себя устройство?

  21. lonely_jack

    ик светодиод работает — моргает, когда подстроечник крутишь — на мелком сопротивлении моргает ИК, на более высоком (уже на середине) его уже не видно. попробовал даже подстроечник выпаять, впаял 10 ом — ик моргает

  22. lonely_jack

    постоянно работает триггер и статус. реагирует только на пульт — триггер гаснет пока жмешь на пульт, затем снова горит, а статус гаснет/загорется

  23. GetChiper Автор записи

    Тут могут быть варианты.
    Проблемы в сборке (просмотреть «сопли», непропаи, трещины.)
    Возможно помехи (попробовать запитать устройство от батареек)
    Может TSOP не подходящий? (поменять на другой)

  24. nikolyan2

    Здравствуйте.Подскажите как поведет себя устройство на улице?На даче нужно защитить двери.Чтобы при приближении на метр обьекта включалась сирена.Или лучше поставить заводской pir датчик?

  25. GetChiper Автор записи

    Теоретически, должен работать и на улице, но применение серьезное, поэтому может и будет оправдано приобретение специально для этого спроектированного датчика.

  26. SVN

    nikolyan2 :
    Здравствуйте.Подскажите как поведет себя устройство на улице?На даче нужно защитить двери.Чтобы при приближении на метр обьекта включалась сирена.Или лучше поставить заводской pir датчик?

    Пассивные ИК-датчики сканируют на расстояние 8-10 метров. Если перед дверью на этом расстоянии имеются кустарники или деревья, получите массу ложных срабатываний в солнечную погоду.

  27. tika

    Здравствуйте Админ- Нуждаюсь в надежном ИК барьере. Ваш удлинитель меня заинтересовал как в использование ИК барьера. Хотелось бы использовать 2й простой кодированный простой блок как излучатель на противоположном конце барьера — для увеличения расстояния. Да и прошивка в ИК барьере не помешала-бы с двумя разными выходами триггера. Спасибо.

  28. lonely_jack

    а какой конденсатор электролитический нужно? на схеме 10 мкф, а на фото 1 мкф

  29. GetChiper Автор записи

    Можно и тот и тот. Но лучше 10мкФ.

  30. lonely_jack

    вы ик светодиод с каким напряжением питания используете? третью ногу переменника стоит куда то припаивать? у меня светодиод моргает, и на него приходит около 0.75 вольт

  31. GetChiper Автор записи

    переменник и регулирует ток через светодиод. третью (среднюю) ногу нужно замкнуть с одной из крайних.

  32. ciph

    Приветствую getchip! Замечательное устройство, собрал — заработало сразу. Для своих целей мне необходимо, что бы состояние триггера оставалось после отключения питания. Можно ли чтоб это состояние записывалось в энергонезависимую память? Я думаю что новая прошивка появившись на сайте расширит круг использования датчика приближения. Спасибо!

  33. MitsuokaOroshi

    Будет ли стабильно работать сенсор от бестрансформаторного источника питания на 5V? И если да, какой посоветуете?

  34. GetChiper Автор записи

    Нужно пробовать. Только поставить обязательно пару конденсаторов керамику + электролит.

  35. MitsuokaOroshi

    Какой алгоритм обучения к пульту? Не реагирует на все комбинации.

  36. GetChiper Автор записи

    Да, глянул в статье — было неправильно описано.
    Исправил. Правильно так:
    Для изучения кнопки необходимо обесточить устройство, «придавить» ножку выхода TSOP (на схеме ножка «Out») к «земле», включить устройство, отпустить ножку «Out» и нажать выбранную кнопку пульта. Теперь датчик начнет работать в штатном режиме.

  37. MitsuokaOroshi

    Какие временные промежутки между включением питания и отпусканием «земли» и периодом на принятие команды от пульта? После обучения требуется перезапуск питания? В принципе до Вашего ответа уже догадывался о таком алгоритме. Но по прежнему ничего не меняется, более того после попытки обучения датчик стал самопроизвольно срабатывать-чего раньше не было… Были некоторые трудности при прошивке МК, терялась надежная связь между МК и ПК и отказывался программироваться CKDIV8 через выводы на плате. Решено было путем отдельного программирования МК от платы. После датчик заработал но как писал выше — не обучается и появились ложные срабатывания (все время датчик был в одних и тех же условиях и освещении) Печатка вылизана везде где можно и монтаж весь в порядке, без коротышей и обрывов. Номиналы в точности как на приведенной Вами схеме. Мистика блин…

  38. GetChiper Автор записи

    Особых промежутков нет. Просто включил, через пару секунд отпустил ножку и не спеша нажал на пульт.
    Излучатель и приемник друг от друга закрыты? Нету паразитных засветок?
    Может попробовать другой пульт изучить?

  39. MitsuokaOroshi

    Да нужно попробовать другой пульт, пробовал пока только от кондиционера китайца-что они там намутили с сигналами и частотой не ясно)
    В том то и дело что приемник и излучатель разделены и окружающие условия не менялись. Смущает отказ программироваться непосредственно с пинов на плате. 3 контроллера пересадил и все одно и тоже. Буду дальше возюкаться.

  40. GetChiper Автор записи

    От кондиционеров пульты обычно с обратной связью и скорей всего работать не будут.
    Программирование зависит от программатора. На линиях к МК стоят резисторы 300 Ом — они могут сказываться.

  41. MitsuokaOroshi

    Самое странное что было сделано 2 таких датчика и один без проблем прошился через пины а второй чудит по полной. Только что использовал пульт от телевизора Samsung. Проблемный датчик на отрез не принимает с пульта сигнал. А второй 6-7 раз принял и завис. Пришлось передергивать питание и после уже не воспринимает пульт

  42. MitsuokaOroshi

    Программатор Громова, софт Uniprof

  43. GetChiper Автор записи

    Может все таки питание грязное? Нужно попробовать от батареек.

Добавить комментарий