2016-03-31 2 views
1

Я не уверен, к какой дороге идти, чтобы получить NodeMCU для воспроизведения звука. Я хотел бы использовать один-два вторых файла wav и управлять крошечным динамиком. Цель состоит в том, чтобы услышать человеческий голос, ничего сверх верного. Кроме того, я не хочу использовать звуковой экран или SD-карту. Мои файлы будут достаточно маленькими, чтобы запускать все прямо с чипа. Нет необходимости записывать отсчеты, просто воспроизведение. Что я должен использовать и есть ли там какие-то примеры? Кажется, что сигма-дельта-модуль - это хорошее место для начала.NodeMCU играет .wav или .mp3 файлы

+0

Возможно, вас может заинтересовать https://github.com/nodemcu/nodemcu-firmware/issues/1085. –

ответ

1

После https://github.com/nodemcu/nodemcu-firmware/pull/1255 приземлился на dev отделение вы можете сделать следующее as documented:

-- **************************************************************************** 
-- 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) 

Audio, как ожидается, как моно сырым беззнаковое 8 битовый поток с частотой дискретизации от 1 к и 16 к проб в второй. Обычные WAV-файлы могут быть конвертированы с помощью инструментов OSS, таких как Audacity или SoX. Отрегулируйте громкость перед конверсией.

+0

Благодарим вас за помощь. Я проверил документацию, которую вы упомянули, и имеет встроенную прошивку с pcm на ней. Я пытаюсь запустить небольшой модуль динамиков следующим образом: http://img.dxcdn.com/productimages/sku_138322_2.jpg Моя проблема заключается в том, что pcm.SD всегда равен нулю. У тебя есть идеи? –

+0

Я никогда не пробовал себя, но ваша прошивка включает в себя модуль сигма-дельта? –

+0

Нет, я не думаю, что у меня есть сигма-дельта в моей прошивке. Я добавлю его и повторю попытку. –

Смежные вопросы