2014年3月15日 星期六

Beaglebone Black 使用USB音效卡(1)

    由於想要把Beaglebone Black變成音樂撥放器,所以去研究了使用ALSA來進行LINUX的音訊處理,其中有遇到一些大大小小的問題,所以寫了此篇文章來分享,若小弟有哪裡做的不太對,歡迎大大留言指導,謝謝!

在閱讀之前,您可能需要有下列的裝置:
1.安裝Ubuntu的Beaglebone Black (kernel版本別太舊)
   要能上網 ,並且有電源供應器 (其實不一定,要看情況)
2.一張支援Linux的USB音效卡


在閱讀之前,您可能需要會下列的東西:
1.透過ssh指令連線進入beaglebone black (LINUX) 
   或是 透過putty連線進入beaglebone black (WINDOWS)
2.基本的Linux操縱
3.懂得使用Ubuntu的apt-get指令

正文
-----------------------------------------------------------------------------------------

USB音效卡直接接到BBB的USB埠中,連接網路線、電源線、USB線,
我使用的USB音效卡是露天拍賣買的,$50一個 ( 比運費還便宜阿 = _= )
" USB Audio 音效卡 Windows8 32bit/64bit & Linux 免驅動光碟 "
而網路是使用具有DHCP功能的router,插著就能上網,電源是使用
5V2A的變壓器供電。



接著,把BBB重開機,並使用ssh連上它。
確認音效卡有被偵測到,我們切換到proc/asound的資料夾去檢查

若您連這個資料夾都沒有,可能代表您的kernel是不支援ALSA的。
使用ls觀察檔案結構,在這裡可看到,Black 與 card1 分別為兩個設備,
一個是BBB的HDMI音源輸出 (HDMI是有音源輸出的 ),另一個則是我們的USB音效卡,
若您沒有出現card1,可能是您的音效卡晶片是不被kernel支援的。

我們可透過cat pcm來顯示這些音訊設備的資訊

識別   裝置名稱                        播放PCM    錄音PCM
00-00: HDMI nxp-hdmi-hifi-0 :  : playback 1
01-00: USB Audio : USB Audio : playback 1 : capture 1

 HDMI nxp-hdmi-hifi-0這個就是BBB的HDMI音源輸出,我們可以看到,他僅有playback,
並沒有 capture ,而 USB Audio : USB Audio就是我們的USB音效卡。

確認我們的音效卡都OK後,可幫音效卡接上耳機,準備測試撥放音樂。

隨便把一個wav檔案抓到BBB中 (看你要透過網路還是甚麼方式,反正弄個wav就是了)
*可不要拿mp3檔案喔,因為mp3是編碼過後的,是不能這樣直接撥的。


銀魂主題曲,我還滿喜歡的XD

我們目前先不自己寫程式去撥放音樂,先用現成的ALSA工具來做,
到時候我會再繼續延伸下去。

使用apt-get install alsa-utils來安裝Alsa-utils工具,接著測試這幾個指令是否能用
aplay            ALSA的音樂播放工具                         簡易用法指令 aplay <filename>
alsamixer      ALSA的音效卡設定工具                     簡易用法指令 alsamixer

到這裡你或許會很開心的,直接下aplay Pray.wav來撥放音樂。


程式會停在這不動,代表正在撥放,不過~~~~你會甚麼都聽不到!!!

為甚麼呢?  因為預設的音效卡是HDMI音源輸出喔~你的耳機總不會接在那上面吧!!

那該怎麼辦呢?  我們要對aplay下參數,讓他使用USB音效卡來撥放!
識別   裝置名稱                        播放PCM    錄音PCM
00-00: HDMI nxp-hdmi-hifi-0 :  : playback 1
01-00: USB Audio : USB Audio : playback 1 : capture 1

指令 aplay -D hw:1,0 Pray.wav , -D參數為選擇裝置,這裡我們使用 hw:1,0 是代表
01-00: USB Audio : USB Audio : playback 1 : capture 1 這個裝置 ( "01-00:" --> hw:1,0  )

不過~~希望您還沒把他撥放下去,因為......預設的音量絕對會穰您的耳朵感到不舒服....
我們能使用 alsamixer 指令進入設定畫面 :
輸入指令,alsamixer後應該會看到這畫面 (高級ㄟ~~居然不是純文字XD)


接著按下 F6 , 選擇我們的USB音效卡

左邊的是音源輸出音量~~建議調到個位數喔...很大聲的 QQ


調整完按ESC關閉。

最後 下指令  aplay -D hw:1,0 Pray.wav  聽音樂了 !!

-----------------------------------------------------------------------------------------
正文結束


終於介紹完了 ((累
若過程中有遇到甚麼問題,歡迎提出來大家一起討論喔 ^^


沒有留言:

張貼留言