Latest / TanaRadio / 376 日記 | 棚選択ボタンとLEDランプを追加
Transcript
- 0:00それでは、TanaRadio Pi製作シリーズ、今日はフェーズ5Fになります。
- 0:08目標は、棚選びボタンとLED1を追加するということで、いよいよですね、ハードウェアの工作を続けることになりました。
- 0:24最初にボタン3つを付けてですね、その後はずっとソフトウェアの方をいじくる作業が続きましたが、やっと部品を追加するということで、今回は2つ部品を追加することになります。
- 0:41まず1つ目は、棚を切り替えるためのボタン、押しボタンですね、これを付けます。
- 0:51前回はですね、棚を変えるのにはソフトウェア上で、つまりターミナルでコマンドを打ち込むときに違う棚を選びましたが、その選択がボタンでできるということになります。
- 1:07それからどの棚を選んでいるかということをですね、LEDランプが何回点灯するかということで示すことにしました。
- 1:21これは1とか2とかいう数字を表示させたりですね、あるいはもっとさらに棚の名前を表示させたりするような技術は当然あるわけですけど、今回はですね、できるだけシンプルに実装するということで、LEDランプ1つでそれができるんじゃないかということでやってみたいと思っています。
- 1:51まず第一段階ですけれども、まず部品を付けるので電源を切ります。
- 2:07今、Raspberry Piに電源が入っている状態になっているんですけど、これをですね、シャットダウンしたいと思います。
- 2:32はい、シャットダウンできました。
- 2:35そうしましたらですね、今度は棚選びボタンを配線するということで、ボタンをですね、前の3つに並べまして、4つ目を付けたいと思います。
- 3:024つ目を今、ブレッドボードに差し込みまして、これにですね、抵抗を付けるんですね。1kΩの抵抗を付けるということで、抵抗の足の一方をですね、ラジオペンチで曲げてやりまして、抵抗を立てる形で差し込みます。
- 3:30左右の足の長さが変わりますので、これをラジオペンチで長い方を切り落とします。
- 3:41はい、大体同じくらいの長さにしました。
- 3:48これをですね、一方はタクトスイッチ側、もう一方はGPIOの23番につなげるとなってますけど、そちらにつなぐ方に差したいと思います。
- 4:27老眼になるとですね、もう小さいものが見えなくて、老眼用の眼鏡をかけていますが、これをさらに取らないと見えない感じですね。
- 4:37はい、抵抗を今差しましたので、今度はその抵抗からGPIOの23番へとコード、ジャンパー線をですね、つなぐんですが、
- 5:01短い方で足りると思ったらちょっと長さが足らないので、長い方の線を扱いたいと思います。
- 5:2423番につなぎまして、タクトスイッチのもう片方の足はコードにつなぎました。
- 5:42これで、棚選びボタンの配線はできたはずです。
- 5:48では次に、棚番号LEDを配線します。
- 5:54こちらはGPIOの24番につなぐということですね。
- 5:59抵抗は330Ωの抵抗ということで、先ほどとは違うものをつなぎます。
- 6:07こちらをLEDの長い足の方につなぐということで、LED5つ買ってあるんだけどね、赤いやつ。
- 6:26長い足の方をGPIOの方につなぐということで、これを間違えると光らないそうです。
- 6:38ではHを走ってみます。
- 7:09ブレッドボードに挿したところです。
- 7:24抵抗をGPIOとの間に入れるわけで、
- 7:34新しく袋を開けまして、330Ωの抵抗を出しましたが、これは1kΩより相当小さいですね。
- 8:06足の長さをニッパーで揃えました。
- 8:11こちらをLEDの長い足に一方はつなぎ、
- 8:31もう一方をGPIOの24に挿します。
- 8:49これもジャンパー性は短かったので長いものと交換します。
- 9:2224番に挿しまして、それでLEDの短い足の方をグラウンドに挿します。
- 9:37グラウンドにつなぎました。
- 9:52これで今回のボタンとLEDを追加するという配線は終わったと思いますので、
- 10:01この状態でRaspberry Piの電源を入れます。
- 10:15ケーブルをつないでいないときはケーブルをつなぐと自動的に入るのですが、
- 10:20つないだ状態で電源を切りますと、電源ボタンというのが基板にありまして、そのボタンを押すことで電源が入ります。
- 10:29これはRaspberry Piの5というバージョンからこの電源ボタンが付いたそうで、とても便利になりました。
- 10:41では、起動しましたので、ターミナルを開いてソフトウェアの方を実装していくことになります。
- 11:02今、ディスプレイの画面上で左側にターミナル、右側にブラウザーを開きまして、
- 11:11右側のブラウザーでChatGPTの画面を開いて、マニュアルを出します。
- 11:30出てきました。
- 11:36そうしましたら、起動するというところまでやりましたので、次は作業用フォルダに移るわけですね。
- 11:46作業用フォルダに移るコマンドをコピー&ペーストで入れまして実行。
- 11:57pwdで確認です。はい、移りました。
- 12:01そうしましたら、まず必要なパッケージを確認するということで、
- 12:23今ですね、まずソフトウェアのアップデートをしました。
- 12:35次に必要なパッケージもインストールするコマンドをコピー&ペーストでインストールされたみたいです。
- 13:04そうしましたらですね、棚ファイルを確認するということなので、
- 13:12lsコマンドを使いまして、前回作りました5つの棚のテキストファイル、これを確認しました。
- 13:35それぞれ中身も確認すると言ってますが、
- 13:38これは1つだけcatコマンドで中身を確認します。
- 14:06ミスタイプをしましたので、もう一度入れます。
- 14:28はい、昨日設定したものが入っていることを確認しました。
- 14:35そうしましたらですね、次がメインですが、
- 14:385F用Pythonファイルを作るということで、またnanoというエディターを使いまして、新しいファイルを作ります。
- 14:59これはもう、中身はですね、膨大な行のコードになってますので、
- 15:07漏れなくコピーしてペーストしたいと思いますが、これがなかなか難しいですね。
- 15:17最初と最後を間違えないように、今スクロール中ですが、相当の行数です。
- 15:26何行あるか分かりませんが、まだ終わりません。
- 15:35終わりました。
- 15:38最後まで来ましたので、これをコピーしまして、エディターに貼り付けます。
- 15:46これも確認などをすると、かえって良くないので、このままもう閉じてしまいます。
- 15:55はい、閉じました。
- 15:59そうしましたらですね、次は実行権限をつける。
- 16:10これはいつもやっているものなんですけれども、また、今日はミスタイプが多いですね。
- 16:35はい、できました。
- 16:38で、実行ですね。
- 16:43実行するわけですが、まず棚一覧を確認するということで、リストというオプションをつけますと、棚一覧が出るそうです。
- 17:16はい、またエラーが出ましたね。
- 17:383行目に余計な文字を入れないでくださいと出ましたが、何か入っているんでしょうか。
- 18:04余計な文字を入れないでくださいという、ChatGPTの注意書きまで含めてコピーしてしまったんですね。
- 18:16これ消してやります。これで大丈夫だと思います。
- 18:24もう一度ですね。今度はうまくいきまして、棚一覧が出ました。
- 18:44はい、ここではですね、各棚のRSS数が書いてありますね。
- 18:51はい、これも確認しました。
- 18:58それでは、次はですね、LEDだけテストするということで、まずLEDテスト用のコマンドを入れます。
- 19:07これは、オプションにテスト-LEDとを入れてやるようですが、
- 19:41はい、今ですね、何が起こったかというと、声だけじゃなかなか分かりにくいんですが、
- 19:48棚1、棚2、棚3と棚5まであるんですが、それぞれがですね、表示、ターミナルのところでその点滅テストというのが表示されつつ、
- 19:59LEDが棚1だったら1回、棚2だったら2回点滅するというのを5までですね、つまりLEDが5回点滅するまで続けてやるという、そういう動作だったようです。
- 20:14これ、今ちゃんと数えてなかったので正しいかどうか分かりませんから、もう1回やってみます。
- 20:52はい、ターミナルを見ているとこのLEDの点滅の回数を数えられないので、今、ターミナルは見ずにLEDだけ見て点滅回数を数えていましたが、
- 21:04確かに1回点滅から5回点滅まで順に点滅していました。LEDは大丈夫のようです。
- 21:14それではいよいよ、このフェーズ5Fで作ったPythonのプログラムを実行してみたいと思います。
- 21:27そうしますとですね、これ音が出るんですよね。
- 21:32ちょっと他の番組の音声ですので、一旦ここで収録を一時停止します。
- 21:42はい、今テストをしてみましたが、この棚を進めるというボタン、1回押しますと棚が1つ進むんですけど、
- 21:561の棚から2の棚にという風に移るんですが、その時に2回LEDランプが点灯しまして、それで音声が流れるということを確認しました。
- 22:10期待通りの動きをしているということを確認できたと思います。
- 22:18また今までの再生、一時停止、戻る、次への3つのボタンですね。
- 22:26これもちゃんとそれぞれの棚の中で前後したりするような動作をしていましたので、
- 22:39これもOKだと思います。
- 22:43ということでテストは終わりましたので、最後は前回の棚が保存されるかを確認するということなので、
- 22:51一旦これを終了し、前回最後に選んだ棚が始まれば成功ということらしいです。
- 23:04ちょっとこれも音が出るので一旦収録は一時停止します。
- 23:13今テストをしましたけれども、棚の2で一旦終了させて、またこのプログラムを動かしましたら棚の2から始まりましたので、
- 23:26前回最後に選んだ棚が保存されているということが確認できました。
- 23:32これはjsonファイルに保存されているということなので、保存されているjsonファイルの中身をちょっと確認してみたいと思います。
- 23:52中身もですね、shelf_02ということで、2番目の棚が保存されていることが分かりました。
- 24:07ということで最後の成功条件ですね。
- 24:12これ4つあるというので確認してみます。
- 24:151番目、棚選びボタンを押すと棚番号が進む。OKです。
- 24:222番目、LED1が棚番号を分点滅する。OKです。
- 24:273番目、選ばれた棚ファイルに応じてplaylist.m3uが作り直される。
- 24:34ちょっとこれは確認はしてませんけど、そのように再生されていましたので、作り直されているんだと思います。
- 24:424番目、mpvが新しい棚で再生し直される。ということでこれも自動的に再生がされていました。
- 24:55ということで、フェーズ5Fは成功ということで終わりました。
- 25:04すんなりいきましたね。特にトラブルもなくうまくいったと思います。
- 25:14次はフェーズ5Gですけれども、またさらに5つ目のボタンを追加し、またもう1つLEDを追加するということで、
- 25:27これ何をするボタンかと言いますと、再生モードを変更するためのボタンですね。
- 25:36今は今から3日前の3日間ですね。3日前に遡って古い順に再生するという形にしていましたが、
- 25:52このボタンをつけますと、今日公開があった配信、それから最新のものから順に古いものに遡ってなど、
- 26:07いろいろな順序で聴くことが選べるようになるはずです。ということで、今日のところはこれで終わりにします。
- 26:18それではまた。