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

Автор: | 10.04.2013

 

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

 

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

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

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

 

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

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

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

 

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

 

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

094-Proximity_scheme.zip (4139 Загрузок)

 

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

 

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

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

 

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

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

094-main.zip (5808 Загрузок)
094-Fuse.png (6256 Загрузок)

Напоминаю:Для 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 (5130 Загрузок)

 

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

(Visited 49 159 times, 4 visits today)

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

  1. Кирилл

    Здравствуйте! Отличная конструкция. Только дальность для меня маловата, поставил два инфракрасных диода — расстояние 40 См и то с помехами. Как можно усилить? Делал усилитель на 1 транзисторе — не катит. Что можно предприянть?

  2. Владимир

    Спасибо, ещё раз. Уже собрал по другой схеме- нужно было заменить подводную кнопку вкл/выкл для бассейна.

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

    Привет!
    Нет, такой датчик не получится использовать. Проблема в том, что он не имеет никаких средств автоматического подавления помех и настройки уровня.

  4. Владимир

    Здравствуйте. Можно ли использовать в Вашей схеме датчик TCRT5000?
    Спасибо.

  5. goodspeedmen

    Когда поставил перемычку снижения скорости программирования менее 1.5 мгц он их увидел. Видимо это не очень хорошо…

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

    Бывало у меня такое, что именно тини13 одним программатором не шились, а вторым все было нормально.
    Хорошо бы попробовать другой программатор.

  7. goodspeedmen

    Есть ли какие то нюансы в прошивке Tini13a? Купил 10 шт в Китае видимо дохлые, на программатор не отзываются…

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

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

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

    По поводу того, как работать с сигналами от устройств — это вы смотрите как вам удобно — они будут срабатывать каждый в своей зоне.

    И еще, прежде чем делать всю систему целяком — соберите одно устройство и попробуйте его работу.

  9. Александр

    Спасибо за ответ. Нет, пир датчик не подходит. Да можно двигаться когда сидишь, но когда пир датчик не уловит движение, допустим человек совсем не двигался, то получится светомузыка.
    Вы не ответили на некоторые вопросы по поводу tsop31238 подойдет или нет. И еще на один вопрос, что в этом случае отключать ик светодиод или tsop, если планируется использовать одно событие (передать управляющий сигнал на реле с лампочкой) из разных углов и можно ли в параллель вместо нескольких устройств ик светодиоды/tsop’ы разнести по углам или в моем случае нужно соединять именно устройства?

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

    Привет!
    Судя по рисунку — как-то сложно все планируется делать…
    Как по мне, пир датчик самое оно. Да, он улавливает только движение, но вряд ли можно на кухне сидеть так неподвижно некоторое время что прям датчик не уловит движения. Можно настроить пир датчик почувствительней, время отключения выставить побольше и все должно работать.

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

  11. Александр

    Автор здравствуйте. Ваше устройство очень практичное. Подобное можно сделать на arduino nano+ультразвуковой датчик. У меня подобное уже есть, но ультразвуковой датчик сам по себе большой. Светодиоды же как я понял можно в плату не впаивать, а закрепить где нужно и подвести проводками к спрятанной плате.
    3 Вопроса у меня возникло:
    1. На какое максимальное расстояние можно настроить устройство?
    2. Возможно ли, чтобы выполнялось несколько условий как на рисунке (вид сверху) https://ibb.co/dM4hVpP ? Нужно включать свет при появлении препятствия (человека) в кухне, т.е. все устройства должы быть подключены к одному реле. В принципе устройств может быть и больше (или ик светодиодов, если их можно подключить параллельно и разнести в разные углы на длинных проводах), чтобы захватить как можно каждую область кухни. Если вариант возможен, то что нужно оставлять на одном устройстве TSOP или светодиод?
    3. Знаю не по наслышке, что TSOP 31238 превосходит многие TSOP, такой стоит у меня и на arm box (на ик приемнике в виде арудино) — принимает из любого угла, главное не из-под стола с препядствиями (стульями). Можно ли его использовать вместо Вашего?
    Сразу оговорюсь, есть pir датчик, но у него реагирование только на движение хоть он и регистрирует объект излучающий цвет в инфракрасном диапазоне.

  12. vitalik.dog1958

    Да так я и сделаю, спасибо.

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

    Я имею в виду что управление от пульта реализовать посредством одного МК (у меня много вариантов таких устройств в блоге, а на форуме в модификациях еще больше), а контроль присутствия оставить на тини13.

  14. vitalik.dog1958

    Доброго времени суток уважаемый GetChipe!
    Спасибо за ответ. Да хотелось бы все это в кучу на одно МК ATiny13
    А такой вариант возможен? :
    Cделать триггер от пульта 3 и 7 пин оставил пин 6 по назначению.
    Не исключая задержку на смену уровней на пин 5 с единицы на ноль 10 сек после выхода барьера с уровня ноль
    Если нет то собрать на разных МК — как это?
    Спасибо

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

    ATiny13 очень маленькая, она не вместит в себя всего этого функционала. Может имеет смысл собрать все это на разных МК?

  16. vitalik.dog1958

    А так же задержку на смену уровней с единицы на ноль 10 сек после выхода барьера с уровня ноль.

  17. vitalik.dog1958

    Т.е. пин 3,6,7 с пульта.

  18. vitalik.dog1958

    Добрый вечер GetChiper ! Спасибо за ответ. Основная функция это датчик приближения.
    Ну и что бы подключить еще нагрузки с запоминанием после снятия питания мне нужно задействовать все имеющиеся пины т. е. 3, 6, 7. А 5 пин оставить по назначению, на котором появляется единица при отсутствии барьера и ноль при наличия барьера. А так же задержку на смену уровней с единицы на ноль
    10 сек. Ну и обучение как в посте 076 (Управление нагрузками при помощи IR-пульта (ATtiny13). Если Вас не затруднит. Я буду очень Вам уважаемый GetChiper благодарен. Да и сайт Ваш очень классный!!!!!. Спасибо, с уважением

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

    Что-то я не понял. Нужно просто управление с пульта и все? Функция датчика приближения не нужна?

  20. vitalik.dog1958

    Добрый день GetChiper ! Просмотрел я Ваши ссылки там ведется только разговор о третьем контакте.
    А что бы пины 3 и 7 с запоминанием и только от пульта нет и ли я не нашел ? И еще сделайте пожалуйста в этой же прошивке 10 сек. задержку откл. на 5 ножке.
    С уважением. Спасибо.

  21. vitalik.dog1958

    Спасибо ! Наверное не все модификации просмотрел.

  22. vitalik.dog1958

    С запоминанием после откл. питания.

  23. vitalik.dog1958

    Доброго времени суток уважаемый автор. Очень красиво и универсально, просто класс !!!
    Есть небольшая просьба.
    Не могли бы Вы подправить немного прошивку для моих нужд, задействовав пины 3 и 7 ТОЛЬКО ОТ ПУЛЬТА для триггерного режима с соответствующим обучением от пульта.
    С уважением

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

    Привет!
    Переменный резистор «Чувствительность» как раз для этого.

  25. Радченко

    Добрый день. Можно ли изменить дистанцию (уменьшить) поиска, — стоять должен у стены.

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

    Привет!
    Ну для начала — странные напряжения на статусе и триггере. там должно быть или ноль или что-то близкое к питанию. Смотрите что там на плате может быть не так

    Во, вторых — не ставьте постоянный резистор на излучающий светодиод — сложно предугадать что там нужно по номиналу, так как вариантов ИК пары излучатель-приемник может быть много

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

  27. Анастас

    Обязателен ли светофильтр? тестировал устройство в малоосвещенном месте

  28. Анастас

    Здравствуйте еще раз! Собрал ваше устройство. Возникли проблемы. Подключил питание 5 вольт. Напряжение на тригере 0.7 В, на статусе 1.8 В-> Диоды не загораются. При приставленнии препятствия напряжения на тригере никак не меняется. вместо подстроечного резистора поставил резистор на 300 ом. Прошивал на программаторе USB asp(AVRDUDE приложение). Не подскажете что можно сделать или изменить? ИК светодиод использовал с длиной волны 940нм

  29. selest

    Спасибо большое буду пробовать.

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

    Запросто!
    Небольшие вариации ИК-пары, будут сказываться только на чувствительности (запас который в схеме достаточно большой для этого).

  31. selest

    Спасибо за ответ. Ещё вопрос, в продаже в основном светодиоды 940nm, можно ли их использовать вместо положенного 950nm?

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

    Привет!
    Ничего. Прошивка и так будет с ним работать.

  33. selest

    Добрый день. Подскажите что нужно поменять в прошивке для использования tsop4838?

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

    Подойдет.

  35. Анастас

    Здравствуйте! Можно пожалуйста исходный код программы? На каком языке была написана прошивка?

  36. pbvf

    все PIR- датчики работают какое-то время после выхода объекта из зоны контроля, или выключаются когда ещё человек внутри помещения . Опять же чуйка не очень, и один датчик не может полноценно сканировать помещение, да и большая задержка при входе в зону контроля. есть схемы на счетчиках, но это при одном входе/выходе. ладно, есть тут у меня одна задумка… сегодня соберу ваши датчики( платы сделал вчера) , и буду мутить. спс за участие. А если чего надо будет сменить в прошивке , надеюсь не откажете

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

    Как-то путано объяснили. Плохо понял. Если есть ПИР-датчик, контролирующий людей в помещении, зачем контролировать входа отдельно? Или входа в помещение — это длинные коридоры?

  38. pbvf

    это все не то. попробую описать алгоритм всей работы, так как вы умеете писать программы , в отличии от меня :-). так вот есть помещение с двумя или тремя входами (и или выходами). каждый вход/выход контролируется IR-блоком типа вашего, а всё помещение контролирует PIR-датчик — свет , после того, когда кто-либо находится в нём будет включен , и выключится только после команды PIR-датчика о том, что все объекты покинули данное помещение по сигналу какого-либо из IR-блоков. Всё это и обрабатывает микроконтроллер ( не обязательно тинька13 , но лучше AVR Спасибо!

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

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

  40. pbvf

    Опишу ситуацию подробнее: есть помещение с двумя входами. При входе с любой стороны должна включаться лампа( стоИт датчик движения и крепко тормозит) При выходе из комнаты сразу-же выключается.
    Если объект в данном помещении и кто-то другой пересёк любой из входов, все равно свет горит, и потухнет только при отсутствии людей в данном помещении…как бы не всё так просто

  41. pbvf

    Здравствуйте! подскажите, как коммутировать лампу освещения в проходном коридоре с помощью данного устройства

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

    Привет!
    Переделывать ничего не нужно. Устройство и так может работать как барьер.
    Возможны 2 варианта:
    1 — разнести TSOP и ИК-светодиод экранированным проводом
    2 — использовать 2 устройства один с TSOP другой с ИК-светодиодом.

  43. Zur

    доброго времени суток…
    интересует можно переделат программу так что ваш деваис рабртал как инфракрасный барьер…
    передатчик —>>>—>>>—>>> премник.
    расстояние между датчикамы 1-2 метра…
    заранее благодарен…

  44. admin Автор записи

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

  45. Yuriy-Hackit

    Здравствуйте. Не могли бы помочь советом в таком вопросе: есть стрелочный механический прибор. Красная стрелка на белом фоне, она под стеклом, крутится по кругу. Необходимо оптическим способом определять, что стрелка прошла круг. Камеру для этого использовать нецелесообразно. Расстояние от стекла до стрелки 4-8 мм (разные немного приборы). Пробовал использовать ИК фототранзистор и светодиод на отражение. Система работает, но довольно сильно влияет внешний свет. А вот если использовать TSOP можно ли будет настроить на такое расстояние? или может мне лучше придумать какую либо модуляцию при использовании ИК фототранзистора и светодиода?

  46. admin Автор записи

    1 эта последовательность записывается в еепром при первом пуске программы.
    2 данные не имеют значение — там череда ноликов и единичек.
    3 при отладке подпрограмму прерывания нужно вызвать принудительно (прописав переход на нее где-то в программе)

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