380 日記 | 電源オンで自動起動 episode artwork

EPISODE · Jul 12, 2026 · 28 MIN

380 日記 | 電源オンで自動起動

from TanaRadio · host たな

電源オンで音が出るようにしました。見かけはともかく,機能的にはほぼ期待通りのモノができました(フェーズ5J完了)。フェーズ5J 詳細マニュアル 電源ONでTanaRadio Piを自動起動する 0. 今回の目標 今回の完成イメージはこれです。 Raspberry Piの電源を入れる ↓ 自動で tanaradio_5i.py が起動する ↓ 現在の棚・再生モードをLEDで表示する ↓ プレイリストを作る ↓ mpvが起動する ↓ USBスピーカーから音が出る ↓ ボタンと音量ダイヤルで操作できる 今回は、ケースにはまだ入れません。 まずは、 モニターなし キーボードなし マウスなし ターミナル操作なし で動くかを確認します。 1. 今回使う方式 今回は systemd という仕組みを使います。 これは、Raspberry Piの起動時に自動でプログラムを立ち上げるための標準的な方法です。 今回作るものは2つです。 1. 起動用シェルスクリプト run_tanaradio_5j.sh 2. systemdサービス設定 tanaradio.service 直接 tanaradio_5i.py を自動起動してもよいのですが、間にシェルスクリプトを置いた方が安全です。 理由は、起動直後はWi-Fiや音声出力の準備がまだ終わっていないことがあるからです。少し待ってからPythonを起動するようにします。 2. まず手動実行で現在の状態を確認する Raspberry Piでターミナルを開きます。 cd ~/tanaradio5 ls 次のようなファイルがあることを確認します。 tanaradio_5i.py shelf_01_voice_life.txt shelf_02_tech_ai_mono.txt shelf_03_education_research.txt shelf_04_books_culture.txt shelf_05_tanaradio.txt 次に、いつものように手動実行します。 python3 tanaradio_5i.py ここで、これまで通り音が出て、ボタンと音量ダイヤルが効けばOKです。 終了するときは、 Ctrl + C です。 ここが成功していない場合は、自動起動に進まないでください。 自動起動は「動いているものを自動化する」段階です。動いていないものを自動化すると、エラーが忍者のように見えなくなります。 3. USBスピーカーを確認する USBスピーカーが認識されているか確認します。 aplay -l たとえば次のような表示が出れば、USBスピーカーが見えています。 card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio] 表示名は機種によって違います。 USB Audio や Device のような文字があれば、だいたいOKです。 次にテスト音を鳴らします。 speaker-test -t wav -c 2 左右からテスト音が出ればOKです。 止めるときは、 Ctrl + C です。 4. mpvだけでUSBスピーカーから音が出るか確認する すでに playlist_5i.m3u または playlist_5g.m3u のようなプレイリストがある場合は、それを使って確認します。 まず、作業フォルダを確認します。 cd ~/tanaradio5 ls *.m3u 表示されたプレイリスト名に合わせて、たとえば次を実行します。 mpv --no-video playlist_5g.m3u または、 mpv --no-video playlist_5i.m3u 音が出ればOKです。 止めるときは、 q です。 もしプレイリスト名がわからなければ、あとで tanaradio_5i.py が自動で作るので、ここは深追いしなくて大丈夫です。 5. 起動用シェルスクリプトを作る 次に、自動起動用のシェルスクリプトを作ります。 cd ~/tanaradio5 nano run_tanaradio_5j.sh 次をそのまま貼り付けます。 #!/bin/bash # TanaRadio Pi フェーズ5J 起動用スクリプト cd /home/tana/tanaradio5 || exit 1 # 起動直後はWi-Fiや音声出力の準備が終わっていないことがあるため、少し待つ sleep 12 # Pythonのprintをログにすぐ出す export PYTHONUNBUFFERED=1 /usr/bin/python3 /home/tana/tanaradio5/tanaradio_5i.py 保存します。 Ctrl + O Enter Ctrl + X 実行権限を付けます。 chmod +x run_tanaradio_5j.sh 6. 起動用スクリプトを手動で試す まだ自動起動にはしません。 先に、このスクリプト自体が動くか確認します。 ./run_tanaradio_5j.sh 12秒ほど待ってから、tanaradio_5i.py が起動するはずです。 音が出て、ボタンとダイヤルが効けばOKです。 終了するときは、 Ctrl + C です。 7. systemdサービスファイルを作る 次に、Raspberry Pi起動時にこのスクリプトを自動実行する設定を作ります。 sudo nano /etc/systemd/system/tanaradio.service 次をそのまま貼り付けます。 [Unit] Description=TanaRadio Pi Phase 5J Wants=network-online.target After=network-online.target sound.target [Service] Type=simple User=tana WorkingDirectory=/home/tana/tanaradio5 ExecStart=/home/tana/tanaradio5/run_tanaradio_5j.sh Restart=on-failure RestartSec=5 Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target 保存します。 Ctrl + O Enter Ctrl + X ここでは User=tana としています。 たなさんのRaspberry Piのユーザー名が tana なので、このままでよいはずです。 8. systemdに設定を読み込ませる sudo systemctl daemon-reload ここではまだ自動起動は有効化されていません。 設定ファイルをRaspberry Piに認識させただけです。 9. まず手動でサービス起動する いきなり再起動しないで、まずサービスとして起動します。 sudo systemctl start tanaradio.service 少し待ちます。 12秒後くらいにLEDが点滅し、音が出ればかなり良いです。 状態を確認します。 sudo systemctl status tanaradio.service 画面に次のような表示があればOKです。 Active: active (running) または、すでに何らかの理由で終了していれば、 Active: failed などが出ます。 終了するときは q です。 10. ログを見る 自動起動では、エラーはターミナルに直接出ません。 その代わり、ログを見ます。 journalctl -u tanaradio.service -n 80 --no-pager リアルタイムで見る場合は、 journalctl -u tanaradio.service -f 止めるときは、 Ctrl + C です。 ログに、 TanaRadio Pi フェーズ5I 現在の棚: 現在の再生モード: プレイリストを作り直します mpvを起動しました のような表示が出ていれば、プログラムは動いています。 11. サービスを止める方法 手動で実験したいときは、先にサービスを止めます。 sudo systemctl stop tanaradio.service これは大事です。 サービスが動いている状態で、さらにターミナルから python3 tanaradio_5i.py を実行すると、GPIOやmpvのソケットが二重に使われて、おかしな動きになる可能性があります。 つまり、今後の基本はこうです。 自動起動で使うとき: sudo systemctl start tanaradio.service 手動で実験するとき: sudo systemctl stop tanaradio.service python3 tanaradio_5i.py 12. 自動起動を有効にする サービスとして動くことを確認できたら、起動時に自動実行されるようにします。 sudo systemctl enable tanaradio.service これで、次回の電源ONから自動起動します。 13. 再起動テスト いよいよ、モニターなし運用に近いテストです。 まず、念のため現在のサービスを再起動しておきます。 sudo systemctl restart tanaradio.service 問題なく音が出たら、Raspberry Pi全体を再起動します。 sudo reboot 再起動後、しばらく待ちます。 目安としては、 起動 ↓ Wi-Fi準備 ↓ 12秒待機 ↓ Python起動 ↓ RSS取得 ↓ mpv起動 ↓ 音が出る なので、電源投入から音が出るまで少し時間がかかります。 ここで焦らないのがコツです。ラジオというより、寝起きの小型サーバーです。 14. 再起動後の確認 音が出れば成功です。 次も確認します。 再生/一時停止ボタンが効く 戻るボタンが効く 次へボタンが効く 棚ボタンが効く モードボタンが効く 音量ダイヤルが効く LEDが点滅する これが全部できれば、フェーズ5Jはほぼ成功です。 15. モニターなしで使う前のSSH確認 日常運用では、モニターをつながずに使うことになります。 その場合、問題が起きたときはSSHで入って確認します。 Macなど別のPCから、Raspberry PiにSSH接続します。 ssh [email protected] 入れたら、状態確認はこれです。 sudo systemctl status tanaradio.service ログ確認はこれです。 journalctl -u tanaradio.service -n 80 --no-pager 再起動はこれです。 sudo systemctl restart tanaradio.service 停止はこれです。 sudo systemctl stop tanaradio.service 16. 自動起動を一時的に止める方法 ケース作業や配線変更をするとき、自動でプログラムが起動すると危ない場合があります。 そのときは、自動起動を無効にします。 sudo systemctl disable tanaradio.service いま動いているサービスも止めるなら、 sudo systemctl stop tanaradio.service もう一度自動起動に戻すときは、 sudo systemctl enable tanaradio.service sudo systemctl start tanaradio.service です。 17. よくあるトラブル トラブル1:音が出ない まずサービスを止めます。 sudo systemctl stop tanaradio.service 手動で音が出るか確認します。 cd ~/tanaradio5 python3 tanaradio_5i.py 手動では音が出るが、自動起動では音が出ない場合は、systemd から起動したmpvが音声出力先をうまくつかめていない可能性があります。 その場合は、tanaradio_5i.py の mpv 起動部分に、USBスピーカー向けの指定を追加します。 まず編集します。 nano ~/tanaradio5/tanaradio_5i.py 中で、次のような部分を探します。 cmd = [ "mpv", "--no-video", "--really-quiet", f"--input-ipc-server={MPV_SOCKET}", str(PLAYLIST_FILE), ] これを次のようにします。 cmd = [ "mpv", "--no-video", "--really-quiet", "--ao=alsa", f"--input-ipc-server={MPV_SOCKET}", str(PLAYLIST_FILE), ] 保存します。 Ctrl + O Enter Ctrl + X サービスを再起動します。 sudo systemctl restart tanaradio.service これでUSBスピーカーから出る可能性が高くなります。 トラブル2:起動直後にRSS取得で失敗する ログにRSS取得エラーが出る場合、Wi-Fi接続より先にプログラムが動いている可能性があります。 その場合は、待ち時間を少し伸ばします。 nano ~/tanaradio5/run_tanaradio_5j.sh この行を、 sleep 12 たとえば次のようにします。 sleep 25 保存して、サービスを再起動します。 sudo systemctl restart tanaradio.service トラブル3:GPIO関係のエラーが出る ログにGPIOやpin関係のエラーが出る場合、まず二重起動を疑います。 ps aux | grep tanaradio 複数の tanaradio_5i.py が動いていたら、いったん止めます。 sudo systemctl stop tanaradio.service pkill -f tanaradio_5i.py pkill -f mpv その後、もう一度サービスを起動します。 sudo systemctl start tanaradio.service トラブル4:サービスがすぐ落ちる 状態を見ます。 sudo systemctl status tanaradio.service 詳しいログを見ます。 journalctl -u tanaradio.service -n 120 --no-pager 多くの場合、原因は次のどれかです。 ファイル名が違う 作業フォルダが違う RSS棚ファイルがない GPIOピンが別プロセスに使われている mpvが見つからない 音声出力がつかめない まず確認するコマンドはこれです。 ls -l /home/tana/tanaradio5 which python3 which mpv 18. フェーズ5Jの成功条件 次の5つができれば、フェーズ5J成功です。 1. sudo systemctl start tanaradio.service で起動する 2. USBスピーカーから音が出る 3. 物理ボタンで再生操作できる 4. 音量ロータリーエンコーダーが効く 5. sudo reboot 後にも自動で起動して音が出る ここまで行けば、TanaRadio Piはもう「毎回ターミナルで実行する実験機」ではありません。 かなりはっきり言うと、ここを越えたら ラジオです。 まだ裸のラジオですが、電源を入れたら勝手に声が出る。これはもう道具としての魂が入っています。 次のフェーズ6Aで、ようやくケース配置に進むのがよいです。#声日記 #TanaRadioPi LISTENで開く

Episode metadata supplied by the publisher feed · Published Jul 12, 2026

Embed this episode

NOW PLAYING

380 日記 | 電源オンで自動起動

0:00 28:25

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

No similar episodes found.

No similar podcasts found.

Frequently Asked Questions

How long is this episode of TanaRadio?

This episode is 28 minutes long.

When was this TanaRadio episode published?

This episode was published on July 12, 2026.

Can I download this TanaRadio episode?

Yes. Use the download control on the episode player to save the publisher-provided media file.
URL copied to clipboard!