Как сделать диктофон на ардуино
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 и Вы можете добавить или изменить любой функционал диктофона; автономность, так как устройство потребляет мало энергии при работе или в режиме ожидания то можно для питания использовать Li-Ion аккумуляторы и даже если отключится электроэнергия в доме то диктофон продолжит свою работу; используются широко доступные и недорогие модули и стоимость всех деталей в сумме будет небольшой.
Детали которые нам понадобятся:
Микрофонный модуль 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 часов в режиме ожидания (с выпаянным светодиодом).
Мини диктофон на Ардуино с активацией по голосу
Мини диктофон на Ардуино с активацией по голосу
В итоге самодельный диктофон на Ардуино сделанный своими руками получился очень удачным, а его функционал можно при этом расширять в больших пределах.
Модуль записи голоса SD1820
Товары
Обзор модуля звука ISD1820
Модуль ISD1820 (рис. 1) для записи и воспроизведения одного голосового сообщения длиной до 10 секунд. Модуль включает в себя электретный микрофон для записи сообщения и кнопки для записи, частичного или полного воспроизведения сообщения. Запись сохраняется во внутренней EEPROM памяти ISD1820, и не исчезает после отключения питания. Плата может взаимодействовать с микроконтроллером. В комплект этого модуля входит динамик 8 Ом 0,5 Вт и кабель, который можно подключить непосредственно к выходу динамика модуля.
Основные компоненты модуля показаны на рис. 2. По центру платы расположена микросхема ISD1820. Плата имеет 3 кнопки и 12-пиновый разъем для подключения к микроконтроллеру.
Во время нажатия кнопки REC (1) происходит запись голосового сообщения с микрофона (7), в процессе горит светодиод (5). Длительность записи не более 10 сек. При нажатие на кнопку PLAYE (2) воспроизводится все записанное голосовое сообщение, при нажатии на кнопку PLAYL (3) воспроизводится голосового сообщения происходит до отжатия кнопки. Разъем (8) для подключения динамиков. Для управления модуля с микроконтроллера используется 12 пиновый разъем (6).
Назначение контактов показано в таблице:
Вывод с микрофона на динамик во время действия сигнала HIGH
Воспроизведение голосового сообщения во время действия сигнала HIGH
Воспроизведение голосового сообщения по сигналу HIGH
Запись голосового сообщения с микрофона по сигналу HIGH
Перенаправляет вывод с микрофона на динамик
Циклическое воспроизведение записанного голосового сообщения
Характеристики модуля ISD1820
Напряжение питания – 3.3 – 5.5В;
Длительность записи или – 10 сек;
Расстояние для записи голоса – не более 0,2 м;
Динамик – 0,5 Вт, 8 Ом;
Размер платы – 38×42.
Подключение ISD1820 к плате Arduino
Подключение модуль ISD1820 к плате Arduino производим согласно схеме соединений на рис. 3. Перемычки FT и P-E переводим в неактивное состояние.
Для записи голосового сообщения подаем сигнал HIGH на контакт D11 Arduino (контакт REC модуля) на все время записи. Для начала воспроизведения голосового сообщения на контакт D12 Arduino (контакт P-E модуля) подаем сигнал HIGH.
Пример использования
Создадим проект использования модуля ISD1820 в качестве оповещателя при входе человека в запретную зону.
Для проекта нам понадобятся:
Динамик – 0,5 Вт, 8 Ом – 1 шт;
Схема соединений нашего проекта на рис. 4.
Запишем на модуль ISD1820 фразу для оповещения, например: «Внимание. Вы зашли в запретную зону, просьба срочно покинуть».
При обнаружении ультразвуковым датчиком расстояния объекта в радиусе 100 см, подаем сигнал HIGH на контакт 12. При этом будет воспроизводиться данная фраза. Следующий замер расстояния через 10 секунд.
Загружаем на плату Arduino скетч из листинга 1.
И проверяем работу оповещателя.
Часто задаваемые вопросы FAQ
1. Не записывается голосовое сообщение в микросхему ISD1820
Проверьте правильно ли подано питание на модуль ISD1820.
Проверьте исправность микрофона.
2. Не воспроизводится голосовое сообщение
Проверьте правильность подключения модуля к плате Arduino.
Запишите голосовое сообщение повторно.
3. Сообщение воспроизводится непрерывно
Уберите перемычку P-E.
Проверьте отсутствие сигнала HIGH на контакте P-E.
Детский диктофон на модуле SD1820
Это звукозаписывающее устройство мастер сделал для своих детей. Оно полностью рабочее и способно записывать, и воспроизводить звуки длинной до 10 секунд.
Для сборки данного устройства мастер использовал следующие
Шаг третий: 3D-печать
Некоторые декоративные детали были напечатаны на 3D-принтере. Для установки с одной стороны корпуса мастер сделал отверстие для переключателя и слот для декоративного предохранителя, а с другой стороны создал нечто, напоминающее резервуар, который позже будет соединен спиральной катушкой с кнопкой записи.
Кнопка записи будет закрыта «решеткой» для предотвращения нежелательной записи.
В верхней части будет отверстия для лампочки, микрофонной трубки, маленькой антенны и кнопки. Лампочка также будет закрыта «решеткой».
Шаг четвертый: покраска
Переднюю часть корпуса мастер решил не красить, а остальные части были покрашены «медной» акриловой краской.
Как сделать диктофон на ардуино
Andrey Kotcilo
kalobyte
Andrey Kotcilo
kalobyte
ну взять модуль есп8266 в режиме юарт моста и гнать поток на компутер в специальную прогу
ее тоже придется писать
непонятен весь смысл всего этого
Andrey Kotcilo
ну взять модуль есп8266 в режиме юарт моста и гнать поток на компутер в специальную прогу
ее тоже придется писать
непонятен весь смысл всего этого
kalobyte
так такие задачи не решаются таким макаром
слушать надо в реальном времени или записи?
если записи, то как определяется начало и конец записи?
используются ли андроид телефоны в штатном оборудовании такси?
используются ли сим карты с тарифом для звонков или только для данных?
Andrey Kotcilo
@kalobyte, слушать можно только записи. Бывают ситуации уже после поездки, когда клиент звонит и говорит о каких недоразумениях(конфликтов) с водителем. Чтобы понять кто прав, кто виноват, как вариант, можно послушать запись их разговора, для этого я и хочу сделать такой диктофон. Ждать пока автомобиль вернется в автопарк долго. После анализа записи можно уже принимать решение, стать на сторону клиента или водителя.
Смартфоны используются по предпочтению водителей. Есть приложение как на iOs так и на Android.
Используются карты только для передачи данных.
kalobyte
понятно
тогда все упрощается намного
тебе понадобится вот такая плата за 15 баксов
http://www.orangepi.org/orangepizero/
и понадобится усб микрофон или самому склепать плату усилителя для электретного микрофона
потом найти быдлокодера, который напишет тебе некий сервер, который будет работать на этой плате и ты можеш зайти на каждую такую плату браузером и послушать запись с нужного момента
записывать будет на сд карту, которая имеет 2 раздела
1 для линупса ехт2
2 для данных и отформатирован в фат32 и при втыкании такой карты в обычный компутер все записи будут доступны
скорей всего ип адреса будут за натом и тебе потребуется еще где-то у себя в офисе роутер с белым ип адресом и там поднять впн сервер, а на этих платах настроить впн клиент
сервер пишется на питоне, там есть уже jango фреймворк и на фрилансах можно найти быдлокодера. который тебе все сделает
оирентировочная цена такого софта 1000 баксов, срок исполнения 2 недели, если предоставиш плату исполнителю
есть еще платы со встроеным 4г модемом, на них можно поднять точку доступа для клиентов, но это будет дороже уже