Оглавление:

Ардуино становится Говорящим Томом: 6 шагов
Ардуино становится Говорящим Томом: 6 шагов

Видео: Ардуино становится Говорящим Томом: 6 шагов

Видео: Ардуино становится Говорящим Томом: 6 шагов
Видео: 7 ПОЛЕЗНЫХ устройств на АРДУИНО, которые можно собрать за 15 минут. 2024, Июль
Anonim
Ардуино становится Говорящим Томом
Ардуино становится Говорящим Томом
Ардуино становится Говорящим Томом
Ардуино становится Говорящим Томом

Одно из самых старых воспоминаний об использовании смартфона - это игра в «Говорящий Том». Игра была довольно простой. Есть кот по имени Том, который вроде как разговаривает. В игре Том слушал любой ввод через микрофон телефона, а затем повторял все, что он слышал. Итак, что бы ни говорили Тому, он просто повторял то же самое своим пронзительным голосом.

Хотя это звучит просто, вся эта процедура требует множества сложных шагов, таких как выборка аналогового входа микрофона в цифровой форме, манипуляции со звуком, чтобы придать Тому уникальный голос, а затем реконструировать сигнал из всех этих цифровых значений, чтобы воспроизвести его через динамик.. Все эти сложные шаги, но смартфон справился с этим как шарм даже 9-10 лет назад!

Интересно было бы посмотреть, можно ли то же самое сделать с дешевой платой Arduino на базе микроконтроллера. Итак, в этом руководстве я покажу, как можно сделать простой проект, похожий на Говорящего Тома, из Arduino и другой недорогой электроники.

Это руководство было написано в сотрудничестве с Hatchnhack Makerspace в Дели.

ПРИМЕЧАНИЕ. Это руководство является первой версией проекта, который завершает функцию «Говорящий» Говорящего Тома, где arduino сможет повторять все, что вы ему говорите. Часть изменения голоса будет рассмотрена в будущей версии, хотя из-за меньшего разрешения встроенного АЦП Arduino записанный звук уже звучит немного иначе: P (это можно четко заметить в видео проекта).

Итак, начнем!

Шаг 1. Используемые материалы

Используемые материалы
Используемые материалы
Используемые материалы
Используемые материалы
Используемые материалы
Используемые материалы

Аппаратное обеспечение:

  • Arduino UNO
  • Модуль микрофона MAX4466 с регулируемым усилением
  • Модуль чтения SD-карт на основе SPI
  • SD Card
  • Усилитель звука, такой как динамик ПК, модуль усилителя PAM8403 и т. Д.
  • Колонки для подключения к усилителю
  • Женский аудиоразъем
  • 1 резистор на 1 кОм
  • 2 резистора 10 кОм
  • 1 х 10 мкФ конденсатор
  • 2 x кнопка
  • Провода перемычки

Программное обеспечение:

  • IDE Arduino
  • Смелость (необязательно)
  • TMRpcm и SD-библиотека для Arduino

Шаг 2: Базовый обзор проекта

В основном проект имеет 2 функции:

  • Он может воспроизводить случайно выбранный звук из набора предварительно установленных аудиофайлов на SD-карте для звуковых эффектов и т. Д.
  • Он может записывать звук с микрофона, а затем воспроизводить его, как только запись останавливается. Это позволяет Arduino повторять все, что слышно через микрофон.

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

Основная тяжелая работа по записи и воспроизведению аудиофайлов с SD-карты выполняется библиотекой TMRpcm

Аудиозапись использует микрофонный модуль MAX4466, внутренний АЦП arduino и библиотеку TMRpcm для сэмплирования звука, а затем временно сохраняет его на SD-карте как файл.wav для воспроизведения. Аудиофайлы.wav используют PCM (импульсную кодовую модуляцию) для хранения аудиоданных в цифровом формате, чтобы их можно было легко воспроизвести снова. Как правило, для аудиопроектов лучше использовать внешний АЦП, поскольку разрешение АЦП Arduino не такое высокое, но для этого проекта он работает.

Воспроизведение аудиофайлов (предварительно установленных и записанных) также выполняется с помощью библиотеки TMRpcm, которая выводит звук в виде сигнала ШИМ с вывода с включенным ШИМ на Arduino. Затем этот сигнал подается в RC-фильтр для получения аналогового сигнала, который затем подается в усилитель для воспроизведения звука через динамик. Для этой части вы также можете использовать внешний ЦАП, поскольку у Arduino его нет внутри. Использование ЦАП может быть лучшим вариантом, поскольку это значительно улучшит качество звука.

Связь между модулем SD-карты и Arduino осуществляется через SPI (последовательный периферийный интерфейс). Код использует библиотеку SD и SPI для легкого доступа к содержимому SD-карты.

Шаг 3. Подготовьте SD-карту и подключите модуль SD-карты

Подготовьте SD-карту и подключите модуль SD-карты
Подготовьте SD-карту и подключите модуль SD-карты
Подготовьте SD-карту и подключите модуль SD-карты
Подготовьте SD-карту и подключите модуль SD-карты
Подготовьте SD-карту и подключите модуль SD-карты
Подготовьте SD-карту и подключите модуль SD-карты
Подготовьте SD-карту и подключите модуль SD-карты
Подготовьте SD-карту и подключите модуль SD-карты
  • Сначала вам нужно отформатировать как SD-карту с файловой системой FAT16 или FAT32 (вы можете использовать свой смартфон для форматирования SD-карты).
  • Теперь предварительно установите на SD-карту несколько аудиофайлов.wav. Вы можете создавать файлы.wav с Audacity (см. Инструкции ниже). Не забудьте называть файлы как audio_1.wav, audio_2.wav, audio_3.wav и так далее.

Модуль SD-карты использует SPI для передачи данных с Arduino. Следовательно, он подключается только к тем контактам, на которых включен SPI. Эти соединения следующие:

  • Vcc - 5 В
  • GND - GND
  • MOSI (Master Out Slave In) - контакт 11
  • MISO (Master In Slave Out) - контакт 12
  • CLK (Clock) - вывод 13
  • SS / CS (Slave Select / Chip Select) - контакт 10

Создание файла.wav с помощью программного обеспечения Audacity:

  • Откройте аудиофайл, который вы хотите преобразовать в.wav, в Audacity.
  • Щелкните имя файла и выберите «Разделить стерео на моно». Эта опция разделяет стереозвук на два моноканала. Теперь вы можете закрыть один из каналов.
  • Измените значение «Project Rate» внизу на 16000 Гц. Это значение соответствует максимальной частоте дискретизации внутреннего АЦП Arduino.
  • Теперь попал в File-> Export / Export as WAV.
  • Выберите соответствующее расположение и имя файла. В меню кодирования выберите «8-битный PCM без знака», поскольку мы используем формат PCM для хранения звука в цифровом формате.

Шаг 4: Подключите аудиовыход и микрофон

Подключите аудиовыход и микрофон
Подключите аудиовыход и микрофон
Подключите аудиовыход и микрофон
Подключите аудиовыход и микрофон
Подключите аудиовыход и микрофон
Подключите аудиовыход и микрофон
Подключите аудиовыход и микрофон
Подключите аудиовыход и микрофон

Подключение микрофона:

  • Vcc - 3,3 В
  • GND - GND
  • ВЫХОД - вывод A0

ЗАМЕТКА:

  • Попробуйте подключить микрофон напрямую к Arduino, а не использовать макетную плату, так как это может вызвать ненужный шум во входном сигнале.
  • Обязательно аккуратно припаяйте разъемы на модуле микрофона, так как плохие паяные соединения также создают шум.
  • Этот микрофонный модуль имеет регулируемое усиление, которым можно управлять с помощью потенциометра на задней стороне платы. Я бы посоветовал вам держать усиление несколько низким, так как тогда он не будет сильно усиливать шум, в то время как вы можете говорить, держа его возле рта, что приведет к более чистому выходу.

Подключение аудиовыхода:

  • Поместите конденсатор 10 мкФ и резистор 1 кОм последовательно на макетную плату так, чтобы положительный полюс конденсатора был подключен к резистору. Вместе они образуют RC-фильтр, который преобразует выходной сигнал ШИМ в аналоговый сигнал, который может подаваться на усилитель.
  • Подключите вывод 9 Arduino к другому концу резистора.
  • Отрицательный вывод конденсатора подключается к левому и правому каналу гнездового аудиоразъема.
  • GND аудиоразъема подключается к GND.
  • Аудиоразъем подключается к усилителю с помощью вспомогательного кабеля. В моем случае я использовал акустическую систему своего ПК.

ЗАМЕТКА:

Использование ШИМ в качестве аудиовыхода может быть не лучшим вариантом, поскольку внешний ЦАП обеспечит гораздо лучшее разрешение и качество. Кроме того, конденсатор и резистор в RC-фильтре могут вызывать нежелательный шум. Но, тем не менее, для этого проекта результат был довольно приличным

Шаг 5: Подключите кнопки

Подключите кнопки
Подключите кнопки
Подключите кнопки
Подключите кнопки
Подключите кнопки
Подключите кнопки

В проекте используются кнопки в качестве пользовательского интерфейса. Оба выполняют разные функции и используются по-разному, но имеют одинаковую проводку. Их подключение выглядит следующим образом:

  • Поместите кнопки на макетную плату.
  • Подключите один вывод одной из кнопок к выводу 2 Arduino с помощью понижающего резистора 10 кОм. Другой вывод кнопки подключается к 5В. Итак, когда кнопка нажата, контакт 2 становится ВЫСОКИМ, и мы можем обнаружить это в коде.
  • Другая кнопка подключается таким же образом к контакту 3 Arduino вместо 2.

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

Кнопка, подключенная к контакту 3, предназначена для записи. Вы должны нажать и удерживать эту кнопку для записи. Arduino начинает запись, как только эта кнопка нажата, и останавливает запись, когда эту кнопку отпускают. После остановки записи она сразу же воспроизводит эту запись.

Шаг 6. Загрузите код

Загрузите код
Загрузите код
Загрузите код
Загрузите код
Загрузите код
Загрузите код

Перед загрузкой кода убедитесь, что вы установили все необходимые библиотеки, такие как TMRpcm, SD и т. Д.

Вы также можете открыть Serial Monitor после загрузки кода, чтобы получить обратную связь о том, что делает arduino.

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

И все готово !!

Рекомендуемые: