Latest / TanaRadio / 374 日記 | 物理ボタンでプレイリスト再生を制御
Transcript
- 0:02今日はTanaRadio Pi製作シリーズフェーズ5Dですね。
- 0:09今日の目標は既存3ボタンでRSSプレイリストを操作するというものです。
- 0:203ボタンで1つのエピソードの再生をコントロールすることはもうできました。
- 0:33それからプレイリストを作って、これは複数のRSSですね。
- 0:44これを登録しておいて、過去3日間のエピソードを古い順に再生するプレイリストを作るということもできましたので、
- 1:02今回はそのボタンでプレイリストの再生をコントロールするということができるのが目標です。
- 1:13まず1番目は何をするかというと、まず作業フォルダへ移動するということで、
- 1:26TanaRadio Pi、Raspberry Piのターミナルで作業用のフォルダに移動しました。
- 1:48そうしましたら、そこにあるファイルをもう一度確認しますが、これまでの作業で作ったファイルがそこに並んでいます。
- 2:02これも問題ないですね。
- 2:05そうしましたらば、プレイリストを前回やりました5Cでやりましたプレイリストをもう1回作ると、
- 2:15過去3日間ですから1日経ちますと中身が変わりますので、もう一度そのプレイリストを作成するPythonのプログラムを実行します。
- 2:41これを実行しましたらば、過去3日分は4件ということで、4件のプレイリストができたようです。
- 3:02では、このプレイリストの中身を見てみますかね。
- 3:21headというコマンドを変えます。
- 3:36そうしますと、NHKのラジオ、マイあさでやっている健康ライフとワールドリポートのエピソードがですね、
- 3:497月2日分2つと、7月3日分2つ。
- 3:597月4日分、4日ってのは今日で土曜日なんですが、これはないんですね。
- 4:08マイあさが、このコーナーは土曜日やってないってことですかね。
- 4:17これでいいわけですね。
- 4:22では、これを再生してみましょう。音が出るかどうか。
- 5:01音が出ましたので、OKですね。
- 5:05そうしましたら、次はですね、GPIOライブラリを確認するということで、
- 5:13GPIOボタンというのを使うために必要なプログラムでしょうか、ライブラリなのかな。
- 5:28これをターミナルで確認するということです。
- 5:51この確認するためのコマンドをコピー&ペーストでターミナルに貼り付けてエンターで実行しますと、OKと出ましたので大丈夫のようです。
- 6:06次はですね、GPIOボタンを確認するということで、
- 6:16GPIO番号、これはRaspberry PiにGPIOという入出力用のピンが40本立っているんですが、
- 6:32それに番号が付いていて、その番号、どの番号のピンを使うかということを確認するということですね。
- 6:43これは前に設定したもので、17番が再生、一時停止、27番が戻る、22番が次へというふうになっているということで、配線は変えていませんので、
- 7:03どうなっているか、ボタンスイッチと線がちゃんとつながっているか確認しますが、
- 7:16まず17番、これは再生、一時停止でちゃんとつながっています。
- 7:30次が27番、これが戻る方ですね、戻る。
- 7:39で、22番が進むということで、ちゃんとつながっていることを確認しました。
- 7:49変えていませんので、大丈夫なはずなわけですが。
- 7:54では、いよいよこのボタンで再生状態をコントロールするためのスクリプトを作ります。
- 8:05新しいファイルで、tana.radio_5d.pyというスクリプトの書いてあるファイルをnanoで作ります。
- 8:43今、エディターが開きました。
- 8:46そうしましたら、ChatGPTが書いてくれたコードをそのまま漏れなく貼り付けます。
- 8:58これはかなり長いです。
- 9:04一応最初から最後まで反転させましたので、コピーをしてペーストです。
- 9:12で、保存ですね。
- 9:17はい、できました。
- 9:19次はこのファイルに実行権限を付けるということで、これも何度もやっているものですが、
- 9:49はい、できましたのでこれを実行します。
- 10:04はい、実行しますと音が聞こえるわけですよね。
- 10:16はい、これでボタンがちゃんと動くかどうかを確認します。
- 10:56はい、やってみましたが、物理ボタンでうまくコントロールできませんでした。
- 11:11これはどうしてでしょうか。
- 11:18おかしいですね。もう一度やってみましょうかね。
- 11:56はい、やっぱりうまくいきません。
- 11:58物理ボタンではうまくコントロールできませんでした。
- 12:11よくあるエラーと対処という風にChatGPTが書いてくれてますのでそこを見ます。
- 12:20ボタンを押しても何も起きない。これに相当しますね。
- 12:25まずターミナルに次のような表示が出るか見ます。
- 12:30ボタン、次へ。こういう表示が出ませんね。
- 13:29線がちゃんと繋がっているかどうかもう一回しっかり差し込んで確認をした上でもう一回やってみます。
- 14:07出ませんね。困ったな。
- 14:11どうしましょうか。
- 14:23これはもうどうしようもないのでチャッピーのお助けをするしかないですね。
- 14:44どこでつまづいたかというと、ステップ10というところですね。
- 15:22ステップ10でボタンを押しましたが反応しません。
- 15:37チャッピーに行ってみました。
- 15:56コード側の可能性が高いですという風に言ってますね。
- 16:06なので、エディターですね。
- 16:09エディターで開いてコードを書き換えてくださいと言ってますね。
- 16:31一行だけですね。ちょっと書き換えたらどうかということです。
- 16:38じゃあこれをやってみましょう。
- 17:25まずはプログラムを開きました。
- 17:47そうしましたら、setup_buttons()というのがないですね。どうしたんだろう。
- 19:05書き換えなきゃいけない部分が下の方にあるということで探しましたら確かにありました。
- 19:14setup_buttons()というのがあって、
- 19:19これの前にbuttons = というのを付けないといけないということなんですね。
- 19:29ですのでそれを今書き換えます。
- 19:33コピー&ペーストで、コピー&ペーストする場所。
- 19:54カーソルを持っていかないといけない。
- 20:09ペーストできましたので、これで保存かな。
- 20:18これを保存ですね。
- 20:26保存しました。
- 20:28そしたらまた実行ですね。
- 20:47ボタンを押したらば、止まりましたね。
- 20:50今一時停止のボタンを押したんですがもう一回押します。
- 21:00次は戻るボタンを押します。
- 21:05戻るボタンはこれが一番最初なので効かないですね。
- 21:09次は進むボタンです。
- 21:26進んだようです。
- 21:27これをまた戻るボタンで戻します。
- 21:44今一時停止ボタンで止まりました。
- 21:47ということでボタン3つですね。
- 21:49それぞれの機能をちゃんと果たすことが確認できましたね。
- 21:54よかったです。
- 22:03これでうまくいったということですね。
- 22:12問題解決しましたので元のマニュアルに戻りまして、
- 22:23最後の成功条件の確認です。
- 22:274つありますが、1番目。
- 22:29フェーズ5Cのplaylist.m3uが作れている。
- 22:34くれました。
- 22:362番目。
- 22:37TanaRadio_5d.pyを実行するとmpvが起動する。
- 22:48ちょっと意味がわかりませんが、
- 22:49要するに再生ができるということですね。
- 22:533番目。
- 22:55再生一時停止ボタンでpause / resumeができました。
- 23:004番目。
- 23:01戻る・次へボタンでplaylist-prev、playlist-nextができる。
- 23:11戻ると進むが操作できるということですが、
- 23:18これもできましたので、
- 23:19全部できてフェーズ5Dは成功ということになります。
- 23:26最後にチャッピーはこう書いています。
- 23:30これはかなり大きいです。
- 23:315CまではRSSから音声を集める仕組みでしたが、
- 23:375Dでついに物理ボタンで声の流れを操る装置になります。
- 23:44ラジオ感がぐっと前に出てきますということで。
- 23:49確かにボタンでいろいろと操作できるというのは、
- 23:55ラジオっぽくなってきたなという感じがしますね。
- 24:03それで、次は5Eですけど、
- 24:055Eというのは何をするのかと言いますと、
- 24:14いよいよ棚を導入します。
- 24:17この棚というのは本棚の棚ですね。
- 24:23一応、私はこのRSSの一つのまとまりですね。
- 24:36これを棚というふうに、英語で言うとシェルフというふうに言うようにしました。
- 24:42つまり本棚に本が並んでいるというイメージですね。
- 24:46一つ一つのRSSが一つの本ということになるわけですが、
- 24:54そのRSSがいくつも入っているものが棚に並んでいるということで、
- 25:00その棚を選ぶということができるようにしたいんですね。
- 25:05つまりフォローしているもののグループがいくつかあって、
- 25:10それを選べるようにするということなんですが。
- 25:155Eでは、そのRSSの集合をいくつかのファイルに書いておいて、
- 25:24そのファイル、棚のファイルですね。
- 25:29これをターミナル上で切り替えて再生ができるようにするということのようです。
- 25:41次にはそれをボタンで切り替えるということになるわけですが、
- 25:45その一歩手前のステップが5Eということになるようですね。
- 25:51次はそれをやりたいと思います。
- 25:54それではまた。