Как сделать датчик звука
Простой аналоговый датчик звука для Ардуино своими руками
Теперь давайте рассмотрим схему датчика.
Кроме операционного усилителя нам понадобится еще несколько легкодоступных компонентов.
Самый обычный микрофон. Если полярность микрофона не обозначена, то достаточно взглянуть на его контакты. Минусовой всегда уходит на корпус, а в схеме, соответственно, соединяется с «землей».
В моем случае в качестве «золотой середины» применен резистор на 620 кОм.
Но в идеале нужно использовать переменный резистор соответствующего номинала. При чем, как показали опыты больший номинал лишь повышает чувствительность устройства, но при этом появляется больше «шумов».
Сборка завершена. Схему установил в корпусе, который изготовил из небольшого обрезка пластиковой трубки.
Переходим к тестированию устройства. Я подключу его к плате Arduino UNO. Переходим в среду разработки Ардуино и открываем пример AnalogReadSerial в разделе Basics.
Перед загрузкой в плату изменяем задержку на 50 миллисекунд и вгружаем. После этого делаем пробный хлопок и следим за показаниями. В момент хлопка они подскакивают, постарайтесь примерно запомнить это значение и вернитесь к скетчу.
В скетч добавляем пару строк.
Вместо «Х» вставляете то самое значение, загружаете и снова хлопаете. Так продолжайте до тех пор, пока не подберете оптимальное значение срабатывания. При завышенном значении условие будет выполняться лишь при хлопке на очень близком расстоянии. При заниженном значении условие будет выполняться при малейшем шуме или звуке шагов.
Датчик звука для автоматического включения света
Датчик звука для включения света в повседневном обиходе появился сравнительно недавно и сразу же завоевал массовое доверие потребителей. Его основное назначение — автоматическое зажигание светильника в ответ на шум шагов, хлопка в ладоши, голоса и так далее. Он обеспечивает удобную, без необходимости использования механического переключателя, работу системы освещения. Разберем основные особенности шумового детектора, его разновидности, сферу применения и прочие важные аспекты.
Устройство и принцип действия
Датчик звука для автоматического включения света представляет собой микросхему, главные компоненты которой — аудиоприемник, усилитель, электрореле и контроллер. Работает устройство по следующему принципу:
Современные детекторы рассматриваемого типа обладают достаточно большой чувствительностью. Поэтому чтобы исключить ложное срабатывание в конкретном месте применения, необходимо выполнить правильную настройку по данному параметру.
Для этой цели на корпусе прибора есть два регулятора. Один из них устанавливает порог воспринимаемого звука. Другой программирует время работы светильника после включения. Как правило, предела в 50 дБ (что соответствует хлопку в ладоши) вполне хватает внутри помещения.
Разновидности
Акустические датчики включения света доступны рядовому потребителю в следующих модификациях:
Каждая модификация имеет свои особенности, технические характеристики и нюансы эксплуатации. Это нужно учитывать при выборе прибора для конкретного места применения.
Сфера применения
Акустический датчик для работы светильника применяется в следующих областях:
При монтаже звуковых сенсоров в домашней обстановке достигается сразу несколько целей — повышение бытового комфорта, экономия электроэнергии и увеличение срока годности осветительных приборов.
Руководство к выбору
Чтобы правильно выбрать звуковой детектор включения и выключения света, рекомендуется соблюдать следующий ряд правил:
При выборе устройства не последнее место в списке критериев первостепенной важности занимает производитель. Во многом от этого будет зависеть и долговечность, и качество его работы.
Где купить
Приобрести датчики звука можно как в специализированном магазине, так и онлайн в Интернет-магазине. Во втором случае, особого внимания заслуживает бюджетный вариант приобретения изделий на сайте Алиэкспресс. Для некоторых товаров есть вариант отгрузки со склада в РФ, их можно получить максимально быстро, для этого при заказе выберите «Доставка из Российской Федерации»:
Достоинства и недостатки
Главные плюсы датчика шума для включения света:
Из недостатков работы оборудования выделяется некорректная работа в условии наличия фоновых звуков, включая ложные срабатывания или полностью неработающее состояние. Подобные минусы чаще всего проявляются в очень шумной обстановке или у дешевых моделей.
Как сделать своими руками
Далеко не у всех есть возможность купить заводской звуковой детектор включения света. Однако при желании, наличии опыта в сборке радиотехнических схем и доступе к расходным материалам, его можно вполне быстро изготовить своими руками. Рассмотрим самые доступные варианты.
На акустическом реле и триггере
Наиболее простая схема на одном транзисторе. Она включает два акустических реле и триггер.
Акустический компонент
В качестве транзистора подойдет доступный МП 39 на германии. Его легко найти в старой технике. Далее потребуется аудиоприемник. Это может быть, к примеру, микрофон старого дискового телефона.
Преимущество такого старинного угольного приемника звука в том, что он обладает высоким порогом чувствительности, но при этом имеет минимальную пропускную частоту. Это значит, что посторонние звуковые колебания попросту не будут улавливаться собираемым прибором.
Для питания схемы также понадобится трансформатор постоянного тока на 9–12 вольт. Собирать и крепить все компоненты лучше на макетной или печатной плате. В собранном виде она будет функционировать следующим образом:
Если звука нет, подача переменного тока исчезает и транзистор пребывает в полуоткрытой форме.
Триггер
Триггер выполняет функцию выключателя по следующему алгоритму:
При подборе компонентов схемы, выбирать лучше версии, способные выдерживать 220 В. Это правило касается диодов и конденсатора C1.
Функционирование схемы происходит по следующему алгоритму:
Если требуется работа лишь одной лампочки, вместо Л2 в схеме нужно установить резистор и конденсатор.
Три транзистора
Для более опытных пользователей доступно изготовление самодельного датчика по несколько усложненной схеме. Ее особенность в том, что она сама по первому звуковому сигналу как включает, так и выключает освещение — по второму.
В цепи применяются транзисторы типа КТ818 и КТ315. Достать их можно в любом магазине радиодеталей. Дальность действия устройства на них достигает 2-х метров — при условии питания 9-вольтовым напряжением. Однако при его повышении или понижении чувствительность повышается или снижается, соответственно.
В качестве аудиоприемника используется электродинамический микрофон. При этом реле и конденсатор должны быть рассчитаны на 220 вольт. Сборка осуществляется также, как и в выше описанной версии, на плате — печатного или макетного типа. Для подачи питания применяется блок питания на 9–15 вольт.
С микросхемами
Это наиболее сложный, хотя и интересный для опытных радиолюбителей вариант схемы датчика. Основан он на микросхеме. Два существенных отличия от выше рассмотренных версий — это отсутствие внешнего блока питания и установка тиристора вместо электромагнитного реле.
Преимущество
В отличие от реле тиристор не имеет ограничений по числу срабатываний. Кроме того, он имеет существенно меньшие размеры. Значит, прибор получится более компактным, легким и универсальным. Дальность действия устройства сильнее — до 6 метров. При этом оптимальная мощность ламп — 60–70 ватт. К тому же оборудование предохраняется от фоновых помех.
Как повысить мощность
Как видно, детектор рассчитан на светильники средней силы. Если для домашних нужд этого вполне достаточно, на производстве, в мастерской и общественном месте этого будет мало. Поэтому при использовании светоисточников повышенной мощности диоды с VD2 по VD5, а также сам тиристор VS1 требуется установить на радиаторы. Это снизит их нагрев и позволит обслуживать более мощные светильники.
При этом радиаторы должны иметь электроизоляцию! Помимо этого, места контактирования их с другими компонентами схемы должны быть защищены. Это обеспечит наилучшую электропроводность и качество работы прибора.
Работа схемы
В изначальных версиях схемы реле срабатывало на голос человека или иной звуковой сигнал, например, хлопки. Однако удобнее, когда прибор реагирует на заданный уровень звука. Чтобы обеспечить ему такую функцию, потребуется несколько изменить схему реле:
Чтобы облегчить труд по настройке, можно воспользоваться известной закономерностью для расчета: T=C×R. Где Т — время задержки в сек., С — емкость конденсатора в Ф, R — сопротивление в Ом, × — знак умножения. Например, чтобы подсчитать требуемое сопротивление резистора для заданного времени задержки, необходимо выполнить следующие расчеты по формуле R=T/C.
Допустим Т = 90 сек., а емкость конденсатора 200 мкФ (или 200×10−6), тогда, согласно формуле, — 90/200×10−6 =450000 Ом или 450 кОм.
Заключение
Датчик звука автоматически включает и выключает свет в помещении. Схема прибора включает микрофон, усилитель и реле. Как только аудиоприемник улавливает звук нужной силы, возникает сигнал, замыкающий реле. В результате ток начинает поступать в цепь. Лампочка зажигается. Далее в зависимости от настроек светильник гаснет через определенное время, если не возникает новый звук.
Видео по теме
Подключение датчика звука к Ардуино
Как подключить датчик звука к Arduino ► разберем скетч для включения света от хлопка в ладоши и получения показаний датчика на мониторе порта Ардуино IDE.
Рассмотрим аналоговый датчик звука для Ардуино. Расскажем, как подключить датчик звука к микроконтроллеру Arduino, разберем программу для автоматического включения света от хлопка в ладоши и получения показаний датчика звука на последовательном мониторе порта Arduino IDE. Рассмотрим использование в программе тип данных boolean, который чато применяется в языке C++.
Датчик звука (микрофон) для Arduino
Состоит датчик из платы (смотри картинку ниже) на котором смонтированы порты подключения к Arduino Nano, усилитель звука, подстроечный резистор и электронный микрофон, чувствительный к звуку, приходящему во всех направлениях. Регулятором чувствительности (переменным резистором) можно настраивать чувствительность микрофона и выбирать от какого уровня шума будет срабатывать датчик.
Датчик звука Arduino для слежения за уровнем шума
Данная плата расширения для Arduino позволяет перевести звуковые колебания в цифровой сигнал. При колебании мембраны в микрофоне от звуковых волн, изменяется емкость его конденсатора, вследствие чего проявляется изменение напряжения на выходах датчика звука, соответствующее звуковому сигналу. Сенсор слева на картинке может отправлять цифровой и аналоговый сигнал.
Как подключить датчик звука к Arduino
Для этого занятия нам потребуется:
Датчик звука для Ардуино имеет на плате подписанные выходы (обозначение у каждого производителя может отличаться), но проблем с подключением датчика к Ардуино возникнуть не должно. Питание датчика производится от 5V, выход (OUT, S или AO) подключается к любому аналоговому входу на Arduino Uno, а выход DO к Pin 2, если требуется получать цифровой сигнал на Ардуино с датчика микрофона.
Фото. Как подключить датчик звука к Arduino UNO
Чтобы сделать своими руками светильник, который будет включаться по хлопку в ладоши необходимо собрать электрическую схему из следующих элементов: светодиод с резистором, плата Arduino и датчик звука для включения света своими руками. Светодиод можно подключить к любому выходу, в скетче мы использовали Pin 11. После сборки схемы, подключите Ардуино к компьютеру и загрузите скетч.
Подключаем датчик звука к Arduino
Физическое окружение человека все время «умнеет», подстраиваясь под запросы и требования хозяина. Речь, конечно же идет об автоматизированных и роботизированных вещах, облегчающих труд и выполняющих все те функции, которые существу разумному делать слишком долго, тяжело или нудно. Большая часть техники такого рода работает с управлением на основе микроконтроллеров, которые в свою очередь, можно назвать миниатюрными компьютерами, ориентированными на контроль другого, более простого оборудования.
Одним из наиболее распространенных на текущий момент, за счет удобства применения и ширины возможностей, можно назвать Arduino, недостатков у которого попросту не существует в качестве системы управления и DIY-проектов, и профессиональной техникой, используемой на крупных и серьезных производствах.
Единственный вопрос становящийся перед проектировщиками «умных» устройств, использующих микроконтроллеры – легкое ими управление человеком, то есть обеспечение простого интерфейса контроля. Одно из наиболее логичных из приходящих на ум решений – человеческий голос, отдавая команды, которыми пользователь абсолютно вербальным образом сможет управлять работой логического выключателя, конечно в рамках заложенной в того программы. Только сразу встает проблема получения голосовых последовательностей устройством. Что ж, есть и решение – платы захвата звука, среди которых в разрезе технологии Arduino сразу вспоминаются KY-037 и KY-038, унифицированные и отличающиеся только размером микрофона.
Конечно, не стоит ждать от них записи MP3 или его полнофункциональной обработки. Но в нише восприятия голосовых команд названые платы-дополнения имеют полное право на существование.
Характеристики
Характеристики у обоих устройств KY-037 и KY-038 достаточно скромные, и отличающихся, как было сказано ранее, между собой только размером микрофона.
Принципиальная схема и выводы устройства:
Сразу хочется заметить, что названые детекторы, регистрируют только достаточно громкие звуки и не очень чувствительны к их переходным состояниям, к примеру, используемым в словах или фразах. То есть, сделать выключатель или активатор реагирующий на хлопок и свист гораздо проще, чем запрограммировать систему распознавания голосовых команд с применением KY-037 или KY-038. Некоторые идеи по осуществлению требуемой функциональности будут представлены далее.
Обратите внимание на «регулятор чувствительности» отмеченный на фото платы. С его помощью можно варьировать значение характеристики, улучшая «слух» детектора, в установленных пределах.
Простые схемы использования
Чтобы продемонстрировать работу датчиков звука с Arduino можно собрать простую схему:
Резистор используемый в ней, берется номиналом в 220 Ом. Основная функциональность выражается в зажигании светодиода при обнаружении громких звуков и гашения его в случае тишины. Скетч:
// Диапазон минимальных и максимальных показателей, устанавливается
// для определения значения аналогового сигнала в тишине у платы
// захвата звука, все что будет отличаться служит указателем
// наличия изменений звукового фона. Определяется опытным путем.
const int SilenceMin = 625;
const int SilenceMax = 637;
// Задание портов IN_DIG цифровой вход с KY-037/038,
// IN_ANALOG аналоговый с нее же и OUT_LED пин управляющий светодиодом
const int OUT_LED = 9;
const int IN_ANALOG = A3;
const int IN_DIG = 1;
void setup() <
pinMode(OUT_LED, OUTPUT);
pinMode(IN_ANALOG, INPUT);
pinMode(IN_DIG, INPUT);
>
void loop() <
// Примечание от составителя: если использовать нижеприведенную
// конструкцию, светодиод будет включаться при любом изменении
// звукового фона. Для определения наличия именно команды
// стоит изменить строку на if (AnalogRead(IN_ANALOG) > SilenceMax) <
if (AnalogRead(IN_ANALOG) > SilenceMax || AnalogRead(IN_ANALOG)
Изменяя время задержки, между включением и гашением светодиода, а также пробным путем выведя значения «тишины» SilenceMax и SilenceMin, можно добиться работы приведенной схемы в роли детектора движения по звуку. Конечно, качество определения у него будет низкое, но вполне позволяющее применять конструкцию в цепях управления освещением темных мест. Достаточно добавить фоторезистор для определения текущего уровня видимости, в роли которого можно использовать специальную плату Arduino или обычный радиоэлектронный компонент, подключаемый через делитель.
Как видно по схеме, в ней используются два резистора – R1 на 10 кОм и R2 220 Ом. Светодиод LED в финальном варианте можно заменить на релейную группу, для подачи питания на «взрослые» лампы 220В. Скетч, управляющий всем перечисленным хозяйством:
#DEFINE D1 1
#DEFINE D3 3
#DEFINE A2 2
#DEFINE A4 4
// Характеристики «тишины»
const int SilenceMin = 625;
const int SilenceMax = 637;
// Задание портов: IN_DIG цифровой вход с KY-037/038, IN_ANALOG аналоговый с нее же
// OUT_LED пин управляющий светодиодом, IN_FLASH сигнал от фоторезистора.
const int IN_DIG = D1;
const int OUT_LED = D3;
const int IN_LIGHT = A2;
const int IN_ANALOG = A4;
void setup() <
pinMode(OUT_LED, OUTPUT);
pinMode(IN_ANALOG, INPUT);
pinMode(IN_DIG, INPUT);
pinMode(IN_LIGHT, INPUT);
>
void loop() <
if ( DigitalRead(IN_DIG) == HIGH && DigitalRead(IN_LIGHT) == LOW ) <
// При подключении фоторезистора, как на схеме в темноте он будет давать
// минимальный сигнал, так-как его сопротивление во мраке максимально.
// На свету будет поступать высокий уровень на вход Ардуино и этот
// блок кода не сработает
DigitalWrite(OUT_LED, HIGH);
delay(10000); // долгая задержка
DigitalWrite(OUT_LED, LOW);
>
Задержка подбирается экспериментально, в зависимости от конкретной чувствительности KY-037 или KY-038, а также их настроек, производимых регулятором на плате устройства.
Некоторая информация о голосовом распознавании
Здесь будут представлены общие идеи, позволяющие впоследствии создать систему голосового командного управления, естественно с ограничениями, накладываемыми мощностью Arduino.
Первое, что нужно учесть при проектировании – обращение к самому конкретному устройству, чтобы его функционирование не начиналось или прерывалось от случайно сказанного слова. То есть, перед отдачей команды нужно будет произносить не похожий на нее идентификатор конкретного контролера. К примеру: «К7 Включение». Описанное, кстати хорошо тем, что нет похожести согласно произносимых звуков.
Структура слова
Основное, на что нужно обратить внимание при проектировании систем распознавания звука – сама фонетика языка. В русском, есть гласные и согласные буквы. Последние еще и бывают шипящего, звонкого и глухого произношения. Устройства улавливающие звуковые волны, наиболее слышат, как раз, первые, вторые и третьи, а вот к последним «глуховаты». Поэтому, собственно и программировать конечный аппарат требуется именно на их определение, а не слова в целом. Опять же. Каждый человек обладает определенной дикцией и высотой тона голоса. Посудите сами, послушав, как одно и то же слово произносится мужчиной или женщиной. К тому же некоторые люди быстро проговаривают текст, другие медленнее. Все названые факторы требуется учесть при написании скетча обработки.
Еще одно ограничение, накладываемое платам KY-037 и KY-038 – падение уровня улавливаемого сигнала в зависимости от расстояния до его источника. То есть, нужно предусмотреть сравнение именно разниц поступающих пиков, а не конкретных значений.
Некоторые рекомендации
Определение лучше производить, выявив высоту тонов и длительность произношения в каждом конкретном случае, под индивидуальные характеристики голоса человека. Впоследствии, ввести в скетч усреднение полученных данных на аналоговом входе, алгоритмы которых легко можно найти через поисковые системы. Последнее действие нужно для случаев, когда оператор охрип, осип, устал или находится под действием еще каких-либо факторов, изменяющих вокальные характеристики.
Разбор последовательности звуков проводится не точным соответствием, а логическими условиями, по причине пропуска некоторых в разговорной речи. То есть, предположим, существует массив, содержащий последовательность значений гласных и шипящих, аналогичных используемым в самой команде. Тогда разбор голоса будет выглядеть следующим образом:
Просьба обратить внимание, что приведенный кусок кода служит только целям ознакомления и понимания принципов разбора. Разницу пиков, о которых говорилось ранее, алгоритм не проверяет, сравнивая только конкретные значения.
Чтобы такая нейросеть могла «распознавать» слова, подаваемые на её вход, предварительно она должна быть обучена!
Для выполнения такого обучения на вход сети подают эталонное слово, а затем с помощью специальных алгоритмов (например, обратного распространения ошибки) подбирают значения структурных коэффициентов нейронной сети, при которых нейросеть выдаёт правильное значение на выход.