Найти тему
VoltStrimLab

Самодельный датчик из микрофона

Привет, друзья!

Продолжаем цикл статей про микроконтроллеры Arduino и программу XOD IDE.

Авторский коллаж
Авторский коллаж

Подключение датчиков для управления исполнительными механизмами – одно из интереснейших занятий. Для электронных самоделок в последнее время мне всё больше и больше симпатизирует Raspberry Pi. А для отладки самих датчиков - больше подходят платы Arduino, с их защитой от неправильных подключений, и на мой взгляд - это самый оптимальный вариант. Не будем сбрасывать со счетов тот факт, что Arduino, стоит гораздо дешевле Raspberry Pi, как и то, что для выполнения мелких задач Arduino явно вне конкуренции, взять хотя бы одну из моих последних самоделок:

Автоматизируем подсветку рассады или проект "Микропарник"

Внимание! Статья имеет ознакомительный характер и ни как не рекомендательный. Для выполнения подобных работ требуются соблюдение правил техники безопасности и электробезопасности.

В этот раз решил сделать самодельный датчик из такого микрофона.

Микрофон, найденный в закромах
Микрофон, найденный в закромах

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

В качестве примера

Таким датчиком можно заменить монтаж проходного выключателя в длинном коридоре, а также этот датчик будет удобен в местах, где включение вручную сопряжено с какими-то неудобствами. Сами понимаете, установка проходного выключателя, о котором я писал здесь, ведёт к определенным неудобствам:

  • Установка дополнительного выключателя
  • Прокладка дополнительных проводов
  • Заделка проводов в стены
  • и др.
Подключение проходного выключателя
Подключение проходного выключателя

Применение Ардуино в данной ситуации решает все выше перечисленные проблемы дешево и сердито.

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

Кто-то скажет, что можно купить микрофон, специально разработанный для Ардуино, но не всё же покупать в Китае, что-то можно сделать и самому, успешно "обкатав", это даже интереснее.

Подключил микрофон к плате Arduino по следующей схеме.

Схема подключения микрофона к Arduino
Схема подключения микрофона к Arduino

На данном этапе это всего лишь эксперимент, поэтому собирал и опробовал схему на макетной плате в таком варианте.

Тестирование с помощью Arduino Uno на макетной плате
Тестирование с помощью Arduino Uno на макетной плате

Светодиод использовал по классической схеме с резистором на 220 Ом для индикации процесса включения и отключения алгоритма.

Для отладки и настройки использовал программу XOD IDE. Ознакомиться с документацией программы и скачать можно на официальном сайте программы, здесь.

Ознакомиться с другими моими проектами, сделанные с помощью программы XOD IDE, можно на странице Навигатор по каналу. Рекомендую прочитать, особенно будет интересно тем, кто в первый раз услышал об этой программе.

Для отладки датчика использовал ноду analog-sensor и конечно же ноду wath.

Подключение микрофона с помощью ноды analog-sensor
Подключение микрофона с помощью ноды analog-sensor

Чтобы добавить новую ноду, необходимо дважды кликнуть в пустом месте патча и в появившейся строке поиска вписать название нода, например analog-sensor. Подробнее читайте здесь.

Добавляем ноду
Добавляем ноду

Запустил программу XOD IDE в режиме отладки, датчик показывает данные 0,39 и при громком звуке или хлопке данные увеличиваются до 0,40, но этого мало, так как это слишком небольшой диапазон для настройки сигнала исполнительного механизма.

Поэтому я добавил ноду multiply, ноду умножения.

Данные умножения
Данные умножения

В инспекторе ноды multiply установил параметр умножения на 1000, теперь показания с датчика стали более ёмкими и их можно как-то контролировать.

Для контроля порога громкости, т.е. пиковых значений, применил ноду less и конечно же добавил ноду led для индикации срабатываний.

Почти готовый алгоритм
Почти готовый алгоритм

В инспекторе ноды less установил значение 395, такое значение более-менее оптимальное и не надо орать.

Инспектор ноды less
Инспектор ноды less

Теперь при достижения значения на выхода ноды multiply выше 395 светодиод загорается и тут же гаснет, вообщем, работает как индикатор.

Но мне то хочется фиксировать включение, поэтому добавил ноду-триггер flip-flop.

Готовая программы датчика включения освещения
Готовая программы датчика включения освещения

Но и это ещё не всё, при произношении длинной голосовой команды даже с триггером flip-flop, светодиод успевает включиться, выключиться и снова включиться причём очень быстро, что даже не заметно для глаза, поэтому пришлось поставить защиту от дребезга в "лице" ноды debounce(boolean).

Программа "Акустический датчик"
Программа "Акустический датчик"

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

Скачать готовый патч можно по ссылке с Яндекс Диск

https://yadi.sk/d/Bdcx-EiUw8sqow

P.S.: Заменив ноду led на ноду relay получаем управление над приборами напряжением 220 Вольт.

На этом сегодня всё, надеюсь было интересно.

Вот ссылки, где можно приобрести выгодно и с быстрой доставкой платы Arduino UNO, но лучше купить Стартовый комплект для Arduino UNO, в котором уже находятся все компоненты для начального моделирования и программирования.

До новых встреч.

Если хотите больше статей о программировании в программе XOD IDE, рекомендую перейти по ссылке в меню навигатора канала:

Страница навигации

Экспериментируйте!!!

Спасибо, что дочитали статью до конца.

Надеюсь статья была вам полезна и интересна.

Понравилась статья, ставьте палец вверх.

Хотите следить за новостями, подписывайтесь на наш канал.

Впереди ещё много интересного!

Вы можете помочь проекту в развитии: