Raspberry Pi Zero w (5) USB DACから音楽を再生(Raspbian)
Raspberry Pi Zero wで外付けUSB DACを使って音楽を聴きたいと思い、実践してみた。
OSはRaspbianを使用。
本当はZero wの内蔵無線LANを使いたいが技適がとれていないため、外付け無線USB LANで実施。実際はRaspberry Pi 3の内蔵無線LANで動作確認できているため、配線の少なさを考えるとそっちのほうが便利。
注記:Zero wは日本の技適が取れていないようなので内蔵無線LANを使用しない方法を解説していきます。
追記: 2017/7 技適が取得され、内蔵無線LANが使用可能となった。
手順は以下の通り。
①Raspberry Piとssh接続
②外付け無線LANを利用してRaspberry Piをインターネットへ接続
③Raspberry Piにmpdとmpcをインストール
④Raspberry Piにsambaをインストール
⑤音源をSDカードに保存する
⑥外付けUSB DACを接続
⑦mpdで再生
まず、Raspberry Piとssh接続できるようにする。
下記を参考にする。
その次に、外付け無線LANをAPモードにして、Raspberry Piをインターネットへ接続する。下記を参考にする。
Raspberry Pi Zero w (4) 小型USB無線LANを使って自宅wifiのネットワーク経由でSSH接続する(Raspbian) - ElectroBlog
Tera termでssh接続をしている状態で、
今回、音楽の再生に使用するmpdとmpcをインストールする。
手順は以下の通り。
sudo apt-get -y install mpd mpc
完了したら下記画面に戻る。
下記コマンドから最新バージョンへアップデートする。
sudo apt-get update
mpdを再起動する
sudo /etc/init.d/mpd restart
次に音源をSDカードに保存するためにSambaをインストールする。
(Raspberry PiのSDカード内のフォルダを共有サーバーとして利用)
手順は下記リンク先を参照。
Raspberry Pi Zero w (3) SambaをインストールしてRaspberry PiのSDカードへネットワーク経由でアクセスする(Raspbian) - ElectroBlog
今回はmpdフォルダ直下のmusicフォルダ内に音源を保存。
[mpd]
path = /var/lib/mpd
read only = No
guest ok = Yes
force user = root
musicフォルダにアクセスできるか確認する。
これで下準備は完了。
実際に外付けのUSB DACを接続する。
今回はOTG変換コネクタとUSBハブを使用して、無線LANとUSB DACを接続した。
iBUFFALO BSHT4UBK
SSA Service社製
Raspberry Pi Zero wに接続したUSBハブに無線LANとUSB DACを接続する。
次にUSB DACが接続されているか確認する。
lsusb
また、USB DACが接続されているPortの番号とDevice番号を調べる。
aplay -l
今回使ったAT-PHA100はcard 1のdevice 0とわかる。
試しに下記コマンドを入力すると
cat /proc/asound/cards
cardは0と1が存在するとわかる。
初期設定では起動時にcard0 が選択されているため、
音声出力先を1へ変更する必要がある。
viコマンドを使用して出力先の番号を変更する。
sudo vi /etc/mpd.conf
先程調べた通り、card 1のdevice 0と判明しているので、
下記のように変更する。
"hw: card番号, device番号"
↓
"hw:1,0"
更に初回起動時にはcard0が選択される設定になっているため、
それも変更する
sudo vi /usr/share/alsa/alsa.conf
viコマンドを使用して下記2箇所の0を1に変更する
↓
vi編集の仕方は下記リンクを参考にする。
Raspberry Pi:viコマンド一覧 : Micro SDカード内のファイルを編集(3, zero, zero w共通) - ElectroBlog
変更したら再起動する。
sudo reboot
まず、出力先が正常に変更できたか音出しテストする。
aplay /usr/share/sounds/alsa/Rear_Center.wav
をTera termから実行する。音が鳴ればOK。
それが完了すれば、いよいよmpcコマンドを使って音出しをしてみる。
まず、音源データをアップデートする。
mpc update
プレイリストに全曲追加。
mpc ls | mpc add
リストの曲を確認(曲名が表示される)
mpc ls
再生する。
mpc play
選択したUSB DACが動作しているか下記から確認する。
cat /proc/asound/card1/stream0
(card1←カード番号1 / stream0←device番号1)
無事に再生されていればStatusがRunning表示となる。
以上で完了。無事USB DACから音楽が再生された。
このとき、別のUSB DACで再生を試みようとした際、
消費電流が250mAほどのUSB DACではoutputエラーが発生した。
ちなみにmpc コマンドはこちらにも記載。
Speaker pHAT (2) Raspberry Pi Zeroでwifiルーター経由でとりあえず音出し(aplayとMPC使用) - ElectroBlog
man mpc
でもmpcコマンドの詳細が確認できる。
その他Raspberry Pi情報、Micro:bit情報はTOP PAGEからどうぞ