"スマートな” TVリモコンを作りたい話 構想編—Raspberry Pi Picoでシンプルな学習リモコンを作りたい—

今日は家電3大ストレスのひとつ、テレビリモコンのボタン多すぎ問題をどうにかしたいという話です。

そう、テレビリモコンのボタンって多すぎやしませんか?

そう思って手元のを数えてみると、ボタンが64個も付いています。

このなかで、日常的に使うボタンがいくつあるかっていうと、僕がテレビあまり観ない派ってのもありますが、チャンネル±、音量±の4つだけ。

あとは買ってから一度も使わないボタンと、初期設定にしか使わないボタンがほとんどで、日常使いではもうただのノイズです。

そんなわけで、この日常の片隅の小さなストレス源をやっつけてやろうというのが今回の趣旨です。

まずは市販の学習リモコンを探す

さて、純正のリモコンを置き換えるなら、まず思いつくのは学習リモコンの導入です。

さっそく探してみると...

こういうのはそもそも方向性が真逆だし

ボタンの少ないのを探すと、うーん、このデザインはちょっと...

SONYのHUISは良いなと思ったんですが、チャンネルと音量を操作するだけなのに1万5千円は出せないかなぁ...

というわけで、安い学習リモコンはデザインがイマイチだし、デザイン性が高いものはけっこう良い値段することがわかりました。

スマホから操作できるスマートリモコンもありますが、テレビのチャンネルのために新しいアプリを入れて、都度アプリを立ち上げて...それはなんだかとてもスマートじゃない感じでちょっと気に入りません。

いかにしてリモコンを自作する考えに至ったのか

一般的に、自作で既製品を超えるものを作るのはむずかしい(機能かコストが犠牲になる)ですが、好みの製品が世に無いとなると話は別です。

いや、そもそもコストを犠牲にするならHUISでいいじゃんって流れになりそうですが、1万円出すなら何かワクワクする要素が必要です。

僕にとってのワクワク要素は何かっていうと、可能性です。たとえばバカでかいユーザーコミュニティがあって日々機能ハックの研究してるとか、メーカーがハードウェアの回路図をオープンにしてるとか、そういうのが欲しいところです。

HUISも設定ツールのソースがGithubで公開されてはいますが、残念ながらそこからの盛り上がりが途絶えてしまったようで、Facebookにあるユーザーグループも2018年更新のまま止まっています。

いったんここまでの流れをまとめると、残る選択肢はもう自作一択。

そうなると、次に考えるのは、なにを使って作るか?

なにを使って作るか? ハードウェア編

さて、開発環境の選定基準はやっぱりワクワク感(可能性を感じる度合い)です、とっつきやすさやコミュニティの充実度と最近っぽさから、候補はこの2つを考えました。

  • M5Stackシリーズ(ESP32)
  • Raspberry pi pico(RP2040)

今回は、無線を使わない、省電力が求められる、積みマイコンを使いたかった、という理由でRaspberry pi pico(以降ラズパイピコ)を使うことにしました。

M5StackシリーズのM5 Paperを使ってHUISクローンを作ってみたいという気持ちもありましたが、DeepSleepしつつ画面タッチで復帰→タッチ座標を判定してコマンド送信とやるのが難しそうだったので一旦あきらめ。

なにを使って作るか? ソフトウェア編

めぼしい言語はわりとラズパイピコ実装が進んでいるので、言語選定はよりどりみどりです。

  • Circuit Python →使ったことある、起動に時間がかかるのでリモコンには向かない
  • C(Arduino)→使ったことある、ベタなので今回は他のに挑戦したい
  • TinyGo →使ったことない、興味はある
  • rp-hal(RUST)→使ったことない、つよい友達が教えてくれることになった

ってわけで、普段業務でゴリゴリにRUSTを使ってる友人がハンズオンしてくれることになったので、RUSTに入門してみることにしました。うまくいかなければArduinoという逃げ道もあるので、比較的気楽です。

設定用のUIは作らない

学習リモコンを作るなら、学習部分のユーザーインターフェースも考える必要があります。

市販の学習リモコンの場合、設定用のUIも一般ユーザー向けに使いやすいよう作り込まれていますが、我々はエンジニア、黒い画面で設定をいじるのもなんのその。

それに、リモコンの設定変更なんてテレビを買い替えた時に一回やるくらいなので、設定UIを作り込んだとしてもほとんど出番がない気がします。

そこで、リモコンのコマンドもファームウェアに組み込んで、開発も設定も同じワークフローでやってしまうことにしました。

設計編へつづく

今後のToDoはこんな感じ、じつはこの記事を書いた時点でプロトタイプまで出来ているので、今回は作りかけで積んでしまうリスクはやや少なめです...!

  • 回路設計
  • 基板設計
  • ケース設計
  • RUSTプログラミング
  • キット化(努力目標)

リアルタイムの進捗はTwitterとGithubで

進捗は随時Twitterにアップしているので、気になった方はぜひフォローしてください👇

twitter.com

ソースコードや設計データなどはGithubに上げていく予定です👇

github.com