(2021-06-02追記: この記事の内容はすでに古くなっています。2021年5~6月に確認した次の記事を参照してください: Raspberry Pi Zero Wを超A&G+音声再生機にする(2021年5月版) - にせねこメモ )
Raspberry Pi Zero Wを買ったが、ディスプレイ接続端子がMini HDMIということで接続ケーブルがなかった。
ディスプレイを繋がない状態(headless)でセットアップしようとしたが、上手くいかなかったのでMini HDMI-HDMI変換アダプタを買い、キーボードもUSB Micro-Bオス-Aメス変換アダプタを利用して接続して調べたところ、headlessセットアップのやり方がわかったのでメモ。
また、ついでに超A&G+(AGQR)音声再生機にしてしまう。
なお、セキュリティ関係の設定は省いているのでセキュリティ的には微妙なはずなので注意。
環境
- 母艦: Windows 10 64-bit
- Raspberry Pi Zero W
- インストールするOS: Raspbian Stretch Lite (Version: September 2017)
手順
Micro SDへのイメージ書き込み
上のダウンロードページからRaspbian Stretch Liteのzipファイルをダウンロードしてくる。
解凍した中身の“2017-09-07-raspbian-stretch-lite.img”をWin32 Disk Imagerなどを利用してMicro SDカードに書き込む。
Wifi接続設定
Wifiの設定を行う。
If a wpa_supplicant.conf file is placed into the /boot/ directory, this will be moved to the /etc/wpa_supplicant/ directory the next time the system is booted, overwriting the network settings; this allows a Wifi configuration to be preloaded onto a card from a Windows or other machine that can only see the boot partition.
https://www.raspberrypi.org/blog/another-update-raspbian/
とのことで、Windowsから開けるbootのパーティションに設定ファイルであるwpa_supplicant.confを突っ込んでおくと自動で適切な場所にコピーしてくれるらしい。
次のような内容でwpa_supplicant.confを作成しSDカードに突っ込む。一行目がないと接続されないので気を付ける。
ctrl_interface=/var/run/wpa_supplicant network={ ssid="xxxxxxxxxxxxxxxxxxxx" psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx key_mgmt=WPA-PSK }
起動
USBで電源に接続すると起動する。USB端子は2つあるが、端の方にある方は電源供給専用らしい。
起動すると自動的にWifiに接続される。IPアドレスはRaspberry Pi Zero Wにディスプレイを繋げていればそこに表示されるが、分からない場合はAdvanced IP Scannerなどを利用して調べる。
SSH接続
sshで接続する。
この環境ではCygwinにOpenSSHのsshクライアントをインストールしてあるので、Cygwin端末を開き、Raspberry Pi Zero WのIPアドレス(例では192.168.11.10)を指定して次のように実行する。(Cygwinを入れてない場合はTera Termなどを利用して接続する)
ssh pi@192.168.11.10
パスワードを求められるので、Raspbianの初期パスワードraspberryを入力するとログインできる。(ついでに、rootパスワードはadminであるらしい)
ソフトウェアを最新版にしておく:
sudo apt update sudo apt upgrade
ラジオにする
pHAT DACセットアップ
まず、Raspberry Pi Zero W側にピンヘッダ(別売り)を、pHAT DAC側にピンソケットをはんだ付けし、それらを接続する。
また、pHAT DACのミニジャックにスピーカーなどを接続しておく。ヘッドフォンを繋ぐ場合、音量が結構大きいので注意。音量コントロールのついているものを接続するのがよいと思う。
次にソフトウェアのインストールを行う。次のコマンドを実行:
curl https://get.pimoroni.com/phatdac | bash
その後、再起動する。
ストリーミング受信に必要なソフトウェアのインストール
sudo apt install rtmpdump ffmpeg
超A&G+ (AGQR)音声の再生
↑を参考に、次のコマンドを実行するとpHAT DACから音声が流れる。
rtmpdump -r rtmp://fms-base1.mitene.ad.jp/agqr/aandg22 --live -o - | ffmpeg -i - -vn -f s16le -ar 48k -ac 2 - | aplay -f dat
起動時に自動再生する様に設定
再生用シェルスクリプトの用意
nano playagqr.sh
playagqr.shを次の内容で作成:
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin rtmpdump -r rtmp://fms-base1.mitene.ad.jp/agqr/aandg22 --live -o - | ffmpeg -i - -vn -f s16le -ar 48k -ac 2 - | aplay -f dat
実行属性をつけて/opt/にコピー。
chmod +x playagqr.sh sudo cp playagqr.sh /opt/
systemdを利用した自動起動
systemdを利用して起動時に自動実行されるようにする。
sudo nano /etc/systemd/system/playagqr.service
playagqr.serviceを次のような内容で作成する:
[Unit] Description = Play AGQR radio [Service] ExecStart=/opt/playagqr.sh Restart=always Type=simple User=pi Group=audio [Install] WantedBy=multi-user.target
自動起動を設定する:
sudo systemctl enable playagqr
これで、電源を繋いでしばらくするとAGQRの音が再生されるようになる。