簡単な動画再生補助デバイス(ラズパイ5・Firefox用)
Raspberry Pi 5(ラズパイ5)の電源SW制御がうまくいったのに気をよくしてコントロールボックスとwebアプリを作ってFirefoxで各種のラグビー配信動画を楽しんでいます。ほとんどの操作は無線マウスで済むのですが、動画を少し飛ばしたりリプレイしたりしたいときに、マウスでシークバーをいじるのが少し面倒に感じます。我ながらズボラだと思いますが、ラグビーの場合フルゲームでは2時間ほどありますから、精度良くクリックするのが少々難しいのです。
さて、ほとんどの動画サイトでは短いスキップが左右の矢印キーに割り当てられています:
ただ、これだけのためにキーボードを持ち出すのも面倒(またズボラな…)。というわけで、ちょっとスキップするだけのHIDデバイスを作ろうと思い立ちました(作るのは全然面倒だと思わない)。
イチから作ることも考えたのですが、ちょうど手元に使わなくなったページめくり機があるので、とりあえずこれのキーアサインとラベルを差し換えるだけで様子を見ようということで、作ったのがこちらです:

左が元のもの、右が今回手直ししたものです。ちなみに、ページめくり機として現役なのはSeeed Studio XIAO nRF52840 Senseを使ったものです。
コーディングは
「戻る(KEY_MEDIA_VOLUME_DOWN)」だったキーを「右矢印(KEY_RIGHT_ARROW)」に、
「送る(KEY_MEDIA_VOLUME_UP)」だったキーを「左矢印(KEY_LEFT_ARROW)」に、
「本棚へ(KEY_MEDIA_WWW_BACK)」だったキーを「ESC(KEY_ESC)」に、
それぞれ置換しました(ESCはフルスクリーンを解除するキー)。これだけだと少し芸が無いので、もうひとつマウスで面倒に思っていたFirefox起動をマクロにしてESC長押しに割り当ててみました。具体的には
🍓>下矢印>下矢印>右矢印>下矢印>リターン
↑berry mark
という手順です。私のラズパイ5ではメニューバーが上・ブラウザが2番目・Firefoxが2番目になっているので、このような手順になっています。なお、間にdelay()を適当に入れています。
ところで、これをArduino IDEでコンパイルして転送しようとしたところ、次のエラーが出てできませんでした:
error: 'adc_gpio_init' was not declared in this scope
このエラーで検索すると、Espressifのボードライブラリが2.0.3に更新されたときに出るようになったらしく、2.0.2に戻せば動くということで、その通りの対応で動くようになりました(現時点の最新は3.1.1)。どうやら今ではadc_gpio_init()自体が要らないようなのですが、その辺りの詳細は詰めていません。
コードはGitHubのページめくり機と同じリポジトリに「rpi_movie_ctl.ino」という名前で置いておきました。
もうここまできたら専用マウスを自分で作った方がいいのでは、という気もしていますが、以前にマウスのようなデバイスを作ってみたときにフィーリング通り動かすのがとても難しかったので、いまのところはペンディング。そのうちに、アイデアが湧いたら作ってみたいモノのひとつです。 以上、何かの参考になれば幸いです。 パドラッパ from MacBook Air (2017)
サイト | 左矢印 | 右矢印 | 備考 |
---|---|---|---|
RugbyPass TV | -5秒 | +5秒 | Jで-10秒、Lで+10秒 |
TOP14 | -10秒 | +10秒 | |
HANAZONO LIVE | - | - | スキップなし |
J SPORTSオンデマンド | -30秒 | +30秒 |

左が元のもの、右が今回手直ししたものです。ちなみに、ページめくり機として現役なのはSeeed Studio XIAO nRF52840 Senseを使ったものです。
コーディングは
「戻る(KEY_MEDIA_VOLUME_DOWN)」だったキーを「右矢印(KEY_RIGHT_ARROW)」に、
「送る(KEY_MEDIA_VOLUME_UP)」だったキーを「左矢印(KEY_LEFT_ARROW)」に、
「本棚へ(KEY_MEDIA_WWW_BACK)」だったキーを「ESC(KEY_ESC)」に、
それぞれ置換しました(ESCはフルスクリーンを解除するキー)。これだけだと少し芸が無いので、もうひとつマウスで面倒に思っていたFirefox起動をマクロにしてESC長押しに割り当ててみました。具体的には
🍓>下矢印>下矢印>右矢印>下矢印>リターン
↑berry mark
という手順です。私のラズパイ5ではメニューバーが上・ブラウザが2番目・Firefoxが2番目になっているので、このような手順になっています。なお、間にdelay()を適当に入れています。
ところで、これをArduino IDEでコンパイルして転送しようとしたところ、次のエラーが出てできませんでした:
error: 'adc_gpio_init' was not declared in this scope
このエラーで検索すると、Espressifのボードライブラリが2.0.3に更新されたときに出るようになったらしく、2.0.2に戻せば動くということで、その通りの対応で動くようになりました(現時点の最新は3.1.1)。どうやら今ではadc_gpio_init()自体が要らないようなのですが、その辺りの詳細は詰めていません。
コードはGitHubのページめくり機と同じリポジトリに「rpi_movie_ctl.ino」という名前で置いておきました。
もうここまできたら専用マウスを自分で作った方がいいのでは、という気もしていますが、以前にマウスのようなデバイスを作ってみたときにフィーリング通り動かすのがとても難しかったので、いまのところはペンディング。そのうちに、アイデアが湧いたら作ってみたいモノのひとつです。 以上、何かの参考になれば幸いです。 パドラッパ from MacBook Air (2017)
| 固定リンク | 0
« ラズパイ5の電源SWと周辺AV機器のリモコン+webアプリ【2025/02/11追記】 | トップページ | MacBook Air(Mid 2017, Intel i5)故障、MacBook Air(2022, M2)への乗り換え【2025/03/13追記】 »
コメント