ElectroBlog

読者です 読者をやめる 読者になる 読者になる

ElectroBlog

This is ElectroBlog for explaining my electronics projects such as Raspberry Pi and Micro:bit. ラズペリーパイなどのエレクトロニクス機器を使った実験メモ。

Raspberry Pi Zero w (5) USB DACから音楽を再生(Raspbian)

f:id:ElectroBlog:20170506121624j:image

Raspberry Pi Zero wで外付けUSB DACを使って音楽を聴きたいと思い、実践してみた。

OSはRaspbianを使用。

本当はZero wの内蔵無線LANを使いたいが技適がとれていないため、外付け無線USB LANで実施。実際はRaspberry Pi 3の内蔵無線LANで動作確認できているため、配線の少なさを考えるとそっちのほうが便利。

 

注記:Zero wは日本の技適が取れていないようなので内蔵無線LANを使用しない方法を解説していきます。

 

手順は以下の通り。

①Raspberry Piとssh接続

②外付け無線LANを利用してRaspberry Piをインターネットへ接続

③Raspberry Piにmpdとmpcをインストール

④Raspberry Piにsambaをインストール

⑤音源をSDカードに保存する

⑥外付けUSB DACを接続

⑦mpdで再生

 

まず、Raspberry Piとssh接続できるようにする。

下記を参考にする。

Raspberry Pi Zero w(2) 初期設定:HDMIディスプレイを使わずに外付け無線ルーターだけで簡単にSSH接続する(Raspbian) (Zero wも共通) - ElectroBlog

 

その次に、外付け無線LANをAPモードにして、Raspberry Piをインターネットへ接続する。下記を参考にする。

Raspberry Pi Zero w (4) 小型USB無線LANを使って自宅wifiのネットワーク経由でSSH接続する(Raspbian) - ElectroBlog

 

Tera termでssh接続をしている状態で、

今回、音楽の再生に使用するmpdとmpcをインストールする。

手順は以下の通り。

f:id:ElectroBlog:20170430162539p:plain

sudo apt-get -y install mpd mpc

完了したら下記画面に戻る。

f:id:ElectroBlog:20170430161839p:plain

下記コマンドから最新バージョンへアップデートする。

sudo apt-get update

f:id:ElectroBlog:20170506154003p:plain

mpdを再起動する

sudo /etc/init.d/mpd restart

f:id:ElectroBlog:20170506102937p:plain

 

次に音源を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

Amazon | iBUFFALO USB2.0Hub バスパワー 4ポート 延長ケーブル付 ブラック 【PlayStation4, PS4 動作確認済】 BSHT4UBK | バッファロー | USBケーブル通販

f:id:ElectroBlog:20170506155141p:plain

 

Amazon | USB OTG 極小アダプタ USBオスをmicro USBオスに変換 (2個) | KAUMO | USBアダプタ通販

f:id:ElectroBlog:20170506155405p:plain

Raspberry Pi Zero wに接続したUSBハブに無線LANとUSB DACを接続する。

次にUSB DACが接続されているか確認する。

 

lsusb

f:id:ElectroBlog:20170506155541p:plain

 また、USB DACが接続されているPortの番号とDevice番号を調べる。

aplay -l

f:id:ElectroBlog:20170506155702p:plain

 今回使ったAT-PHA100はcard 1のdevice 0とわかる。

試しに下記コマンドを入力すると

cat /proc/asound/cards

f:id:ElectroBlog:20170505232559p:plain

cardは0と1が存在するとわかる。

初期設定では起動時にcard0 が選択されているため、

音声出力先を1へ変更する必要がある。

viコマンドを使用して出力先の番号を変更する。

sudo vi /etc/mpd.conf

f:id:ElectroBlog:20170506160406p:plain

先程調べた通り、card 1のdevice 0と判明しているので、

下記のように変更する。

"hw: card番号, device番号"

"hw:1,0"

 

更に初回起動時にはcard0が選択される設定になっているため、

それも変更する

sudo vi /usr/share/alsa/alsa.conf

 f:id:ElectroBlog:20170506000933p:plain

viコマンドを使用して下記2箇所の0を1に変更する

f:id:ElectroBlog:20170506160105p:plain

f:id:ElectroBlog:20170506001018p:plain

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

f:id:ElectroBlog:20170506103225p:plain

 

 

再生する。

mpc play

f:id:ElectroBlog:20170506161055p:plain

 

選択したUSB DACが動作しているか下記から確認する。

cat /proc/asound/card1/stream0

(card1←カード番号1 / stream0←device番号1)

無事に再生されていればStatusがRunning表示となる。

f:id:ElectroBlog:20170506161253p:plain

 

以上で完了。無事USB DACから音楽が再生された。

 

このとき、別のUSB DACで再生を試みようとした際、

消費電流が250mAほどのUSB DACではoutputエラーが発生した。

 

ちなみにmpc コマンドはこちらにも記載。

Speaker pHAT (2) Raspberry Pi Zeroでwifiルーター経由でとりあえず音出し(aplayとMPC使用) - ElectroBlog

 

man mpc

でもmpcコマンドの詳細が確認できる。