にせねこメモ

はてなダイアリーがUTF-8じゃないので移ってきました。

Raspberry Pi Zero Wを超A&G+音声再生機にする(2021年5月版)

Raspberry Pi Zero Wを超A&G+(AGQR)音声再生機にする。


以前書いた記事

が古くなってるので、今やってできる手順を書く。

環境

母艦

手順

Micro SDへのイメージ書き込み

  1. Operating SystemにRaspberry Pi OS (32-bit)を選択
    • SDカードの容量が小さければRaspberry Pi OS Lite (32-bit)とかでもOK
  2. StorageにSDカードを選択
  3. WRITEをクリック
  4. 書き込みが終わったらCONTINUEを押してウィンドウを閉じる
    • 後で見てみたら入ったバージョンはRaspbian GNU/Linux 10 (buster)だった

SSH, Wifiのセットアップ

(SDカードが認識されない場合はSDカードを指しなおす)
SDカード(bootという名前のパーティション)を開く

SSH有効化

sshという名前の空ファイルを作成

Wifi接続設定

wpa_supplicant.confという名前のファイルを作成し、次のような内容にする。

ctrl_interface=/var/run/wpa_supplicant
network={
    ssid="xxxxxxxxxxxxxxxxxxxx"
    psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    key_mgmt=WPA-PSK
}

ただし、

その後、PCからSDカードを取り外す。

起動

Raspberry Pi Zero WにSDカードを挿す。
電源に接続する。端の方にあるUSB端子が電源専用となっている。電源に繋ぐと起動し、自動的にWifiに繋がる。

SSHで接続する

IPアドレスRaspberry Pi Zero Wにディスプレイを繋げていればそこに表示されるが、分からない場合はローカルIPは限られているので順番に試せばそのうち繋がる。面倒ならAdvanced IP Scannerなどを利用して調べる。

CygwinのOpenSSHを入れてるので次のようなコマンドでつなぐ。(Cygwinを使ってない場合はTera Termとかを利用して接続する)
Raspberry Pi Zero WのIPが192.168.11.10だとすると

ssh pi@192.168.11.10
  • Are you sure you want to continue connecting (yes/no/[fingerprint])と聞かれたらyesと入力してEnter
  • 初期パスワードraspberryを入力してログイン

各種設定

パスワード変更

外に公開するわけではないといえ、一応パスワード位は変えた方がいいかも?

passwd

現在のパスワードを1回、変更後のパスワードを2回入力する。

ソフトを最新に更新
sudo apt update
sudo apt -y upgrade
タイムゾーンを東京にする
sudo raspi-config

で設定を開き、

  • 5 Localisation OptionsTimezoneAsiaTokyoFinish

にする。

ラジオにする

pHAT DACを使った。しかしpHAT DACはすでにディスコンなので、新しく用意するには代わりにPirate Audioを使うといいっぽい。次のようなやつ。セットアップはPirate Audioの説明に従うとよい。

pHAT DACセットアップ

まず、Raspberry Pi Zero W側にピンヘッダ(別売り)を、pHAT DAC側にピンソケットをはんだ付けし、それらを接続する。
また、pHAT DACのミニジャックにスピーカーなどを接続しておく。ヘッドフォンを繋ぐ場合、音量が結構大きいので注意。音量コントロールのついているものを接続するのがよいと思う。

次にソフトウェアのインストールを行う。次のコマンドを実行:

curl https://get.pimoroni.com/phatdac | bash

yでインストールする。
その後、再起動する。

スピーカーから流れる謎の音声メッセージを消す

スピーカーから“To install screen reader, press Ctrl-Alt-Space”って流れてうるさいので消す。

sudo rm /etc/xdg/autostart/piwiz.desktop
sudo reboot now

参考: update - How do I stop the audio message "To install the screen reader press control alt spce"? - Raspberry Pi Stack Exchange

超A&G+(AGQR)音声の再生

Raspberry Pi OS Liteの場合はffmpegのインストールが必要かも。

ffplay -nodisp "https://fms2.uniqueradio.jp/agqr10/aandg1.m3u8"

を実行すると再生される。

起動時に自動再生するように設定

再生用シェルスクリプトの用意
nano playagqr.sh

playagqr.shを次の内容で作成

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ffplay -nodisp "https://fms2.uniqueradio.jp/agqr10/aandg1.m3u8"

実行属性をつけて/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

これで、電源を繋いでしばらく(1分20秒ぐらい)するとAGQRの音が再生されるようになる。結構時間かかる……Raspberry Pi OS Liteの方がよかったかも?