ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示

2/05/2018

Raspberry pi 3とiOSでMarantz NA8005をコントロール

Raspberry PIを手に入れてから音楽ざんまいなのだが、一つ問題があって、簡単にステレオの類の電源のオンができない。

使っているステレオアンプは、昭和バブル時代の名機のアンプSony TA-F222ESJ というリモコンもない無骨なもの。長岡鉄男先生大絶賛。ハードオフなどで見かけたら是非ゲットしておくべきもの。このアンプMOS FET(今はもうほぼ手に入らない。)という素子で作られているので、温まるまで音が不安定でも、一度温まればってやつである。バイポーラでよければ(これも今、もうほとんど手に入らない)、TA-F500とかTA-F510Rとかがおすすめ。これもハードオフなどで捨て値で売られている。部屋が広ければ確保したい。

これらのアンプは、以下のやつでiOSから普通にオンオフできる。

ちなみに、こいつのコンセントはオーディオ的にあてにならないので、昔のオーディオタイマー対応コンセントを利用してオンオフしている。しかし、オーディオタイマーという昭和のラジオ録音をするための機材に関連する機器なんてもう売っておらず、ヤフオクだのみである。。。(机のしたのケーブルは突っ込まないでください。)

NewImage

閑話休題

利用しているDACは、MarantzのNA8005という最近生産中止になったもの。Spotifyとか使えないけど、AirplayとかDAC、USB HDD、DLNA再生ができるという、当時では全部入りの192KHzまで対応したDACである。これさえあれば、数年前までは何も困らなかったんだが。。Spotifyに対応せず。。。10万円もしたのに。。。と今、価格.comをみたら49800円で売られている (2018/2/4現在)

 

ちなみに価格コムの値段

http://kakaku.com/item/K0000653399/

音の好き嫌いがあるかもしれないが、音がいい。ラズパイにDACをつけている人もいるが、電源がスイッチング電源になる上にアナログ回路とデジタル回路が同居というのもなんだがかなぁと言う感じ。大学が甲州街道沿いにあったせいか、自分はノイズには結構うるさい。シールドとかしていなくて、学生実験レベルでも値が反転することが多々あった。まぁ、高調波ノイズにしかならなくて、普通の人にはあまりわからないからいいっちゃいいんだけど、気持ちわるいので自分はしない。。。

このNA8005をRaspberry PI 3にHomeBridgeをインストールして制御をしようというのが今回のお話。。。

やるべきことは、ラズパイに、

- Homebridgeのインストール

- homebridge-cmdswitch2のインストール

- NA8005のオンオフ、ステータス確認の設定

- デーモン起動の設定

多分だが、NA7004とかNA6005とかでもいけると思う。

- HomeBridgeのインストール

相変わらずベタ書きだが、以下を実行

 

sudo apt-get -y install libavahi-compat-libdnssd-dev
mkdir homebridge
cd homebridge
wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-armv7l.tar.xz
tar -xvf node-v8.9.4-linux-armv7l.tar.xz
cd node-v8.9.4-linux-armv7l/
sudo cp -R * /usr/local/
cd
node -v
sudo npm install -g homebridge --unsafe-perm
sudo useradd --system homebridge
sudo mkdir /var/homebridge
sudo chown homebridge:homebridge /var/homebridge/

sudo vi /etc/default/homebridge
# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/homebridge

# If you uncomment the following line, homebridge will log more
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*

sudo vi /etc/systemd/system/homebridge.service
[Unit]
Description=Node.js HomeKit Server
After=syslog.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

ちなみに以下をしないと動かなかった。

cd /usr/local/lib/node_modules/homebridge
sudo npm install --unsafe-perm mdns
sudo npm rebuild --unsafe-perm

 

- homebridge-cmdswitch2のインストール

sudo npm install -g homebridge-cmdswitch2

 

- NA8005のオンオフ、ステータス確認の設定

 

sudo apt-get -y install telnet
sudo mkdir /usr/local/na5008

以下DENON_IPにNA8005のIPアドレスを入れる。

電源オンスクリプト。起動したときに、USB-DACで起動するようにしてある

sudo vi /usr/local/na5008/pwon.sh
#!/bin/sh
DENON_IP=192.168.8.7
echo "PWON"|telnet $DENON_IP 23
sleep 10s
echo "SIPC"|telnet $DENON_IP 23

電源オフスクリプト

sudo vi /usr/local/na5008/pwoff.sh
#!/bin/sh
DENON_IP=192.168.8.7
echo "PWSTANDBY"|telnet $DENON_IP 23
sleep 10s
echo "PW?"|telnet $DENON_IP 23

電源ステータススクリプト これだけはWEB UIから拾ってくることに。。。

sudo vi /usr/local/na5008/pwstatus.sh
#!/bin/sh
DENON_IP=192.168.8.7
curl -s http://$DENON_IP/goform/formMainZone_MainZoneXml.xml |grep \<Power\> | grep ON

最後に実行権限をつけて終了

sudo chmod +x /usr/local/na5008/*.sh

 

HomeBeidgeの設定ファイルはこんな感じ

sudo su homebridge -s /bin/bash
vi /var/homebridge/config.json
{
"bridge": {
"name": "Homebridge",
"username": "B8:27:EB:29:55:2D",
"port": 51826,
"pin": "031-46-160"
},

"description": "HomeBridge",

"accessories": [
],
"platforms": [{
"platform": "cmdSwitch2",
"name": "CMD Switch",
"switches": [{
"name" : "NA8005",
"on_cmd": "/usr/local/na8005/pwon.sh",
"off_cmd": "/usr/local/na8005/pwoff.sh",
"state_cmd": "/usr/local/na8005/pwstatus.sh",
"polling": true,
"interval": 15,
"timeout": 2000,
"manufacturer": "D&M Holdings Inc.",
"model": "NA8005",
"serial": "XXXXXXXXXXXXXXXXX"
}]
}]
}

exit

- デーモン起動の設定

sudo systemctl daemon-reload
sudo systemctl enable homebridge
sudo systemctl start homebridge
sudo systemctl status homebridge
sudo journalctl -u homebridge

これでiOSに登録すればOK。iOSに登録するとこんな感じになる。

NewImage

というわけで、在庫処分のNA8005とラズパイをゲットして、フル装備のオーディオセットゲットだぁ。

 

ところで、多分このブログを社長も見ているかもしれないが、「ちったぁ仕事もしてくれればなぁ」と思われていないかどうか正直不安であるw

 

 

 

2/02/2018

Raspberry Pi 3でRoonとSpotify Connect

おくらばせながらRaspberry Pi 3を買った。どれがいいかわからなかったので、これ。

ちなみに、RS社製(UKあるいは日本のSonyの工場製)とElement 14(中国製)があるが、まぁ、安い買い物なので、Element 14製を購入。

無線LANもついている。LANポートは利用せず。ついでに電源アダプタも買った。別に携帯のでもよかったのだが、電源がシビアなので動作保証が取れているものを選択。

 

SDカードも32GBも買ったが実際は多分8GBくらいで十分。そもそもRaspberry PIでX Windowグリグリとかおかしいだろうというのが持論。あくまでも組み込み機器コントローラーという感じ。

MACで作成するのでイメージ書き込みソフト(etcher)とDebianベースのOS(Raspbian Jessie Lite)を事前に用意しておく。

EtcherでRaspbian Jessie Liteを焼き込み、焼き込みが終わったら一度SDカードを抜き差ししておく。

ターミナルを立ち上げて以下を実行。(SSHの有効化と無線LANの設定。無線LANは、11aとかには対応していないので注意!)

touch /Volumes/boot/ssh
cat << EOF > /Volumes/boot/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid=“SSID"
    psk=“PSKのキー”
}
EOF

これが終わればSDカードをRaspberry PIに刺して起動。SSHでログインができるにはしばしお時間がかかる。SSHするホスト名やIPアドレスがわからないが、raspberrypi.localでアクセスできるはず。

以下のコマンドをターミナルで実行

ssh pi@raspberrypi.local
パスワードはraspberry

そのまま以下を実行
sudo -i
raspi-config


* 4 Localisation Optionsを選択。
* I1 Change Localを選択。
* en_GB.UTF-8 UTF-8でスペースを押して*を外す。
* en_US.UTF-8 UTF-8でスペースを押して*を付ける。
* Default local for the system environment:でen_US.UTF-8を選択。

ちなみに、日本語のロケールも選択してもいいが、組み込みで別に日本語である必要もないので、英語だけ。

以下、何気にハードウェア乱数の設定やwatchdog timerの設定もついでに行なっている。使えるものはなんでも使おう。ただそれだけ。また、途中でファームもあげている。

cat << EOF >> /etc/environment
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
EOF

cat << EOF > /etc/asound.conf
pcm.!default {
type hw
card 1
}
EOF

cat << EOF >> /etc/systemd/timesyncd.conf
NTP=jp.pool.ntp.org
FallbackNTP=time.google.com
EOF

cat << EOF >> /etc/rc.local
/opt/vc/bin/tvservice --off
EOF

cat << EOF >>/boot/config.txt
dtparam=watchdog=on
EOF

cat << EOF >> /etc/modprobe.d/bcm2835-wdt.conf
options bcm2835_wdt nowayout=1 heartbeat=10
EOF

exit


sudo raspi-config nonint do_camera 0
sudo apt update ; sudo apt -y upgrade
sudo apt-get install rng-tools watchdog l libavahi-compat-libdnssd-dev
vi /etc/watchdog.conf
以下を修正
watchdog-device = /dev/watchdog
max-load-1 = 24

cat << EOF >> /etc/watchdog.conf
watchdog-timeout = 14
EOF

vi /etc/default/watchdog
以下を修正
watchdog_module="bcm2835_wdt"
vi /lib/systemd/system/watchdog.service

以下をコメントアウト
OnFailure=wd_keepalive.service

bug fixのために以下を修正
[Install]
WantedBy=multi-user.target

sudo update-rc.d watchdog defaults
sudo systemctl enable watchdog
sudo systemctl start watchdog
sudo systemctl status watchdog

sudo rpi-update
sudo apt-get autoremove
sudo apt-get cleansudo reboot

 

再起動して、再度SSHで接続。RoonとSpotifyの設定は以下。

#Roon Bridge
curl -O http://download.roonlabs.com/builds/roonbridge-installer-linuxarmv7hf.sh
chmod +x roonbridge-installer-linuxarmv7hf.sh
sudo ./roonbridge-installer-linuxarmv7hf.sh


#Spotify connect
curl -sL https://dtcooper.github.io/raspotify/install.sh | sh
sudo vi /etc/default/raspotify
  BITRATE="320"
  OPTIONS="--device=plughw:1"
sudo systemctl restart raspotify

 

ざっと書いたが以上