RaspberryPi + DAC + volumio = AirPlay

#はじめに
「AirPlayで音楽聴きたい」が動機。
Raspberry PiにDAC接続して、volumio導入を行いAirPlayするまでです。

#準備
今回は[サインスマート HIFI DAC サウンドカード モジュール I2Sインターフェース Raspberry Pi B+、2 Model B対応](http://www.amazon.co.jp/%E3%82%B5%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88-HIFI-%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89-%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-I2S%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9-Raspberry-Model/dp/B00ZEWD5VK)をチョイス。

![513VfyiZkQL.jpg](https://qiita-image-store.s3.amazonaws.com/0/95484/e20fd968-cd8c-74c5-fef8-f48d6360bcf3.jpeg)


volumioは[公式](https://volumio.org/get-started/)からダウンロードして、SDカードにWin32DiskImager等で書き込んだ。

#volumioの設定

有線LANで接続した場合には、[http://volumio.local](http://volumio.local)で見つかるはず。
右上のMENUからSYSTEMに進み、I2S Driverの設定を「Hifiberry +」にする。
ここでHifiberryなど違う選択をすると音が出ないので注意。

![FireShot Capture 1 - Volumio - Audiophile Music Player - http___volumio.local_settings.php.png](https://qiita-image-store.s3.amazonaws.com/0/95484/cb7e873b-9993-b0a3-1671-f9fb76f27c08.png)

AirPlayは初期設定でonになっているので特に何もしなくて良い。
各種設定はお好きなように。

PlaybackのResampling設定は初期設定(disable)のままにしておいた。
Raspberry Pi2の場合には違和感なく動作していたが、Raspberry Piの場合、パワー不足で音がぶつ切れになり使い物にならなかった。
AirPlayで音楽聞く程度ならdisableのままで良いでしょう。

#赤外線リモコンを使えるようにする
ステップとしては２つ。
1.IRを使えるようにする(lirc導入等々）
2.リモコン学習

我が家にはIRKitやhomebridgeが導入済みなんで、その辺りとも連携可能。

##準備

今回利用した[サインスマート HIFI DAC サウンドカード モジュール I2Sインターフェース Raspberry Pi B+、2 Model B対応](http://www.amazon.co.jp/%E3%82%B5%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88-HIFI-%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89-%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-I2S%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9-Raspberry-Model/dp/B00ZEWD5VK)は赤外線リモコンの受信部があるということで、これを有効にしてみた。

基本的な手順は以下を参考にした。
[Volumio を赤外線リモコンでコントロールする (1) lircの導入](http://yjo-blog.blogspot.jp/2015/02/volumio-1-lirc.html)
[赤外線でリモコンの信号を送受信する実験](http://blog.livedoor.jp/victory7com/archives/34652043.html)
[RaspberryPiでLIRCする(2015/02仕様変更？)](http://wbbwbb.blog83.fc2.com/blog-entry-189.html)

/boot/config.txtに「dtoverlay=lirc-rpi,gpio_in_pin=26」を追記する。IR受光素子がGPIO26らしい。
また/etc/moduleに記載するのは古い仕様らしいので、記載しないように。

![JMmJX.png](https://qiita-image-store.s3.amazonaws.com/0/95484/df4d4065-4a54-ea4b-6306-2cce2b15402c.png)

正常に動いているかチェック。

```shell-session
pi@volumio:~$ lsmod | grep lirc
lirc_rpi                6422  0
lirc_dev                8110  1 lirc_rpi
rc_core                16220  1 lirc_dev
```

```shell-session
pi@volumio:~$ dmesg | grep lirc
pi@volumio:~$ dmesg | grep lirc
[    3.658110] lirc_dev: IR Remote Control driver registered, major 245
[    3.752552] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.
[    4.764654] lirc_rpi: auto-detected active low receiver on GPIO pin 26
[    4.774113] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0
[    4.786114] lirc_rpi: driver registered!
```

```shell-session
pi@volumio:~$ ls /dev/lirc* -la
crw-rw---T 1 root video 245, 0  1月  1  1970 /dev/lirc0
```
gpioの状態を取得するとちゃんと表示されていない・・・原因調査中。

```shell-session
pi@volumio:~$ sudo mount -t debugfs debugfs /sys/kernel/debug
pi@volumio:~$ sudo cat /sys/kernel/debug/gpio
GPIOs 0-53, platform/3f200000.gpio, pinctrl-bcm2835:
 gpio-35  (?                   ) in  hi
 gpio-47  (?                   ) out lo
```

受光できるようになっていれば、以下のようにリモコンを向けてボタンを押せば受信データを取得できる。
一応動いているらしい。

```shell-session
pi@volumio:~$ sudo /etc/init.d/lirc stop
pi@volumio:~$ mode2 -d /dev/lirc0
space 16777215
pulse 8943
space 4412
pulse 609
space 518
pulse 607
space 560
pulse 566
space 518
pulse 617
space 546
pulse 570
space 517
・
・
・
```

##リモコン学習する
こちらは、自宅のシステム構築上、先延ばしにすることにした。
理由は赤外線リモコンの信号をテレビと、IRKitなど複数の受信機が受信してしまい、少し構成を考えないと面倒なため。
追加記事用に以下の参考にしたサイトを紹介しておく。

[Remote Controlling Your Raspberry Pi Hi-Fi Device](https://www.geekroo.com.au/1103)
[赤外線学習リモコン](http://cubic9.com/Devel/%C5%C5%BB%D2%B9%A9%BA%EE/RaspberryPi/%C0%D6%B3%B0%C0%FE%B3%D8%BD%AC%A5%EA%A5%E2%A5%B3%A5%F3/)
[【Raspberry Pi専用I2S - HIFI DAC】GEEKROO HiFi DAC PiCobber + Volumioの赤外線リモコン機能を試す](http://blog.goo.ne.jp/pandaaaaaaaaz/e/2f37e664d881ddd448a7c545309e5e14)

#さいごに
基盤むき出しで設置するとホコリなどが心配なので、100円均一に行って、トレーディングカードのケースを買ってきた。
Raspberry Piのサイズが9cm×6cm程度。Hifi DAC接続で5cmくらいの背になっているのでジャストフィットサイズ。
ビール片手に工作する程度の簡単さ。

市販のケースだと背が高くて入らない。
ホコリが心配。
![DSC_3095.JPG](https://qiita-image-store.s3.amazonaws.com/0/95484/0bba39d5-5e19-24c4-fe39-678bde8d5ff9.jpeg)

100円均一で売っていたトレーディングカードケース。
サイズ的にぴったし。
![DSC_3096.JPG](https://qiita-image-store.s3.amazonaws.com/0/95484/c87153c1-73f8-7a26-9802-e927126e7fb2.jpeg)

三箇所(LAN,Audio,USB)にカッターナイフで穴を開けてRaspberry Piを入れてみた。
いい感じ。
![DSC_3098.JPG](https://qiita-image-store.s3.amazonaws.com/0/95484/2a9d4774-3b56-f55a-bf37-74fe676c8160.jpeg)

AudioとUSB側は穴が開けにくいので注意。
構造上、ケースのプラ部分が二重になっているので、カッターナイフで「えいや」と思い切り良く作業したほうがいいと思う。