Привет, Хабр! Из этого текста ты поймёшь, что я стала читать «Юного радиолюбителя» и влюбилась в эту книгу и её автора, и теперь очень хочу сделать что-то похожее для тех, кто делает первые шаги с Ардуино — чтобы это было просто и понятно.


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

Надеюсь, статья будет интересна не только новичкам, но также сэкономит время и более продвинутым пользователям, так как я постаралась собрать в одном месте информацию по ультразвуковому дальномеру, включая даташиты, ТТХ, спеки, иллюстрации и библиотеки из различных источников.

В прошлом посте мы почти машинально собрали пару шилдов и перепрограммировали наш МК под одну и под другую. Это было не сложнее, чем загрузить новую песню в плеер. Таким образом, мы узнали, как в принципе можно играть с этим конструктором, и можем так играть и дальше, меняя уже готовые шилды и скетчи. Но хочется собрать что-то своё.

Так что давайте попробуем почти всерьёз и без страха взглянуть в глаза схемотехнике и программированию, и самостоятельно добавить дополнительный датчик в готовую схему. За всё время текста вам придётся примерно на 10 секунд взять в руки паяльник, извините если что.

Что мы узнаем по ходу сборки нового устройства:
1. Как прочитать готовую схему устройства (т. наз. принципиальную схему) и найти там то, что нам нужно.
2. Какие пины есть на Ардуино и зачем. Как выбрать нужный.
3. Как пинговать новый компонент с компьютера (монитор порта в IDE). Как вообще проверить, что новый компонент — рабочий.
4. Мы немного познакомимся с тем, как написан один из скетчей.
5. Как добавить ультразвуковой датчик к готовой схеме радио.

Задача: добавить в готовое устройство радио новый компонент: ультразвуковой датчик расстояния для того, чтобы с его помощью переключать станции.

Если у вас есть только сама Ардуино и этот датчик, вы тоже можете поучаствовать в этом проекте и почти полностью повторить все шаги, описанные в тексте. В этом случае вы остановитесь в тот момент, когда настроите интересную такую ультразвуковую линейку. Я же хочу пойти дальше и попробовать настраивать радиостанции при помощи взмаха руки. Итак.

Решение:

Как вы помните, у меня есть набор новичка, в который входит готовая плата расширения для Ардуино со всем необходимым набором компонентов, чтобы собрать радио. Собирается радио не сложнее конструктора Lego по инструкции, или даже без, т.к. большинство компонентов просто невозможно посадить на плату «неправильно» — так удобно у них расположены ножки. На начальном этапе радио выглядит так:



Что само по себе прекрасно. Недавняя горсть «деталек» заиграла у меня живой музыкой. Однако, мне этого мало и я хочу добавить сюда вот этот датчик, знакомьтесь:



Название: ультразвуковой дальномер типа HC-SR05
Для гугления: 5 pin ultrasonic, ultra-sonic ranger SRF05
Библиотеки:
NoBlind_Ultrasonic, которую я использую в своём проекте
NewPing, которая, как обещает автор, отличается более высокой скоростью работы
Даташит на русском: ТТХ в pdf
Отличный даташит: спецификация на английском, наиболее полная
Wiki-сайт, даташит: кратко, на английском языке
Обозначение на схеме:


Для начала, немного занимательной физики.

Что нужно знать об ультразвуковых датчиках расстояния




Они работают по принципу дельфинов, летучих мышей и китов. У кого-то из этих ребят слабое зрение, кому-то в воде или ночью не особо видно, как любому нормальному человеку. Поэтому они полагаются на звук. Принцип этот — эхолокация: отправляют звук, он доходит до объекта и, отразившись от него, возвращается обратно. Т.к., грубо говоря*, скорость звука фиксированная, таким образом, можно понять, сколько до объекта, если знать, за сколько вернулся звук.


Этот парень может летать ночью и не врезаться в вас и другие деревья, потому что измеряет расстояние до объектов ультразвуком.=)

Человек так может узнать, как далеко гроза: сначала мы видим молнию (потому что скорость света быстрее), а потом слышим гром. Если отсчитать, сколько секунд расстояние между вспышкой и раскатом грома, и знать скорость звука — 340,29 м/с, то можно рассчитать расстояние до грозы в метрах:
Скорость = Время*Расстояние
Например:
20с*340м/с=6800м=6,8 км

Мы не слышим звук, который используется датчиком, так как наше ухо не слышит вибрации на частотах выше 20 кГц. Но этот звук слышат животные.


Диапазон слышимых для нас звуков — от 20 Гц до 20 кГц, т.е. наше ухо отсекает инфразвук и ультразвук.

На этом принципе устроены отпугиватели грызунов. Чтобы не огорчать своих домашних питомцев, не тычьте им работающим датчиком в ухо, т.к. для них он работает очень громко. К счастью, он отправляет звук на дистанцию не дальше 200-400 см, т.е. животное может просто отойти от источника звука и не слушать его. Также, звук из датчика «льётся» не во все стороны, а, преимущественно, вперёд, рассеиваясь по бокам — вы это почувствуете, когда при настройке радио будете стараться подносить руку строго над самим датчиком, чтобы вашу руку лучше «видело» устройство:



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

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

image
Мягкий пол на репетиционной базе не только собирает пыль, но и поглощает звук.

*Более точно говоря, на скорость звука влияет ещё и температура, и плотность той среды, в которой он распространяется.

Чем горячее воздух, тем быстрее распространяется звук, потому что скорость звука в газах увеличивается с повышением температуры. При повышении температуры воздуха на 1 ° скорость звука в нем увеличивается на 0,59 м/с. В нашей ситуации с грозой разброс значений скорости звука не такой уж и большой, поэтому скорость звука для нас более-менее фиксированная: зимой, когда морозы, грозы не бывает, а летом, когда +50 — +100 — не бывает, как правило, нас. =) Если вы хотите больше узнать о распространении звуковых волн, то мне, например, понравилась эта статья.


Как видно из таблицы, мы не сильно ошибёмся, если, рассчитывая расстояние до грозы, примем скорость звука за 340 м/с.


Хотя мне сложно полностью понять это видео о принципах работы непосредственно УЗ датчиков из-за множества терминов и быстрого темпа, но смотреть и слушать его очень приятно.

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

Теперь всё. Поздравляю, вы эксперт в распространении звука и эхолокации! Можно двигаться дальше.

Монтаж датчика на плату расширения для Ардуино


Куда подсоединять датчик? Как выбрать для него место? Есть ли вообще на нашей плате расширения свободное место? Сразу оговорюсь, что датчик можно посадить как на плату расширения, так и непосредственно на сами ножки Ардуино. А как их выбрать, мы сейчас узнаем. Итак.

Возьмём схему нашего готового шилда отсюда из раздела «схемы». Вот как это выглядит:



Это называется принципиальная схема. Принципиальная потому, что здесь в принципе показано, что к чему подключено, но реального расположения компонентов на плате эта схема не отражает. Зато её, по идее, легко и удобно читать. Мне изначально было неудобно, т.к. на торце у Ардуино по факту нет ни одной ножки, а на этой схеме мы видим на нём ножки D2-D6, что по началу просто рвало мне шаблон. Но если к этому привыкнуть, что схема настолько принципиальная, что упрощает всё до состояния «квадратиков» и просто отвечает на вопрос «что к чему подключено» — тогда работать с ней становится уже легче.

Чтобы читать условные обозначения, вы можете воспользоваться кратким «словарём», но я рекомендую сделать это не сейчас, тем более что на нашей схеме отражены по большей части готовые компоненты, а не детали платы, для каждой из которых существует своё условное обозначение на схеме. Сейчас, не пугайтесь, мы попробуем найти на этой схеме «место» только для одного нового датчика. Обратите внимание, внизу схемы обозначены кнопки:



В комплекте их три, К1-К3. Мы их уже «втыкали» куда нужно, когда собирали радио по инструкции. Однако на плате есть ещё 2 гнезда «под кнопки»: К4 и К5. Выглядят они просто как четыре отверстия, однако обозначенные неодинаково. Нас интересует только те из пар отверстий, которые обозначены на плате квадратным контактом.

Хозяйке на заметку:

Почему у кнопок по два контакта, а мы используем по одному?
  • Квадратные контакты ведут к линиям D5 и D6 Ардуино. Круглые – это «земля.»
  • Для подключения кнопок нужны два контакта, т.к. при нажатии кнопки замыкается сигнальная линия (подтянута к питанию через резистор) и земля.
  • При подключении датчика земля нужна только для питания. Землю мы чуть позже возьмём с разъёма Ардуино, поэтому в нашем случае вторые контакты не понадобятся
.



Вот так мы дополним схему датчиком (фотошоп мэд скиллз)

Задание: посмотрите на принципиальную схему всего устройства радио ещё раз. Сколько и каких ножек у Ардуино ещё «свободны»? Можем ли мы повесить на этот Ардуино что-то ещё в рамках данного устройства, помимо нашего ультразвукового датчика? Ждём ваши ответы в комментариях.

Паять!


Там, где на плате расширения для Aрдуино есть отверстия, мы можем добавить т. называемые штырьковые разъемы\соединители\штырьки, которые обозначаются буквами PLS-XXX, где вместо XXX нужная цифра, в зависимости от количества штырков. Продаются они в виде длинных гребёнок, от которых самостоятельно можно отделить PLS-1, PLS-2 и т.д. Выглядят они так:

image

Незаменимая в хозяйстве вещь! Если завелась Ардуино. Итак, контакты К4 и К5 имеют по два отверстия, значит называются PLS-2. Мы добавим по одному штырьку в квадратную их часть и таким образом откусим себе две штуки PLS-1. Теперь можно паять.


Вместо тысячи слов: вот это же место с кнопками со схемы выше, но теперь вы его видите на плате.

Пины датчика


У датчика 5 пинов. Они позволят нам «задать ему вопрос», получить «ответ». Ну и подключить его к питанию. Информацию, какой пин что означает, можно брать из даташитов либо на сайте магазина, где вы покупали датчик. Жаль, что ни там ни там, как правило, подробно ничего не расписывается, поэтому специально для нашей статьи — знакомьтесь, пины датчика:


МК — это микроконтроллер. Наша Ардуино — это микроконтроллер, который мы можем запрограммировать как хотим.

Что характерно, предназначение пина Oc даже на самых заморских сайтах остаётся туманно. Там так и пишут: «предназначение пина Oc ещё нужно хакнуть». «Хакнуть» мне это удалось через несколько минут гугления. В официальном даташите прописано, что этот контакт ни к чему не подключен, lol.

Здесь всё просто и даже предсказуемо: два контакта для питания и два для того, чтобы присылать\получать сигнал. Поэтому берём 4 провода «мама-мама» и готовим датчик к посадке на плату:


До сего момента всё шло хорошо, однако, куда подключать каждый из 4 проводов и почему?

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

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

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

Прямо сейчас я предлагаю вам ответить на такой вопрос: что вам больше интересно в Ардуино — собирать компоненты или программировать устройство? Почему?
Что тебе, Хабр, интереснее при работе с Ардуино?

Проголосовало 120 человек. Воздержалось 36 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Комментарии (27)


  1. ssg1712
    25.05.2015 13:58

    Позволю себе дать вам маленький совет.
    Спасибо за ваши публикации, но уж слишком они подробные. То есть тут все равно собираются те, кто даже если и не знает как работает ультразвуковой датчик и как его применить, то смогут разобраться быстро.
    Может не стоит растягивать такие истории на две статьи? История в духе: «втыкаем провода как на схеме, заливаем программу, вот вам видос, ссылки и исходники», смотрелась бы гораздо интереснее.


    1. EighthMayer
      25.05.2015 14:24
      +3

      Вот как раз после «не растянутой» версии большинство ограничится только тем, что воткнёт провода и зальёт прошивку. В лучшем случае. А скорее всего просто видос посмотрит и всё. Никто не захочет разбираться «что и зачем», если автор не начнёт изложение именно с этого.

      Я за то, чтобы появлялось как можно больше подробных статей. С технической безграмотностью надо бороться.


      1. AnastasiaPMP Автор
        25.05.2015 14:35
        +2

        Владислав, спасибо вам огромное! Вдохновляете!) Подробная «роспись» занимает немало времени, но разобраться во всех мелочах очень интересно. Рада, что это находит отклик! =)


    1. AnastasiaPMP Автор
      25.05.2015 14:25

      Добрый день, Сергей! Спасибо вам за совет, я очень рада каждому совету в комментариях. Мне приятно, что вы внимательно прочитали текст и придумали что-то, и поделились этим.

      Что касается менее подробного описания, то я уже частично объяснила это в самом начале: я начала читать замечательную советскую книгу Юный радиолюбитель, где всё так просто и подробно объясняется, что мне не только интересно читать, но мне впервые со школьных лет — ВНЕЗАПНО становится понятно: например, разница и зависимость между электромагнитным полем и электричеством. Я очень впечатлена этой книгой. Поэтому мне хотелось бы создать нечто подобное, но уже по более современным темам.

      Кроме того, я уверена, что это нужно публиковать на хабре, потому что у каждого хабрапользователя могут быть не менее любознательные чем он сам дети, и не всегда может быть время что-то объяснить, но может быть вполне искреннее желание как-то помочь. Если юному хаброиду, например, подарят похожий набор с Ардуино или деталями для пайки, как это было со мной в прошлый раз, то ему или ей может быть не всё и не сразу понятно. Мне хотелось бы восполнить этот пробел, который обычно восполняют кружки робототехники рядом с домом — к сожалению, не везде они есть.


      1. AlNinyo
        25.05.2015 16:59
        +1

        Я — почти юный хаброид, у которого недавно появилась Ардуинка :) На самом деле, в Сети довольно много написано про большинство имеющихся датчиков и модулей к Ардуино. При этом, лично для меня, некоторые трудности возникают при попытке применить эти знания отличным от описанного в статьях способом. Например, очень много есть статей, в которых описано подключение датчика температуры к народмону с помощью ESP82-66. Но мне пришлось при этом не один вечер убить на то, чтобы по этим статьям научить данную связку передавать данные на мой собственный сайт, в мою собственную базу.

        Короче, надо больше разнообразных примеров! И чем они подробнее, тем лучше для таких идиотов как я :) Но было бы прикольнее рассматривать не готовые наборы, а собственные сборки из легкодоступных и недорогих компонентов. Ибо реально проще купить на Али или Ебэй датчик за 100 р, чем его же у местных продавцов за 300+, имхо.

        Жду продолжения. Удачи!


        1. AnastasiaPMP Автор
          25.05.2015 23:43
          +1

          Владимир, какие люди в комментариях! Рада вас видеть. Спасибо за поддержку! Я слежу за вашим кружком робототехники в группе в соц. сетях, но мне этого мало. Хочу попросить у вас видео и больше постов, как ваш первый, про LED-cube. Надумаете что-нибудь описать — зовите. С вас урок по робототехнике, с меня текст =)


          1. AlNinyo
            25.05.2015 23:53

            Договорились :) Я в ближайшее время найду силы и время, после чего постараюсь написать нормальную программу для научно-инженерно-технического досугового центра, который собираемся в сентябре открыть. Учебный год закончился, теперь со временем будет попроще и, я надеюсь, это не займёт много времени. Надеюсь, что это пригодится не только мне. Ещё надеюсь, что кто-нибудь с этим мне поможет :)


            1. AnastasiaPMP Автор
              25.05.2015 23:56
              +1

              Пойдёмте в ЛС и вместе подумаем, с чем помочь. А к сентябрю мне хотелось бы побывать у вас и поучаствовать лично.


  1. alexpp
    25.05.2015 13:58
    +2

    Понимаю, что вы ввозите компоненты не как физ лицо, и в цену устройства входят различные налоги и т.п., но покупать у вас УЗ-датчик за 1180р, когда он же продается на Ебее за 100р? Хм…


    1. AnastasiaPMP Автор
      25.05.2015 14:33

      Хехехе, это очень забавный вопрос, если его адресовать мне. Я просто беру готовые компоненты и разбираюсь с их устройством и программированием. И мне ещё много нужно освоить!

      Обычно я руководствуюсь принципом — «взять готовый набор с полки в детском магазине» как это было с вот этим роботом или набором для пайки, ну и, собственно, с моим набором радио, которое я собираю сейчас. Т.е. своего рода я проверяю доступность этой технологии для детей (да и не только для детей) — насколько велика вероятность, что она окажется у кого-нибудь в качестве подарка от родителей, друзей или любимого человека? Мне нравится идея. Но, конечно, если бы это стоило дешевле, наверное, было бы не хуже =)

      Хотя! Есть замечательный набор для роботостроения от Lego. И я бы попробовала и его, но там цена за датчик в два раза выше.

      Мне кажется, для того, чтобы начать выбирать компоненты у различных поставщиков и варьируя цену, нужно, для начала хорошенько «въехать» в тему. Над чем и работаем =)


      1. alexpp
        25.05.2015 14:50
        +1

        Я полностью поддерживаю ваше начинание писать статьи в таком стиле, ведь хаб так и зовется — Электроника для начинающих. Вопрос скорее не к вам, а к менеджементу компании — ведь можно сделать компоненты доступнее для бОльшего количества радиолюбителей.


        1. AnastasiaPMP Автор
          25.05.2015 23:52

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


  1. Krey
    25.05.2015 16:17

    Не совсем понятна постановка задачи. Как именно должно происходить переключение станций? Руками над датчиками водить?


    1. AnastasiaPMP Автор
      25.05.2015 16:19

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


  1. serafims
    25.05.2015 21:38
    +1

    Вообще, нестандартное применение датчику расстояния… можно сделать псевдо-терменвокс с midi выходом…


    1. AnastasiaPMP Автор
      25.05.2015 23:36

      О да! Отличная идея. Первый раз я столкнулась с переключателем «взмаха рукой» на своих клавишах (синтезаторе) от Roland: т. наз. D-beam. Это вообще фишка Роланда. На этот датчик можно повесить любой звуковой эффект — у меня запрограммирован ритм.

      В итоге в конце композиции я делаю взмах рукой, как дирижёр, и ритм прекращается вместе с моей игрой и голосом. Обожаю эту фишку. Я ещё много могу рассказать о современных цифровых инструментах — давно хочется сделать об этом отдельный пост, потому что давно и трепетно их люблю, и не упускаю возможности попробовать всё новенькое для создания музыки. Не знаю только, насколько интересно это может быть Хабру?


  1. Alexins
    25.05.2015 23:21

    Один датчик не очень то интересно.
    Приближая руку к излучателю, вы переключаете в одну сторону. Но руку рано или поздно надо отвести от излучателя. Данное применение познавательно, но не интересно.

    Если вам так интересно, то свет и звук имеют одинаковую природу — частотные колебания. Отличие только в диапазоне частот. Поэтому, не важно, эксперимент идет со звуком или со светом.

    У человека лучше развито зрение. Возьмем фонарик в темном коридоре. Вы стоите в одном конце коридора. Партнер ходит по коридору и периодически включает фонарик так, чтобы свет его был направлен к вам в лицо. Частота света не меняется. Интенсивность света не большая. Вы можете определить удаление фонарика от вас. Если фонарик очень яркий, он будет вас ослеплять и вы не сможете определить расстояние до партнера. Это я говорю об эффекте затухания волны. Ваш мозг, зная мощность излучения источника сопоставляет затухание яркости и рассчитывает дальность до источника излучения.
    В вашем эксперименте, фонарик стоит неподвижно, рядом с вами, а партнер двигает зеркало.

    Китообразные и мыши используют «музыку». Сигналы разной частоты и модуляции позволяют строить картину препятствия.
    Не задумывались ли вы, почему у летучей мыши два уха, а рот один? Вам два уха/глаза помогают определить направление и дальность. Тем самым, ваш мозг строит трехмерную картину. Если наш мозг с изображением справляется успешно, то со звуком у нас немного хуже. Наш мозг больше отдает пространства на обработку видео сигнала. Звуку досталось гораздо меньше.

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


    1. AnastasiaPMP Автор
      25.05.2015 23:47
      +1

      Уважаемый Алексей! (Или Александр? — извините, если не правильно поняла ваше имя из вашего юзернейма, в профиле оно не указано). Это всё, конечно, хорошо, но здесь очень много информации, сказанной очень сжато и скомпоновано так, что мне пришлось несколько раз прочитать каждый абзац, чтобы его понять, и то я не до конца уверена, что поняла вас правильно.

      Например: если партнёр светит мне в лицо фонариком в коридоре, то через пару миганий я очень сильно расстроюсь и перестану различать не только дистанцию до фонарика, но и дистанцию до границы личности моего «партнёра», применив, к сожалению, физическое внушение в виде метко брошенного на луч света тапка, вероятнее всего =)

      Вообще же вы правы: да, после завершения настройки руку надо будет убрать. А радиостанция должна будет остаться. Как это сделать? Всё будет зависеть от скетча. До нового поста пока что есть время над этим подумать =)


      1. AlNinyo
        25.05.2015 23:58
        +1

        Можно добавить кнопку или второй ультразвуковой датчик. Типа: нажата кнопка — идёт настройка станций, отпущена кнопка — играет что настроилось. Или: первый ультрасоник видит руку в 5 см от себя — вторым можно настраивать станции, не видит — второй ультрасоник меняет громкость, например. Или не делает ничего. Но с громкостью тоже надо будет думать, как реализовать, чтобы, убирая руку, не получить максимальную громкость просто так.
        Удачи!


        1. AnastasiaPMP Автор
          26.05.2015 00:08

          Хорошие идеи, спасибо. Учту и подумаю. Но также оставлю вопрос открытым для новых идей — чем их больше, тем лучше =) Так, например, у меня тут набор NFC меток лежит — хочется разобраться с технологией. Может быть, придумаю что-то в этом направлении, но пока ничего конкретного не скажу, т.к. сама не знаю пока что =)


          1. foxmuldercp
            26.05.2015 12:08

            классика — включать радио во время доступности nfc метки возле считывателя и выключать когда метка пропадает


      1. Alexins
        26.05.2015 07:06
        -1

        Ваш пример с тапками очень интересный. Вы, наверное, не радиолюбитель, а заведующий складом готовой продукции на обувной фабрике. Уличные фонари, суть, тот же фонарик. Вы их тоже, тапками?
        Я вам о другом. У вас один приемник излучения. Когда приемников больше, можно следить за положением объекта. Сейчас вы следите за дистанцией.
        Поставте чашку чая рядом с излучателем, а потом, делайте магические пасы руками. Ваш конструктор вас не увидит.

        Алексей


  1. Hellsy22
    26.05.2015 00:17
    +2

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

    Выяснилось, что ультразвуковой датчик несет в себе боль и ужас.
    Ужас, от неточных измерений, сбоев самого датчика, случайных срабатываниях и невысокой скорости распространения звука.
    Боль от осознания, что нужно делать много измерений и брать медианное, да еще и подбирать паузу между измерениями так, чтобы эхо не издевалось. Больше измерений — выше защита от случайностей, но и больше время на один замер.

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

    1. Библиотека NewPing умеет делать ping_median указанное количество раз. Сперва я использовал рекомендованные пять измерений, но через некоторое время перешел на семь. Причина — намного выше стабильность измерений.

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

    3. Максимальная дистанция была выбрана аж два метра (при рабочих значениях 5-70 см). Этот параметр указывает библиотеке сколько ждать возврата сигнала. При маленьких значениях датчик успевает вернуть 0, а на следующем запросе поймать отражение своего первого сигнала.

    4. Пришлось научиться правильно убирать руку. Потому как при небольших расстояниях угловое смещение на 10см. заметно влияет на расстояние.


  1. Iv38
    26.05.2015 03:47

    Напомню про проект другого хабраюзера с похожим способом управления. Только там использовался ИК-дальномер, а не ультразвуковой.

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


    1. Iv38
      26.05.2015 04:01
      +1

      Кстати, интересно, а инфракрасный дальномер позволяет управлять с помощью кота?


  1. DarkByte
    26.05.2015 16:31

    Мы не слышим звук, который используется датчиком, так как наше ухо не слышит вибрации на частотах выше 20 кГц. Но этот звук слышат животные.

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


    1. Iv38
      26.05.2015 17:32

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