366 日記 | 3ボタンの実験 episode artwork

EPISODE · Jun 25, 2026 · 37 MIN

366 日記 | 3ボタンの実験

from TanaRadio · host たな

フェーズ4の3ボタンの実験です。ボタンを押すことで,ブラウザのプレーヤーをコントロールできるところまでいきました。9. ステップ5:3ボタンへ増やす 1ボタンが成功したら、いったんシャットダウンします。 sudo shutdown -h now 電源を抜いてから、3ボタンに増やします。 配線はこれです。 GPIO17 ─ 1kΩ抵抗 ─ ボタン ─ GND GPIO27 ─ 1kΩ抵抗 ─ ボタン ─ GND GPIO22 ─ 1kΩ抵抗 ─ ボタン ─ GND GNDは共通でかまいません。 ブレッドボード上では、GNDレールを作って、各ボタンをそこへ戻すとわかりやすいです。 GPIO17 → 抵抗 → ボタン → GNDレール GPIO27 → 抵抗 → ボタン → GNDレール GPIO22 → 抵抗 → ボタン → GNDレール GPIO23は、今回は配線しません。 10. ステップ6:Pythonで3ボタンをテストする 電源を入れ、ターミナルを開きます。 3ボタンテスト用スクリプトを作ります。 nano ~/tanaradio/buttons3_test.py 中身はこれです。 from gpiozero import Button from signal import pause play_pause = Button(17, pull_up=True, bounce_time=0.08) back_10 = Button(27, pull_up=True, bounce_time=0.08) forward_10 = Button(22, pull_up=True, bounce_time=0.08) def play_pause_pressed(): print("PLAY / PAUSE button pressed") def back_10_pressed(): print("BACK 10 seconds button pressed") def forward_10_pressed(): print("FORWARD 10 seconds button pressed") play_pause.when_pressed = play_pause_pressed back_10.when_pressed = back_10_pressed forward_10.when_pressed = forward_10_pressed print("3 button test is ready.") pause() 実行します。 python3 ~/tanaradio/buttons3_test.py それぞれのボタンを押して、次のように別々の表示が出れば成功です。 PLAY / PAUSE button pressed BACK 10 seconds button pressed FORWARD 10 seconds button pressed ここまでできれば、GPIO入力実験は成功です。 フェーズ4の核心はかなり越えています。 11. うまくいかないときの確認 何も表示されない場合 確認することはこれです。 GPIO番号を間違えていないか GNDにつながっているか ボタンの向きが合っているか 抵抗が同じ列に刺さっていてショートしていないか ブレッドボードの列を勘違いしていないか まずはGPIO17の1ボタンに戻って確認してください。 3つ同時に直そうとすると、原因が見えにくくなります。 1回押しただけなのに何回も表示される場合 bounce_time を少し大きくします。 bounce_time=0.15 たとえば、3か所すべてを 0.15 にして試します。 押していないのに反応する場合 タクトスイッチの向きが怪しいです。 ブレッドボードの中央の溝をまたいでいるかを確認してください。 12. ステップ7:playerctlでChromium再生を操作する 次に、Chromium上のTanaRadio再生をコマンドで操作できるか試します。 これは最終形ではありません。 Chromiumなしのmpv版へ行く前の足場です。 まずインストールします。 sudo apt install -y playerctl playerctl はMPRIS対応メディアプレイヤーをコマンドラインから制御するツールで、再生、一時停止、停止、前後トラックなどの操作ができます。 ChromiumでTanaRadioを開き、音声を再生します。 その状態でターミナルから試します。 playerctl status 再生中なら、 Playing のように表示されます。 次に、 playerctl play-pause これで再生/一時停止が切り替われば成功です。 10秒戻る/進むは、環境によって効き方が違う場合があります。まず試します。 playerctl position 10- playerctl position 10+ 効けば、そのまま使えます。 効かなければ、フェーズ4前半では「再生/一時停止だけ成功」と考えてよいです。 13. ステップ8:3ボタンでChromium再生を操作する 3ボタン操作用スクリプトを作ります。 nano ~/tanaradio/buttons3_playerctl.py 中身はこれです。 #!/usr/bin/env python3 from gpiozero import Button from signal import pause import subprocess def run(command): print(">", " ".join(command)) subprocess.run(command, check=False) play_pause = Button(17, pull_up=True, bounce_time=0.08) back_10 = Button(27, pull_up=True, bounce_time=0.08) forward_10 = Button(22, pull_up=True, bounce_time=0.08) def play_pause_pressed(): run(["playerctl", "play-pause"]) def back_10_pressed(): run(["playerctl", "position", "10-"]) def forward_10_pressed(): run(["playerctl", "position", "10+"]) play_pause.when_pressed = play_pause_pressed back_10.when_pressed = back_10_pressed forward_10.when_pressed = forward_10_pressed print("TanaRadio 3 physical buttons are ready.") pause() 実行します。 python3 ~/tanaradio/buttons3_playerctl.py この状態で、3つのボタンを押します。 期待する動作はこれです。 GPIO17:再生/一時停止 GPIO27:10秒戻る GPIO22:10秒進む ここまでできれば、フェーズ4前半は成功です。#声日記 #TanaRadioPi LISTENで開く

Episode metadata supplied by the publisher feed · Published Jun 25, 2026

フェーズ4の3ボタンの実験です。ボタンを押すことで,ブラウザのプレーヤーをコントロールできるところまでいきました。9. ステップ5:3ボタンへ増やす 1ボタンが成功したら、いったんシャットダウンします。 sudo shutdown -h now 電源を抜いてから、3ボタンに増やします。 配線はこれです。 GPIO17 ─ 1kΩ抵抗 ─ ボタン ─ GND GPIO27 ─ 1kΩ抵抗 ─ ボタン ─ GND GPIO22 ─ 1kΩ抵抗 ─ ボタン ─ GND GNDは共通でかまいません。 ブレッドボード上では、GNDレールを作って、各ボタンをそこへ戻すとわかりやすいです。 GPIO17 → 抵抗 → ボタン → GNDレール GPIO27 → 抵抗 → ボタン → GNDレール GPIO22 → 抵抗 → ボタン → GNDレール GPIO23は、今回は配線しません。 10. ステップ6:Pythonで3ボタンをテストする 電源を入れ、ターミナルを開きます。 3ボタンテスト用スクリプトを作ります。 nano ~/tanaradio/buttons3_test.py 中身はこれです。 from gpiozero import Button from signal import pause play_pause = Button(17, pull_up=True, bounce_time=0.08) back_10 = Button(27, pull_up=True, bounce_time=0.08) forward_10 = Button(22, pull_up=True, bounce_time=0.08) def play_pause_pressed(): print("PLAY / PAUSE button pressed") def back_10_pressed(): print("BACK 10 seconds button pressed") def forward_10_pressed(): print("FORWARD 10 seconds button pressed") play_pause.when_pressed = play_pause_pressed back_10.when_pressed = back_10_pressed forward_10.when_pressed = forward_10_pressed print("3 button test is ready.") pause() 実行します。 python3 ~/tanaradio/buttons3_test.py それぞれのボタンを押して、次のように別々の表示が出れば成功です。 PLAY / PAUSE button pressed BACK 10 seconds button pressed FORWARD 10 seconds button pressed ここまでできれば、GPIO入力実験は成功です。 フェーズ4の核心はかなり越えています。 11. うまくいかないときの確認 何も表示されない場合 確認することはこれです。 GPIO番号を間違えていないか GNDにつながっているか ボタンの向きが合っているか 抵抗が同じ列に刺さっていてショートしていないか ブレッドボードの列を勘違いしていないか まずはGPIO17の1ボタンに戻って確認してください。 3つ同時に直そうとすると、原因が見えにくくなります。 1回押しただけなのに何回も表示される場合 bounce_time を少し大きくします。 bounce_time=0.15 たとえば、3か所すべてを 0.15 にして試します。 押していないのに反応する場合 タクトスイッチの向きが怪しいです。 ブレッドボードの中央の溝をまたいでいるかを確認してください。 12. ステップ7:playerctlでChromium再生を操作する 次に、Chromium上のTanaRadio再生をコマンドで操作できるか試します。 これは最終形ではありません。 Chromiumなしのmpv版へ行く前の足場です。 まずインストールします。 sudo apt install -y playerctl playerctl はMPRIS対応メディアプレイヤーをコマンドラインから制御するツールで、再生、一時停止、停止、前後トラックなどの操作ができます。 ChromiumでTanaRadioを開き、音声を再生します。 その状態でターミナルから試します。 playerctl status 再生中なら、 Playing のように表示されます。 次に、 playerctl play-pause これで再生/一時停止が切り替われば成功です。 10秒戻る/進むは、環境によって効き方が違う場合があります。まず試します。 playerctl position 10- playerctl position 10+ 効けば、そのまま使えます。 効かなければ、フェーズ4前半では「再生/一時停止だけ成功」と考えてよいです。 13. ステップ8:3ボタンでChromium再生を操作する 3ボタン操作用スクリプトを作ります。 nano ~/tanaradio/buttons3_playerctl.py 中身はこれです。 #!/usr/bin/env python3 from gpiozero import Button from signal import pause import subprocess def run(command): print(">", " ".join(command)) subprocess.run(command, check=False) play_pause = Button(17, pull_up=True, bounce_time=0.08) back_10 = Button(27, pull_up=True, bounce_time=0.08) forward_10 = Button(22, pull_up=True, bounce_time=0.08) def play_pause_pressed(): run(["playerctl", "play-pause"]) def back_10_pressed(): run(["playerctl", "position", "10-"]) def forward_10_pressed(): run(["playerctl", "position", "10+"]) play_pause.when_pressed = play_pause_pressed back_10.when_pressed = back_10_pressed forward_10.when_pressed = forward_10_pressed print("TanaRadio 3 physical buttons are ready.") pause() 実行します。 python3 ~/tanaradio/buttons3_playerctl.py この状態で、3つのボタンを押します。 期待する動作はこれです。 GPIO17:再生/一時停止 GPIO27:10秒戻る GPIO22:10秒進む ここまでできれば、フェーズ4前半は成功です。#声日記 #TanaRadioPi LISTENで開く

PodParley-generated summary based on available episode metadata and transcript content.

NOW PLAYING

366 日記 | 3ボタンの実験

0:00 37:37

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.

Frequently Asked Questions

How long is this episode of TanaRadio?

This episode is 37 minutes long.

When was this TanaRadio episode published?

This episode was published on June 25, 2026.

What is this episode about?

フェーズ4の3ボタンの実験です。ボタンを押すことで,ブラウザのプレーヤーをコントロールできるところまでいきました。9. ステップ5:3ボタンへ増やす 1ボタンが成功したら、いったんシャットダウンします。 sudo shutdown -h now 電源を抜いてから、3ボタンに増やします。 配線はこれです。 GPIO17 ─ 1kΩ抵抗 ─ ボタン ─ GND GPIO27 ─ 1kΩ抵抗 ─ ボタン ─ GND GPIO22 ─ 1kΩ抵抗 ─ ボタン ─...

Can I download this TanaRadio episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!