マウス操作で痩せるの!? 「DDR風の足マウス」を自作キーボード界で有名なPro Microで作製してみた
普段、私はスタートアップ企業のお手伝いをしており、100%リモートワークで仕事をしています。起きてすぐに仕事を始められる一方で、会議も机の上で行えるので必然的に机から動かない生活が続いています。
このままでは運動不足になると、近所のジムを契約しましたが、歩いて5分の距離にあるのですが全く行っておらず、先日休会しました。やはり、家で手軽にできないと続かない! 仕事の合間に運動して、気分転換できないか……。そこで考えたのが、体全体で操作できるマウスでした。仕事をしながら体を動かせば一石二鳥だからです。
部屋はそこまで広くないため、出窓に板を渡しただけの簡素なデスクを使っています。立って作業をしても良い高さのデスクなので、立ちながらでも使えるように足で操作できるマウスを作製することにしました。
マウスはキーボード用マイコン「Pro Micro」で作れる
マウス自体を手作りするのは意外と簡単で、自作キーボードを作製するときに使うマイコンボードと同じものが使えます。自作キーボードで一般的に使われている「Arduino Pro Micro」は、PCと接続したときにキーボードやマウスとして認識されるヒューマンインターフェースデバイス機能が搭載されているのが大きな特徴です。この機能があるおかげで、PCに接続すれば自動的にキーボードやマウスとして認識してくれます。
さらに、「Arduino IDE」と呼ばれる開発環境を使い、無料で提供されている「Mouse.h」ライブラリを使えば、プログラミング的な知識がほとんど無くても自作マウスを作れます。
狭い室内で立って使えるマウスを考えたときに、身体に貼り付けるマウスを思いつきました。しかし、PCの前から離れた時に有線だと危ない、無線だとバッテリーが重いという課題があったので、床に敷いて使えるマットにしました。
しかし、マット状のスイッチを作ったことがないので、人が乗っても安全で、足元を見ないで操作しても引っかからないものが分かりません。予算の壁もあるので、どうやって探せば良いのか悩みました。
ネット上にアイデアが無いか調べていたときに、ふと「圧力センサーなら使えるのではないか」と思いつきました。圧力センサーであれば、ON/OFFや圧力をかけている時間が取得できるので、スイッチとしても使えると思います。
ただ、大きな圧力センサーは一般的に販売しておらず、小さな圧力センサーでは、ピンポイントに押す必要があるのではないかという懸念がありました。そこで、Amazonで6×6cmの圧力センサーを購入して試してみることにしました。
圧力センサーをスイッチ代わりに使う
購入した圧力センサーには2本の端子が出ています。この2本の端子は+(プラス)と−(マイナス)で、2本の端子に極性はないので、どちらか片方をPro MicroのGNDに接続し、もう片方をPro MicroのPINに接続します。
プログラムは、Arduino IDEで作成しました。パソコンにインストールするArduino IDE以外にも、Webブラウザーで開発ができる「Arduino Web Editor」があります。環境構築の必要がなく、すぐに始められるので初心者にはArduino Web Editorがお薦めです。今回の作品も、Arduino Web Editorを使いました。
圧力センサーをPro Microに接続して、ButtonMouseControlのサンプルプログラムを書き換えることなく、そのまま書き込んだところマウスとして認識しました。そして圧力センサーに圧をかけると、パソコンの画面の上をカーソルがスクロールしていきました。
圧力センサー1個で1方向に動かすことに成功しました。さらにサンプルのプログラムを見ると、upButton、downButton、leftButton、rightButtonとどうやら4方向を割り当てられそうなので、圧力センサーを増やし4つにしました。
圧力センサーを4つにしてプログラムを書き込んでみたところ、これも思い通りに上下左右に動きました。とうとう1つもつまずかず実装できるようになったのかと、自分の成長に涙しました。
クリック操作はmicro:bit×MakeCodeでサクッと実現
自分の成長に浮かれて、作製した足マウスを操作していたときにとんでもないことに気づいてしまいました。そう、クリックができないのです。
足は上下左右のコントロールで大忙しなので、足にクリックの動作を入れるのは到底無理そうです。仕方がないので、クリックは手で操作することにしました。マウスのカーソルと同じようにPro Microでもクリック部分を作れますが、今回は「micro:bit」と呼ばれるマイコンを使ってクリックを再現することにしました。
micro:bitは、教育向けのマイコンボードです。しかし、「MakeCode」と呼ばれるブロックプログラミングの環境で、拡張機能「microbit-pxt-blehid」を使うと、micro:bitを簡単にBluetoothキーボードやBluetoothマウスとして動かせます。
これで、マウスの上下左右は足元の圧力センサーとProMicro、クリックは手元のmicro:bitで操作する準備が整いました。
ダンスダンスレボリューション的な装飾を施す
最後に、圧力センサーで作製したマウスを操作しやすいようにマットに貼り付けていきます。マット部分は、100円ショップに売っているスポンジのような質感のカラーボード(赤、青、黒)を使いました。また、裏には補強のため、段ボールのような質感のカラーボード(黒)の2つの素材を利用しました。
なんでしょうか。子どもの時に必死でプレイした「DDR(ダンスダンスダンスレボリューション)」を思い出してきました。今思うと画期的かつ、考え込まれたコントローラーだったのかもしれません。ボタン部分が分かりやすいように、上下ボタンに赤いカラーボード、左右ボタンに青いカラーボードを使い、その下に圧力センサーを取り付けました。
圧力センサーの検知度が落ちてしまわないか、6×6cmという小さいサイズで検知されるかが不安でした。しかしカラーボードの弾力性と厚さがちょうどよかったのか、色付きのカラーボードに足が乗っていれば、押していると認識されました。
ここまでつまずくことなく、サクサクと進んだので楽勝と思いプログラムを書き込んで動作を確認してみたところ、うっ、動く!
しかし、何だか操作している感じがない。一定のスピードでしか動かないので、フィット感がまったく感じられないという結果になりました。この日は、フィット感の正体が分らないまま作業を終了しました。
同僚から現状を打破するナイスなアドバイス
失意のまま迎えた翌日、たまたま参加した会社の親睦会に、学生時代にロボット開発をしていたエンジニアが参加していました。幸運にも帰りの電車が一緒の方向だったので、足で操作するマウスとフィット感の悩みについて相談しました。
「それ、加速度無いからじゃないですかね?」相談した瞬間に早速良いフィードバックが返ってきました。「加速度!? マウスにあるの?」そう返す私に、若干おいおいという表情で「マウス動かしたときにカーソルが一定のスピードじゃなくて、速く動かせば速く動くし、ゆっくり動かせばゆっくり動きますよね? それが加速度ですよ。どんなマウスにも入っていますよ」と教えてくれた。
「なるほど……加速度が必要なのか。しかし、圧力センサーを押すときにどうやって加速度をつけたら良いのか……?」家に戻り、もう一度Pro MicroのPIN配列を何気なく見ていたところ、アナログでデータを取得すれば良いと気づきました。最初のプログラムでは、ON/OFFしか考えてなかったのでデジタルでデータを取得していました。
圧力が強ければ速く動いて、弱ければゆっくり。踏み込み具合で調整すれば、フィット感が上がるのではないか。早速プログラムをデジタル入力からアナログ入力に変更し、踏み込み具合によってマウスのカーソルスピードを変更しました。
おおおお! 期待通りの動きをしてくれました!! 操作性も問題なし! これなら使えるかもと手応えを感じた瞬間でした。
私は休憩時間にネットサーフィンをしたりYouTubeを見たりすることがあるので、作製した足マウスを使い、まずはブラウザー操作ができるか試してみました。普段何気なく、手で扱うマウスで操作していますが、それが足に変わった途端にものすごく難しくなるというのが最初の印象でした。
始めに、狙ったところにカーソルを持っていくことに四苦八苦します。特に縦スクロールをカーソルとクリックを使って操作するのは非常に難しかったです。そして、手で操作するマウスの偉大さに気付かされました。もっと発明した人がたたえられても良いのではないかとさえ感じました。
簡単なゲームコントローラーとして使ってみる
しかし「足で操作するマウスは難しかった」だけで終わってしまうともったいないので、操作がしづらいことを逆手に取って楽しめることはないかを考え、簡単なゲームをあえて足マウスで操作してみることにしました。
そこで、手始めに「CrazyGames」で公開されている、ラインをつなげていく簡単なゲーム「Lines」を足マウスでプレイしてみました。CrazyGamesは、ブラウザーで手軽に遊べる無料のゲームプラットフォームです。7000以上ものゲームを無料で楽しめます。
ラインをつなげていくだけですが、適度に頭も使うので気分転換にはピッタリでした。ただ少し簡単すぎたので、次は卓球に挑戦しました。
この卓球は白熱しました。手でやれば簡単なスポーツなのに足だとすごく難しい! 徐々にラリーができるようになると集中して戦ってしまい、気づいたら汗をかいていました。
足マウスは効率的ではないが、ゲームに使うと面白い!
作ってみた感想としては、「足マウスを手で操作するマウスの代わりにするのは無理」でした。一方で、「なぜ世の中に足マウスが無いのか?」と思うくらい、足で操作したらゲームは楽しいという感覚が得られました。特に体全体が動くのでポカポカして、冬場には良さそうです。
また、簡単なルールのゲームも難しくなるので、老若男女問わずゲームで盛り上がれそうです。足マウスを2個作製して対戦ゲームをしても楽しそうですね。
リモート会議中もただ座っているだけになっているので、運動不足解消のため、こっそり足マウスを使って画面を操作してみようと思います。
今回使用したパーツリスト
名称 | 税込価格(円) | 個数 | 小計(円) | 用途 |
---|---|---|---|---|
Pro Micro - 青基板 | 2000 | 1 | 2000 | マウスのプログラム書き込み用マイコン |
20g-10kg薄膜圧力センサーRP-S40-ST | 1475 | 2 | 2950 | マウスのカーソル部分 ※テスト、本番使用 |
圧力センサーFSR X 406 | 1200 | 2 | 2400 | マウスのカーソル部分 ※本番使用 |
中クリップ付コード 5色 | 300 | 1 | 300 | センサーとProMicro接続用 |
カラーボード | 110 | 3 | 330 | 足マウス部分のシート作成用 |
プラダンボール | 110 | 4 | 440 | 同上 |
合計金額は8420円でした。