Датчик шума и аналоговый микрофон для Arduino и Iskra JS. Железки Амперки

17 026
21
Амперка548 тыс
Опубликовано 17 февраля 2017, 12:14
Датчик шума и микрофон в одном модуле — amperka.ru/product/troyka-soun...

В январе пятнадцатого года мы выпустили первый датчик шума и показали его в деле — собрали замок, открываемый стуком. Сейчас мы подготовили его обновлённую версию. Модуль, соединивший в себе сразу два устройства — датчик шума и микрофон.

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

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

Именно новый сигнальный пин позволяет кучу устройств — например всеми любимую светомузыку.

Мы берём сигнал с микрофона и с помощью разложения в ряды Фурье получаем значения, которые будут управлять светодиодами для низких, средних и высоких частот.

Чем отличается микрофон от датчика шума?

Сигнал с микрофона — это переменное напряжение. Часть сигнала положительное, другая — отрицательное. Этот сигнал можно попытаться передать на контроллер без обработки, но тогда оцифруется только положительное напряжение — то есть половина волны. А без предварительного усиления сигнал будет едва отличим от цифрового шума.

Микрофонный усилитель поднимает нулевое значение аудиосигнала до половины напряжения питания микроконтроллера и увеличивает его амплитуду. Дальнейшие изменения напряжения происходят уже относительно этого значения — контроллер оцифрует сигнал полностью.

По такому же принципу работает и наш аудиовход с разъёмом mini-jack. Так почему же нельзя просто взять и использовать его, в качестве датчика шума?

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

Разовые замеры максимальных значений амплитуды не дадут представления об общем уровне шума. Чтобы получить достоверную информацию, нужно делать измерения максимально часто и интегрировать полученные значения. Численной характеристикой громкости будет площадь под графиком звуковой волны. Именно её и «считает» электронная обвязка датчика шума. Именно это позволяет определить изменение общего звукового фона и зафиксировать хлопки — чтобы, например, помигать нашей любимой лампой (мини-проект «хлоп-реле» — wiki.amperka.ru/slot-box:clap-...

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

Потенциометр на модуле регулирует коэффициент усиления сигнала с микрофона. Он бывает полезен, если необходимо изменить условия срабатывания вашего устройства не трогая прошивку.

Подробное описание и примеры использования — wiki.amperka.ru/%D0%BF%D1%80%D...

Как собрать:
— «хлоп-реле» — wiki.amperka.ru/slot-box:clap-...
— светомузыкального котика — wiki.amperka.ru/slot-box:light...
жизньигрыфильмывесельеавтотехномузыкаспортедаденьгистройкаохотаогородзнанияздоровьекреативдетское