ESP8266 MP3
(→使用 I2S 声卡) |
(→使用 I2S 声卡) |
||
第121行: | 第121行: | ||
参考电路: | 参考电路: | ||
− | [[文件:Wm8960-app.jpg | | + | [[文件:Wm8960-app.jpg | 900px]] |
2016年10月17日 (一) 12:55的版本
目录 |
1 Quick Start
准备一块 Noduino Falcon / Nodemcu V1.0 开发板,一根 micro USB 连接线:
获取 noduino-sdk:
$ git clone --recursive git://github.com/icamgo/noduino-sdk.git noduino-sdk
生成 toolchain (you need Python 2.7):
$ cd noduino-sdk/toolchain $ ./gen.py
打开 app/user/playerconfig.h 修改 AP_NAME 和 AP_PASSWORD 为你所用之无线路由 AP,然后编译、刷机:
$ cd ../sketch/mp3 $ vim app/user/playerconfig.h $ make flash
不同平台下,你的串口设备号可能不一样,确认一下你的串口设备,比如在 Windows 下 Falcon 开发板可能被识别为 COM7(设备管理器里查看),则:
$ make flash ESPPORT=COM7
各平台下,Noduino SDK 使用,更多参考:
- Getting Started with Noduino SDK on Linux
- Getting Started with Noduino SDK on Mac OS X
- Getting Started with Noduino SDK on Windows
串口刷机完成后,系统会连接你的无线路由,然后去访问 http://noduino.org/fair.mp3 这个文件,这个过程没问题的话,就会自动播放。
- 声音信号(模拟信号)输出到 Noduino Falcon 板的 RX 口 (GPIO3)
因此,找一个小喇叭,一头接 Noduino Falcon 板的 RX 口 (D0),一头接 Noduino Falcon 板 的 GND 就能听到音乐声音!
2 改进
当然,直接出来的信号很微弱,要是喇叭的阻抗稍高点,声音就很小,要贴近喇叭才能听见,这个时候,可以用简单的三极管放大一下信号。或者用现成的功放模块,比如:PAM8406 数字功放板,PAM8403 功放板 等等,淘宝的价格很便宜:
接线如下,输入接 L(左声道)或者 R(右声道),喇叭得接对应的 L+ 或者 R+ :
接上后,就发现声音变大了,爽!
当然,同时背景噪声也很明显,这个需要做进一步的改进、尝试、折腾。。。
整个源代码都在 noduino-sdk/sketch/mp3 这个目录下,或者直接 github: https://github.com/icamgo/noduino-sdk/tree/master/sketch/mp3/
3 提升
3.1 使用 DAC
可尝试用一片 I2S 接口的 DAC,硬件数模转换:
可改善纯软件的不如人意
接线:
- I2S_BCK --- GPIO15 --- Noduino_Falcon D3
- I2S_WS --- GPIO2 --- Noduino_Falcon D2
- I2S_DATA --- GPIO3 --- Noduino_Falcon D0
3.2 使用 I2S 声卡
- WM8960G
- BCLK: bit clock, basic clock for the data
- LRCLK: left channel/right channel clock
- DATA: used to send data
- LRCK ---- 左右声道控制信号
- SCLK ---- 串行时钟
- SDI ---- 数据输入
- SDO ---- 数据输出
- CDCLK ---- 为编解码芯片提供系统同步时钟
参考电路:
I2S interface, used to transfer data to WM8960
I2C interface, used to transfer command to WM8960