Я не уверен, по какому пути идти, чтобы заставить NodeMCU воспроизводить звук. Я хотел бы использовать одно-двухсекундные файлы wav и управлять крошечным динамиком. Цель состоит в том, чтобы услышать человеческий голос, ничего сверхвысокого качества. Кроме того, я не хочу использовать звуковой экран или SD-карту. Мои файлы будут достаточно малы, чтобы запустить все прямо с чипа. Нет необходимости записывать сэмплы, только воспроизведение. Что я должен использовать и есть ли примеры? Кажется, сигма-дельта-модуль — хорошее место для начала.
NodeMCU воспроизводит файлы .wav или .mp3
comment
Вас может заинтересовать github.com/nodemcu/nodemcu-firmware/issues/1085 а> тогда.
- person Marcel Stör   schedule 01.04.2016
Ответы (1)
Один раз https://github.com/nodemcu/nodemcu-firmware/pull/1255 попал в ветку dev
, вы можете сделать следующее как описано:
-- ****************************************************************************
-- Play file with pcm module.
--
-- Upload jump_8k.u8 to spiffs before running this script.
--
-- ****************************************************************************
function cb_drained(d)
print("drained "..node.heap())
file.seek("set", 0)
-- uncomment the following line for continuous playback
--d:play(pcm.RATE_8K)
end
function cb_stopped(d)
print("playback stopped")
file.seek("set", 0)
end
function cb_paused(d)
print("playback paused")
end
file.open("jump_8k.u8", "r")
drv = pcm.new(pcm.SD, 1)
-- fetch data in chunks of LUA_BUFFERSIZE (1024) from file
drv:on("data", file.read)
-- get called back when all samples were read from the file
drv:on("drained", cb_drained)
drv:on("stopped", cb_stopped)
drv:on("paused", cb_paused)
-- start playback
drv:play(pcm.RATE_8K)
Ожидается, что звук будет монофоническим необработанным 8-битным потоком без знака с частотой дискретизации от 1 до 16 тыс. отсчетов в секунду. Обычные файлы WAV можно конвертировать с помощью инструментов OSS, таких как Audacity или SoX. Отрегулируйте громкость перед преобразованием.
person
Marcel Stör
schedule
21.04.2016
Спасибо за помощь. Я ознакомился с документацией, которую вы упомянули, и у меня есть сборка прошивки с PCM. Я пытаюсь запустить небольшой модуль динамика, например: img.dxcdn.com/productimages/sku_138322_2. jpg Моя проблема в том, что pcm.SD всегда равен нулю. У тебя есть идеи?
- person Joe Andolina; 26.04.2016
Сам не пробовал а в вашей прошивке есть модуль сигма-дельта?
- person Marcel Stör; 26.04.2016
Нет, не думаю, что у меня в прошивке сигма-дельта. Добавлю и попробую еще раз.
- person Joe Andolina; 26.04.2016
Документация намекает, что вам, вероятно, это нужно.
- person Marcel Stör; 26.04.2016
Получил новый билд вместе с пкм и сигма-дельта. Оно работает! Спасибо всем в сообществе NodeMCU.
- person Joe Andolina; 27.04.2016
Большой! Так можно ли его закрыть?
- person Marcel Stör; 27.04.2016
Стоит отметить: github.com/nodemcu/nodemcu-firmware/pull /1255/файлы/
- person Marcel Stör; 28.04.2016
@JoeAndolina Я знаю, что он немного старше, но я думаю, было бы здорово, если бы вы могли сообщить нам, как вы это сделали. Образец проекта будет идеальным. Спасибо заранее.
- person John Fonseka; 19.06.2017
@JohnFonseka, я не понимаю твоей просьбы. Пример, который я опубликовал и который OP использовал в качестве основы, я считаю, прямо из примеров NodeMCU по адресу github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/
- person Marcel Stör; 19.06.2017
@MarcelStör, я имею в виду, как загрузить файл .u8, какие контакты для подключения динамика/усилителя и т. д. По сути, пример проекта, воспроизводящего музыку. Потому что я новичок в этой теме и в NodeMCU. Спасибо вам большое за ваш ответ.
- person John Fonseka; 20.06.2017
@JohnFonseka приведенный выше код в значительной степени является примером проекта. Как загрузить: nodemcu.readthedocs.io/en/latest/en/upload, оборудование и проводка: nodemcu.readthedocs.io/en/latest/ en/modules/pcm. Это все, что у меня есть.
- person Marcel Stör; 20.06.2017