首頁 > 評測 > 8位機也玩音頻-Arduino+SD+DAC+運放打造的播放器

8位機也玩音頻-Arduino+SD+DAC+運放打造的播放器

8位機   Arduino   SD   DAC   
  • 作者:zhanzr
  • 來源:21ic
  • [導讀]
  • 比如本文要介紹的Adafruit Wave Shield,就能是專門為Arduino設計的音頻模塊.確切的說是為AVR這一類的8位機而設計的音頻模塊.下文將從硬件到軟件詳細介紹一下子此模塊的設計細節(jié)與使用方法.

圖 插在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這種開源硬件這么流行的原因: 方便快捷評估硬件.這一點效率在真正的開發(fā)中很重要.在DIY中也是如此,因為可以參考別人成果,激發(fā)你的創(chuàng)作靈感. 當沒有庫的時候也要發(fā)揮自己動手的開創(chuàng)精神, 有庫的時候就要先去利用.

以下這個庫函數封裝了讀取SD卡與通過MCP4921來播放wav文件的功能:

https://github.com/adafruit/WaveHC

通過git下載也好,直接下載zip也好. 總之下載好解壓之后把WaveHC這個文件夾拷貝到你的Arduino的庫文件夾中. 系統(tǒng)中Arduino的庫文件夾這樣查看:

圖 Arduino的庫文件夾

轉換音頻

首先找個SD卡, 用TF+卡套也可以. 本人使用的是16G的SDHC卡, 最好是先進行格式化成FAT32格式. 再到你電腦上找?guī)讉想聽的歌曲要轉成單通道44.1KHz或以下, 16bit或以下的wav文件. 這里面我們使用Audacity來進行:

http://www.audacityteam.org/

這軟件本人在其他文章中寫了不少, 這里從簡, 不清楚的可以留言或翻之前的文章.

比如要轉化某mp3文件,首先當然是打開該文件:

  • 本文系21ic原創(chuàng),未經許可禁止轉載!

網友評論