首页 > 评测 > 8位机也玩音频-Arduino+SD+DAC+运放打造的播放器

8位机也玩音频-Arduino+SD+DAC+运放打造的播放器

8位机   Arduino   SD   DAC   
  • 作者:zhanzr
  • 来源:21ic
  • [导读]
  • 比如本文要介绍的Adafruit Wave Shield,就能是专门为Arduino设计的音频模块.确切的说是为AVR这一类的8位机而设计的音频模块.下文将从硬件到软件详细介绍一下子此模块的设计细节与使用方法.

图 插在Arduino Uno板子上

图 带上耳机

也懒得去追求美观了,只求扎实与连接可靠.有几个件没有焊接的属于套件中没有包含的器件,是些指示,接口之类的, 并不影响主要功能.

下面看看原理图:

图 板子的原理图

原理同总共就这一页.不难看出,板子是通过DAC片(MCP4921)来播放音频的,这是个12bit的单通道,参数上与大多数有DAC的片如STM32的内置DAC类似. 但是分立的DAC肯定效果要好点. DAC过了之后加了两级运放进行放大, 运放电路也是简单粗暴, 仅仅进行电流加强, 这是因为DAC输出的幅度已经足够. 另外使用74125隔离后使用SPI来读取SD卡. 这个SD卡才是这板子较为重要的部分. 因为SD卡意味着能播放的数据源超级大了. 相比而言,12bit的DAC虽然性能还说的过去, 但不是那么必要, 因为Arduino板子几乎都有通过PWM+滤波器来播放音频的选项. 但是这板子不仅仅是个SD卡扩展kit,分立DAC+运放的组合起码在教育意义上较大. 很多人能够通过这板子来理解基本的音频播放电路的原理. Arduino是通过SPI接口来读取SD卡的.

安装Arduino库

Arduino的一大特点是能利用的库函数很丰富. 如何使用这个模块, 当然自己来写FAT读取,再进行DAC操作也是可以的. 但那样做之前不妨试试别人写好的库来评估一下子硬件也是很好的. 作者相信这也是Arduino这种开源硬件这么流行的原因: 方便快捷评估硬件.这一点效率在真正的开发中很重要.在DIY中也是如此,因为可以参考别人成果,激发你的创作灵感. 当没有库的时候也要发挥自己动手的开创精神, 有库的时候就要先去利用.

以下这个库函数封装了读取SD卡与通过MCP4921来播放wav文件的功能:

https://github.com/adafruit/WaveHC

通过git下载也好,直接下载zip也好. 总之下载好解压之后把WaveHC这个文件夹拷贝到你的Arduino的库文件夹中. 系统中Arduino的库文件夹这样查看:

图 Arduino的库文件夹

转换音频

首先找个SD卡, 用TF+卡套也可以. 本人使用的是16G的SDHC卡, 最好是先进行格式化成FAT32格式. 再到你电脑上找几个想听的歌曲要转成单通道44.1KHz或以下, 16bit或以下的wav文件. 这里面我们使用Audacity来进行:

http://www.audacityteam.org/

这软件本人在其他文章中写了不少, 这里从简, 不清楚的可以留言或翻之前的文章.

比如要转化某mp3文件,首先当然是打开该文件:

  • 本文系21ic原创,未经许可禁止转载!

网友评论