Рекомендация для быстрого ответа-время-разрешение-mp3-модуль для arduino

Я работаю с Arduino, который активирует коробку, похожую на коробку Скиннера. Некоторые из выходных звуковых стимулов являются синусоидальными волнами с длительностью менее 5 миллисекунд. Я выводил звуки с помощью MP3-модуля DFR0299.

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

Итак, я думал о покупке лучшего модуля. Однако я далек от того, чтобы быть экспертом в этих вещах..

Я могу искать другие модули в Интернете, но, просто глядя на таблицы данных, я не могу сказать, является ли качество модуля тем, что мне нужно.

Я был бы признателен, если бы кто-нибудь из вас дал мне названия модулей, которые могли бы соответствовать моим требованиям (или даже посоветовать мне, что посмотреть в описаниях)

Спасибо!

, 👍1

Обсуждение

Почему вы хотите использовать для этого MP3? Являются ли ваши звуки сложными или просто простыми синусоидальными волнами? (Сложность звука довольно ограничена во времени 5 мс) В этом случае проще и быстрее генерировать их на Arduino, не используя что-то столь сложное, как MP3, @chrisl

Я думаю, что ОП имеет в виду аппаратный модуль для воспроизведения mp3-файла, который эффективно использует arduino только в качестве механизма управления, а не устройства обработки., @Mark

@chrisl, сейчас я использую простые синусоидальные волны с помощью функционального генератора, запускаемого Arduino. Однако в будущем мне придется переключиться на более сложные волны.. Спасибо, @user135172


2 ответа


1

Я собираюсь посоветовать вам держаться подальше от этих mp3 - модулей. Вполне разумно использовать автономный блок arduino для непосредственного создания звука с использованием выводов цифрового выхода с RC-схемой фильтра нижних частот. Это наиболее эффективный способ сделать это и обеспечит вам очень низкую задержку активации.

https://playground.arduino.cc/Code/PwmFrequency/

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

,

Хорошо, спасибо, я посмотрю. Я попробовал аналогичную вещь (я думаю), я создал базовую прямоугольную волну arduino и добавил резисторы и конденсаторы, чтобы "сгладить" ее до синусоидальной формы, но почему-то результат (показанный в области видимости) выглядел очень шумно.. может быть, даст ему еще один шанс. Спасибо, @user135172


1

MP3-модули являются довольно сложными для этого проекта. Дорожки длиной 5 мс в максимуме могут даже храниться непосредственно на Arduino в формате raw wave (без сжатия)(в зависимости от разрешения и частоты дискретизации), а затем выводиться с его помощью.

Поскольку ШИМ с фильтром низких частот является довольно шумным и не очень точным (особенно для более высоких частот), может потребоваться внешний чип ЦАП. Они доступны с параллельным входным портом или с SPI. Я бы предложил использовать SPI, который быстр и требует всего 3 контакта (+1 для выбора подчиненного, если необходимо). Поместите необработанные значения волн в массив и отправьте их в ЦАП для вывода. В зависимости от доступной памяти, количества и размера ваших треков вы можете сохранить их непосредственно на Arduino. Если нет, вы можете использовать SD-карту, чтобы сохранить библиотеку дорожек, которые затем загружаются на Arduino и воспроизводятся. Таким образом, вам нужно будет только удерживать 1 или 2 (при двойном буферизации) трека в оперативной памяти Arduino.

,

Если у вас есть Arduino с SAMD21 на нем: я написал небольшую библиотеку для этого, используя встроенный ЦАП. Первые дни и версия еще не готова, но она работает. Это здесь, и это бесплатно: https://github.com/ocrdu/Arduino_SAMD21_Audio_Player, @ocrdu