Записать звук на ардуино

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Диктофон своими руками на основе Arduino и ISD1820

Arduino и ISD1820 (модуль записи голоса)

В данном проекте будет показано, как сопрягать модуль записи звука ISD1820 с Arduino с целью создания простого диктофона. Хотя на плате модуля диктофона ISD1820 есть кнопка, которую можно использовать для прямой записи и воспроизведения, в этом проекте мы будем использовать Arduino для управления этими действиями, чтобы вы могли реализовать более «умный» диктофон.

Диктофон – это устройство, которое записывает речь (или аудио) в различных ситуациях, таких как встречи, лекции, интервью, конференции, трансляции и т. д., чтобы вы могли легко редактировать или воспроизводить их.

Существуют различные типы аппаратного и программного обеспечения, предназначенные для записи голоса, которые предоставляют несколько вариантов настройки. В этом проекте мы расскажем об одном из наиболее часто используемых модулей диктофона в сообществе любителей электроники – модуле диктофона ISD1820, и покажем, как им управлять с помощью Arduino.

Модуль ISD1820

Модуль диктофона ISD1820 основан на микросхеме ISD1820, которая представляет собой однокристальную ИС диктофона для записи и воспроизведения отдельных сообщений. Главная особенность модуля диктофона ISD1820 заключается в том, что он может хранить сообщения в своей энергонезависимой памяти и может быть сконфигурирован для хранения сообщений длиной от 8 секунд до 20 секунд.

Модуль диктофона ISD1820, используемый в этом проекте, показан ниже. Как видите, на плате много компонентов, которые помогают микросхеме ISD1820 в записи и воспроизведении.

Еще одной главной особенностью этого модуля является то, что он имеет встроенный аудиоусилитель, который может управлять динамиком 0,5 Вт 8 Ом напрямую, без необходимости использования какой-либо внешней схемы усилителя. Но если вы хотите подключить более мощные динамики, вы можете подключить выход этого модуля к ИС внешнего усилителя, например, LM386.

Как работать с модулем ISD1820? Подключите небольшой 8-Омный динамик к выходу модуля, то есть через контакты SP+ и SP-. Нажмите кнопку записи (REC) на модуле, и модуль начнет запись. Продолжайте удерживать нажатой кнопку до тех пор, пока не запишите полное сообщение (например, около 10 секунд). Для воспроизведения вы можете использовать PLAYE или PLAYL. Нажмите кнопку PLAYE один раз, и все сообщение будет воспроизведено. Вам нужно нажать и удерживать кнопку PLAYL, и сообщение начнет воспроизводиться, и, если вы хотите остановить воспроизведение в любой момент, отпустите кнопку. Если вы активируете перемычку PE, воспроизведение происходит в режиме бесконечного цикла.

Подключение Arduino к ISD1820

Как было сказано ранее, модуль диктофона ISD1820 может работать независимо без какого-либо микроконтроллера. Но управление функцией записи и воспроизведения с помощью микроконтроллера, такого как, например, Arduino, дает вам возможность расширить функциональные возможности модуля до уровня сложных приложений.

Представьте себе ситуацию, когда вы разрабатываете систему безопасности, которая должна автоматически записывать голос при обнаружении движения. Это будет возможно, только если вы подключите модуль диктофона ISD1820 к Arduino (или к любому микроконтроллеру).

Схема подключения Arduino к ISD1820, а также к ИК-датчику и динамику для реализации такой простой сигнализации с записью голоса, показана ниже.

Контакты SP+ и SP- модуля ISD1820 подключены к клеммам динамика. VCC и GND модуля подключены к + 5V и GND. Контакты REC и PLAYE подключены к цифровым контактам 2 и 3 платы Arduino. Здесь используется инфракрасный датчик отражающего типа, а цифровой выход датчика подключен к выводу 4 платы Arduino.

Код программы взаимодействия Arduino и ISD1820

Выполните подключения согласно электрической схеме и подайте питание на цепь. Когда перед ИК-датчиком нет объекта, его выход будет в низком логическом состянии, и Arduino ничего не будет делать. Когда перед ИК-датчиком появится какой-либо объект, его выходной сигнал переходит в высокий логический уровень, и Arduino начинает запись сообщения, переводя вывод REC в высокое логическое состояние и поддерживая его в течение примерно 5 секунд. В течение этого времени светодиод, подключенный к контакту 13, будет светиться, чтобы указать, что модуль записывает сообщение. После записи, сообщение воспроизводится посредством перевода вывода PLAYE в высокое логическое состояние и его поддержания в течение примерно 6 секунд.

Источник

Arduino и микрофон

Описание

Arduino весьма неплохо измеряет напряжение, почему бы не подключить к ней микрофон? Просто голый микрофонный капсюль подключать нет смысла, для работы с ним понадобятся ещё некоторые электронные компоненты. У китайцев есть несколько вариантов микрофонных модулей, но самый хороший из них – на базе микросхемы MAX9814 (вынесен на картинке справа), такой и идёт в наборе GyverKIT:

Данный модуль обеспечивает:

  • Усиление сигнала с микрофона до амплитуды 1.25V (выходной диапазон 0.. 2.5V)
  • Встроенный АРУ – автоматическая регулировка усиления, выравнивает громкость тихих и громких звуков
  • Подавление шума – сигнал с микрофона довольно чистый даже при не очень хорошем питании. Его очень приятно обрабатывать, да и рацию можно сделать

Пины и настройки модуля:

  • GND и Vdd (V+): питание, 3.. 5V
  • Out: выход сигнала для подключения к МК
  • Gain (G): настройка усиления
    • Никуда не подключен: 60dB
    • На GND: 50dB
    • На VCC: 40dB
  • AR: настройка компрессии звука (время восстановления)
    • Никуда не подключен: 1:4000 мс
    • На VCC: 1:2000 мс
    • На GND: 1:500 мс

Подключение

К питанию и на аналоговый пин:
Примечание:

  • На схеме с Arduino (слева) можно переключить опорное напряжение (пин REF) на встроенный источник 3.3V, желательно через резистор на 10к. Соответственно в программе вызвать analogReference(EXTERNAL) . Это нужно для того, чтобы расширить диапазон чтения сигнала микрофона и обрабатывать его более точно (он выдаёт 0.. 2.5V)
  • На схеме с Wemos (справа) мы подключаем микрофон на питание 3.3V. Сигнал он всё равно выдаёт 0.. 2.5V, что очень хорошо: у Wemos как раз 3.3V – верхняя граница напряжения на аналоговый пин A0

Библиотеки

Модуль выдаёт аналоговый сигнал, то есть его достаточно опрашивать стандартными средствами Arduino для получения сырого сигнала. Но полезные библиотеки всё таки есть:

  • Если микрофон используется для измерения громкости звука, то можно воспользоваться библиотекой амплитудного анализа VolAnalyzer, которая обработает звук и преобразует громкость в нужный диапазон, а также будет автоматически подстраивать чувствительность при изменении среднего уровня громкости
  • Clap – библиотека для распознавания хлопков в ладоши, удобно использовать совместно с VolAnalyzer
  • Для частотного анализа звука можно использовать библиотеку FHT (только для AVR)

Примеры

Откроем монитор порта и скажем что-нибудь в микрофон

Отлично! Но это сырой сигнал, с ним работать неудобно – он не отражает усреднённую громкость, а всего лишь показывает форму звукового сигнала

Заведём похожий пример, но с библиотекой VolAnalyzer: выведем приведённую “громкость” звука и построим график:

И получим гораздо более применимые для проектов значения:

Такой сигнал достаточно подать на светодиод – и уже получится светомузыка!

Источник

Шпионское подслушивающее устройство на Arduino с записью голоса

В этой статье мы рассмотрим создание на основе платы Arduino компактного устройства для записи голоса, которое при желании можно использовать в качестве подслушивающего устройства (шпионского «жучка)» или диктофона. Наше устройство будет содержать небольшой микрофон для записи голоса и последующего сохранения его на SD карту. Оно будет способно записывать фрагменты звука длительностью до 2 минут, эти фрагменты будут иметь последовательную нумерацию. Запись звука будет производиться до тех пор пока не закончится заряд батареи или не закончится место на SD карте. Для индикации того, что начался процесс записи, мы подключили к плате Arduino светодиод.

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

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. MAX9814 Amplifier board (плата усиления, плата микрофона) (купить на AliExpress).
  3. Модуль чтения SD карт (купить на AliExpress).
  4. SD карта.
  5. Источник питания с напряжением 5 В (power bank, батарейка или что-нибудь подобное).

Внешний вид используемых в проекте компонентов показан на следующем рисунке.

Схема проекта

Схема шпионского подслушивающего устройства на Arduino представлена на следующем рисунке.

Основным компонентом нашего проекта является модуль MAX9814, который представляет собой высокопроизводительный микрофонный усилитель с автоматической регулировкой усиления (automatic gain control, AGC) и низким уровнем вносимых шумов, отличающийся низкой стоимостью. Модуль содержит малошумящий входной (front-end) усилитель, усилитель с изменяющимся коэффициентом усиления (variable gain amplifier, VGA), выходной усилитель, генератор напряжения смещения для микрофона и схему автоматической регулировки усиления – и все это на одном чипе.

Модуль MAX9814 будет записывать звук и передавать его в плату Arduino, которая будет преобразовывать его в .wav формат и сохранять его на MicroSD карту с помощью модуля чтения/записи SD карт, подключенного к плате Arduino.

Модуль MAX9814 содержит достаточно много различных контактов, но мы из них будем использовать всего 3: VCC, GND и выходной контакт. Также модуль содержит контакт усиления (gain pin), который можно подключить к GND или VDD для контролируемого усиления 50dB и 40dB. Но в нашем проекте мы не будем использовать управление усилением модуля, по умолчанию модуль MAX9814 обеспечивает коэффициент усиления равный 60dB.

Для взаимодействия с модулем SD карт мы будем использовать интерфейс SPI, для этого мы задействовали контакты интерфейса SPI платы Arduino.

Контакты платы Arduino Контакты модуля SD карт
5V VCC
GND GND
D10 CS
D11 MOSI
D12 MISO
D13 SCK

Контакты подключения модуля MAX9814 к плате Arduino представлены в следующей таблице.

Контакты платы Arduino Контакты модуля MAX9814
3.3V VDD
GND GND
A0 OUT

Аудио сигнал будет сохраняться фрагментами по 2 минуты, после окончания этого интервала будет создаваться новый файл для записи очередного фрагмента.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В начале кода программы подключим заголовочные файлы используемых библиотек.

Источник

Мини диктофон на Ардуино с активацией по голосу

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

Мини диктофон на Ардуино с активацией по голосу

Другие преимущества данного диктофона на Ардуино это: малое потребление энергии в режиме ожидания и чуть больше во время записи; автоматическая остановка сессии записи через небольшой промежуток если больше нет никакой звуковой активности и при новом появлении разговора снова начинает записывать в новый аудиофайл; расширяемость функционала, так как это открытый проект созданный в среде Arduino и Вы можете добавить или изменить любой функционал диктофона; автономность, так как устройство потребляет мало энергии при работе или в режиме ожидания то можно для питания использовать Li-Ion аккумуляторы и даже если отключится электроэнергия в доме то диктофон продолжит свою работу; используются широко доступные и недорогие модули и стоимость всех деталей в сумме будет небольшой.

Детали которые нам понадобятся:

  • Arduino Pro Mini – купить можно здесь – http://ali.pub/4b78g4;
  • Микрофонный модуль MAX4466 (можно заменить на MAX9814) – http://ali.pub/4b78j8;
  • Micro SD Шилд – http://ali.pub/4b78t5;
  • Микросхема опорного напряжения TL431 – http://ali.pub/4b78vo;
  • Зелёный и красный светодиоды;
  • Резистор 1,5 кОм (установка напряжения на TL431);
  • Резистор 1 кОм (ограничение тока светодиодов);
  • Диод FR107;
  • Микропереключатель;
  • Li-Ion аккумулятор на 3,7В;
  • Стабилизатор напряжения AMS1117 на 3,3В;
  • Электролитический конденсатор 100 мкФ х 10В.

Микрофонный модуль MAX4466

Микрофонный модуль MAX9814

Как сделать диктофон на Ардуино, пошаговая инструкция:

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

Мини диктофон на Ардуино с активацией по голосу

Мини диктофон на Ардуино с активацией по голосу

Мини диктофон на Ардуино с активацией по голосу

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

С микросхемы TL431 идёт напряжение на контакт AREF в Ардуино, но не во всех Arduino Pro Mini он подписан и выведен в порт и чтобы его можно было найти я привожу фото куда нужно в этом случае подпаять провод:

Мини диктофон на Ардуино с активацией по голосу

Мини диктофон на Ардуино с активацией по голосу

Для того чтобы микрофонный модуль работал корректно то нужно отрыть скетч Recording2.ino, (скачать его можно отсюда, там также есть схема) затем скачать и установить библиотеку TMRpcm отсюда — https://github.com/TMRh20/TMRpcm (она также уже есть в архиве со скетчем). Далее нужно открыть из этого архива с библиотекой файл настройки pcmConfig.h и раскомментировать там такие строки (убрав перед решёткой два слеша):

29 #define buffSize 128

75 #define ENABLE_RECORDING

77 #define BLOCK_COUNT 10000UL // 10000 = 500MB 2000 = 100MB

И затем сохраняем наши изменения в файле.

Мини диктофон на Ардуино с активацией по голосу

Обращаю внимание что скетч Recording2.ino нужно внимательно прочитать, все самые главные настройки которые можно изменять подробно прокомментированы и не составит проблем с ними разобраться. Я объясню здесь только самое главное, что может Вам понадобится изменить:

29 #define ENABLE_DEBUG; эта строка нужна при отладке устройства, вся информация при этом выводится через Serial и когда устройство будет правильно работать то эту строку необходимо закомментировать.

41 int RecInterval = 5; в этой строке указывается количество секунд при которых будет сравниваться есть ли звук на входе микрофона или нет, если нет то запись прекращается, можно выставить большее время, чтобы количество файлов было меньше.

Для уменьшения размера диктофона в качестве гнезда для SD карты я использовал компактное гнездо выпаянное из мобильного телефона. Для согласования уровней напряжений на каждую линию данных на той же платке с SD гнездом я впаял SMD резисторы на 1 кОм. Это нужно для того, что карта памяти питается ровно от 3,3В, а плата Ардуино будет запитана от аккумулятора у которого напряжение немного больше и уровни данных при этом могут быть выше.

Мини диктофон на Ардуино с активацией по голосу

Мини диктофон на Ардуино с активацией по голосу

На плате Arduino навесным монтажом также установил стабилизатор напряжения AMS1117 на 3,3В. Вместо электролитического конденсатора по питанию использовал компактный танталовый SMD конденсатор.

Мини диктофон на Ардуино с активацией по голосу

Коричневый провод идёт на вторую сторону Аруино и подключён к выводу AREF. Красный и чёрный провод (плюс и минус) от микросхемы AMS1117 идёт к модулю SD карты для её питания.

Мини диктофон на Ардуино с активацией по голосу

На стороне кварца на плате Arduino Pro Mini распаял микрофонный модуль и его обвязку из диода и электролитических конденсаторов (здесь можно также применить танталовые конденсаторы для компактности), а также соединяющих проводников.

Мини диктофон на Ардуино с активацией по голосу

Мини диктофон на Ардуино с активацией по голосу

В режиме ожидания диктофон потребляет очень мало – около 23 мА, но надо учитывать, что на плате Ардуино стоит светодиод, который постоянно работает и потребляет до 19 мА, если его выпаять то потребление снизится раза в 3. Во время записи потребление диктофона увеличивается до 55 мА и это опять же с учётом того же светодиода. Если например взять компактный аккумулятор от какого-нибудь плеера на 200 мА*ч то его хватит примерно на 5 часов непрерывной записи либо на 20 часов в режиме ожидания (с выпаянным светодиодом).

Мини диктофон на Ардуино с активацией по голосу

Мини диктофон на Ардуино с активацией по голосу

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

Источник

Adblock
detector