Датчик движения для переключения радиостанций — часть I
Привет, Хабр! Из этого текста ты поймёшь, что я стала читать «Юного радиолюбителя» и влюбилась в эту книгу и её автора, и теперь очень хочу сделать что-то похожее для тех, кто делает первые шаги с Ардуино — чтобы это было просто и понятно.Принцип эхолокации для определения расстояния до объекта положен в основу датчика движения, который мы будем использовать.В прошлом посте мы почти машинально собрали пару шилдов и перепрограммировали наш МК под одну и под другую. Это было не сложнее, чем загрузить новую песню в плеер. Таким образом, мы узнали, как в принципе можно играть с этим конструктором, и можем так играть и дальше, меняя уже готовые шилды и скетчи. Но хочется собрать что-то своё.Так что давайте попробуем почти всерьёз и без страха взглянуть в глаза схемотехнике и программированию, и самостоятельно добавить дополнительный датчик в готовую схему. За всё время текста вам придётся примерно на 10 секунд взять в руки паяльник, извините если что.
Что мы узнаем по ходу сборки нового устройства:1. Как прочитать готовую схему устройства (т. наз. принципиальную схему) и найти там то, что нам нужно.2. Какие пины есть на Ардуино и зачем. Как выбрать нужный.3. Как пинговать новый компонент с компьютера (монитор порта в IDE). Как вообще проверить, что новый компонент — рабочий.4. Мы немного познакомимся с тем, как написан один из скетчей.5. Как добавить ультразвуковой датчик к готовой схеме радио.
Задача: добавить в готовое устройство радио новый компонент: ультразвуковой датчик расстояния для того, чтобы с его помощью переключать станции.
Если у вас есть только сама Ардуино и этот датчик, вы тоже можете поучаствовать в этом проекте и почти полностью повторить все шаги, описанные в тексте. В этом случае вы остановитесь в тот момент, когда настроите интересную такую ультразвуковую линейку. Я же хочу пойти дальше и попробовать настраивать радиостанции при помощи взмаха руки. Итак.
Решение:
Как вы помните, у меня есть набор новичка, в который входит готовая плата расширения для Ардуино со всем необходимым набором компонентов, чтобы собрать радио. Собирается радио не сложнее конструктора Lego по инструкции, или даже без, т.к. большинство компонентов просто невозможно посадить на плату «неправильно» — так удобно у них расположены ножки. На начальном этапе радио выглядит так:
Что само по себе прекрасно. Недавняя горсть «деталек» заиграла у меня живой музыкой. Однако, мне этого мало и я хочу добавить сюда вот этот датчик, знакомьтесь:
Название: ультразвуковой дальномер типа HC-SR05Для гугления: 5 pin ultrasonicБиблиотека: NoBlind_UltrasonicДаташит: ТТХ в pdfОбозначение на схеме:
Для начала, немного занимательной физики.
Что нужно знать об ультразвуковых датчиках расстоянияОни работают по принципу дельфинов, летучих мышей и китов. У кого-то из этих ребят слабое зрение, кому-то в воде или ночью не особо видно, как любому нормальному человеку. Поэтому они полагаются на звук. Принцип этот — эхолокация: отправляют звук, он доходит до объекта и, отразившись от него, возвращается обратно. Т.к., грубо говоря*, скорость звука фиксированная, таким образом, можно понять, сколько до объекта, если знать, за сколько вернулся звук.
[embedded content]Этот парень может летать ночью и не врезаться в вас и другие деревья, потому что измеряет расстояние до объектов ультразвуком.=)
Человек так может узнать, как далеко гроза: сначала мы видим молнию (потому что скорость света быстрее), а потом слышим гром. Если отсчитать, сколько секунд расстояние между вспышкой и раскатом грома, и знать скорость звука — 340,29 м/с, то можно рассчитать расстояние до грозы в метрах:
Скорость = Время*РасстояниеНапример:20с*340 м/с=6800 м=6,8 км
Мы не слышим звук, который используется датчиком, так как наше ухо не слышит вибрации на частотах выше 20 кГц. Но этот звук слышат домашние животные. На этом принципе устроены отпугиватели грызунов. Чтобы не огорчать своих домашних питомцев, не тычьте им работающим датчиком в ухо, т.к. для них он работает очень громко. К счастью, он отправляет звук на дистанцию не дальше 200–400 см, т.е. животное может просто отойти от источника звука и не слушать его. Также, звук из датчика «льётся» не во все стороны, а, преимущественно, вперёд, рассеиваясь по бокам — вы это почувствуете, когда при настройке радио будете стараться подносить руку строго над самим датчиком, чтобы вашу руку лучше «видело» устройство:
В любом случае, если дома есть животные, то для стационарных проектов, возможно, вам лучше использовать другие датчики движения. Так, например, расстояние можно измерять и при помощи инфракрасных лучей, в этом случае берите ИФК датчик.
И ещё один важный момент. Вы не сможете переключать радиостанции, например, котом. Дело в том что от пушистых предметов звук отражается кое-как, а именно — он поглощается ими. Именно поэтому на репбазе стены обиты чем-нибудь мягким: это звукоизоляция, чтобы музыкантов не было слышно, пока они во всю громкость играют в студии (ну, или бьются об стену головой — это как пойдёт).
*Более точно говоря, на скорость звука влияет ещё и температура, и плотность той среды, в которой он распространяется.
Чем горячее воздух, тем быстрее распространяется звук, потому что скорость звука в газах увеличивается с повышением температуры. При повышении температуры воздуха на 1 ° скорость звука в нем увеличивается на 0,59 м/с. В нашей ситуации с грозой разброс значений скорости звука не такой уж и большой, поэтому скорость звука для нас более-менее фиксированная: зимой, когда морозы, грозы не бывает, а летом, когда +50 — +100 — не бывает, как правило, нас. =) Если вы хотите больше узнать о распространении звуковых волн, то мне, например, понравилась эта статья.
Как видно из таблицы, мы не сильно ошибёмся, если, рассчитывая расстояние до грозы, примем скорость звука за 340 м/с.Поздравляю, теперь вы эксперт в распространении звука и эхолокации! Можно двигаться дальше.
Монтаж датчика на плату расширения для Ардуино Куда подсоединять датчик? Как выбрать для него место? Есть ли вообще на нашей плате расширения свободное место? Сразу оговорюсь, что датчик можно посадить как на плату расширения, так и непосредственно на сами ножки Ардуино. А как их выбрать, мы сейчас узнаем. Итак.Возьмём схему нашего готового шилда отсюда из раздела «схемы». Вот как это выглядит:
Это называется принципиальная схема. Принципиальная потому, что здесь в принципе показано, что к чему подключено, но реального расположения компонентов на плате эта схема не отражает. Зато её легко и удобно читать.
Чтобы читать условные обозначения, вы можете воспользоваться кратким «словарём», но я рекомендую сделать это не сейчас. Сейчас, не пугайтесь, мы попробуем найти на этой схеме «место» только для одного нового датчика. Обратите внимание, внизу схемы обозначены кнопки:
В комплекте их три, К1-К3. Мы их уже «втыкали» куда нужно, когда собирали радио по инструкции. Однако на плате есть ещё 2 гнезда «под кнопки»: К4 и К5. Выглядят они просто как четыре отверстия, однако обозначенные неодинаково. Нас интересует только те из пар отверстий, которые обозначены на плате квадратным контактом.
Хозяйке на заметку:
Почему у кнопок по два контакта, а мы используем по одному?
Квадратные контакты ведут к линиям D5 и D6 Ардуино. Круглые — это «земля.» Для подключения кнопок нужны два контакта, т.к. при нажатии кнопки замыкается сигнальная линия (подтянута к питанию через резистор) и земля. При подключении датчика земля нужна только для питания. Землю мы чуть позже возьмём с разъёма Ардуино, поэтому в нашем случае вторые контакты не понадобятся .
Вот так мы дополним схему датчиком (фотошоп мэд скиллз)
Паять! Там, где на плате расширения для Aрдуино есть отверстия, мы можем добавить т. называемые штырьковые разъемы\соединители\штырьки, которые обозначаются буквами PLS-XXX, где вместо XXX нужная цифра, в зависимости от количества штырков. Продаются они в виде длинных гребёнок, от которых самостоятельно можно отделить PLS-1, PLS-2 и т.д. Выглядят они так:
Незаменимая в хозяйстве вещь! Если завелась Ардуино. Итак, контакты К4 и К5 имеют по два отверстия, значит называются PLS-2. Мы добавим по одному штырьку в квадратную их часть и таким образом откусим себе две штуки PLS-1. Теперь можно паять.
Вместо тысячи слов: вот это же место с кнопками со схемы выше, но теперь вы его видите на плате.
Пины датчика У датчика 5 пинов. Они позволят нам «задать ему вопрос», получить «ответ». Ну и подключить его к питанию. Знакомьтесь, пины датчика:
Здесь всё просто и даже предсказуемо: два контакта для питания и два для того, чтобы присылать\получать сигнал. Поэтому берём 4 провода «мама-мама» и готовим датчик к посадке на плату:
До сего момента всё шло хорошо, однако, куда подключать каждый из 4 проводов и почему?
Есть такой анекдот: один человек захотел научиться делать мёртвую петлю. Он купил авиационный журнал, где это было описано в статье, сел в самолёт и полетел. Сначала всё шло хорошо: он выполнял инструкцию, описанную в журнале и успешно вошёл в мёртвую петлю. Потом перелистнул страницу, а там: выход из мёртвой петли читайте в следующем номере.
Нам с вами повезло, что мы не учимся делать мёртвую петлю по моим статьям. Потому что сейчас я дам вам небольшой отдых. Надеюсь, до сих пор читать было понятно и интересно. Теперь у вас есть немного времени, пока я подготовлю вторую, заключительную часть поста, где мы разберёмся:
к каким пинам Ардуино подключить датчик и почему как проверить новый компонент на работоспособность какие скетчи и библиотеки нам понадобятся для того, чтобы переключать радиостанции при помощи ультразвука. Мы ответим на оставшиеся вопросы и соберём готовое устройство, а также запрограммируем его. Подписывайтесь на обновления — мне будет приятно.Прямо сейчас я предлагаю вам ответить на такой вопрос: что вам больше интересно в Ардуино — собирать компоненты или программировать устройство? Почему?
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.