「布団から手を出さずに読書アプリのページをめくるやつ」を作るまでの流れ

ある日「アプリで本を読んでいる時に、指で画面をタップせずにページをめくりたい」と思い、それっぽい物を作ってみました。

最終的には、このM5StickCだけで済んだのですが、

本記事では、それを作るに至るまでの調査や試行錯誤の流れを紹介します。
そんな製品・やり方もあるんだなぁという知見をお伝えできれば幸いです。
(作り方は別記事で紹介する予定なので、そちらをお待ちください。)

f:id:moyashipan:20200120230158j:plain

かなえたいこと

  • 無線: ゴチャゴチャしないように無線だと嬉しい
  • サイズ: ジャマにならないサイズだと嬉しい
  • ブラインド操作: 手元を見なくても操作できるようにしたい
  • カスタマイズ性: アプリごとにキーが違うなどに対応したい
  • 値段: できるだけ安く

ゲームコントローラ

Windowsでは JoyToKey などでゲームコントローラーからの入力をキー入力に変換するソフトウェアがありますよね。
そのノリで「もしかしてコントローラーがそのままアプリで使えるのでは」と思い、日頃使っているPS4DUALSHOCK 4をiPadに接続してみたのですが、残念ながら読書アプリのページめくりには対応していませんでした。

Bluetooth接続のキーボード

「読書アプリはキー入力でページめくりができる」というのに気づいたきっかけがBluetooth接続のキーボードでした。

無線で使えるし、物によっては3000円ぐらいで手頃なのはいいのですが、サイズ・ブラインド操作・カスタマイズ性の面で見送りました。
具体的には上下左右キーなどで操作できるのがわかったのですが、布団の中でそれらのキーを狙って押すのもなかなか大変ですし、そもそも布団の中にキーボードがあるのはちょっと困ります。
とはいえ、ページめくり以外のこと(日常のタイピング操作)にも使いたい場合には良い選択肢だと思います。

Bluetooth接続のテンキー

次に、サイズとブラインド操作を考慮して、フルサイズのキーボードではなくテンキーを検討してみました。
電気屋の店員さんに相談して、以下の製品の実機をiPhoneに接続して試させてもらいました。

すると、iOSでは数字キーとしては正しく使えるものの、NumLockをOFFにした際の上下左右キーは機能しませんでした。(Androidならうまく使える可能性はあります)
よって、これも見送りました。

Bluetooth接続のフットペダル

"Bluetooth ページめくり"などで検索していたら以下の製品が見つかりました。

こんな製品があるんですね。 頑丈そうなボディ、暗くてもわかりやすいLED、省電力化などを考えなくていい、といった点で選ぶのであればこれが良さそうです。
しかしズボラな読書体験のために8000円以上出すのはちょっと気が引けたのでこれも見送りました。

とはいえ「Page Up / Down」「矢印キー上下」「矢印キー左右」という3つのモードを切り替えられるというのが、その後の制作の良いヒントになりました。

iOSのヘッドトラッキング

iOSの「設定 > アクセシビリティ > スイッチコントロール」には「ヘッドトラッキング」という機能があります。
これを利用することで、iPhone, iPadのカメラに対して右へ顔を向けたら右へスワイプ、左へ向けたら左へスワイプ、といったことができるようになります。
ただこれはiPadと自分とのポジションがある程度固定されてしまいます。
自分の場合は、より自由な状態で読書を行いたかったのでこの方法も見送りました。

iOSの音声コントロール

iOSの「設定 > アクセシビリティ」には「音声コントロール」という機能もあります。
自分の場合はこの設定をONにしようとしてもなぜか「必要なファイルをダウンロードできませんでした。音声コントロールをオンにしてやり直してください。」と表示されてしまって困っていたのですが、日を変えて試したらONにできました。

試している様子は以下の動画から見れます。 https://twitter.com/Moyashipan/status/1218439387907641344

「Swipe right」「Swipe left」で左右それぞれにスワイプできたり「Go to home」「Open "Kindle"」などの操作ができて便利です。
ただし自分の場合は「Swipe left」の「left」がうまく聞き取ってもらえず、何度も言い直す必要があって困りました。

そこで「新規コマンドを作成」から「"Next page"と発話したら画面右をタップ」「"Previous page"と発話したら画面左をタップ」というコマンドを追加しました。
これであればうまく聞き取ってもらえるので、なかなか便利になりました。

いくつかのキーを組み合わせられるキーボード

音声コントロールが良いのは、iPad以外のデバイスがいらないという点でしょう。
ですが、1ページめくるために毎回声を出すというのは地味に面倒です。
そこで前述の「Bluetooth接続のキーボード」から「Bluetooth接続のフットペダル」までの発想に立ち返り「結局、上下なり左右のキーだけが押せるデバイス」を探してみました。

するとこんなのを見つけました。
自分の好きなキーを好きな配置にカスタマイズできるキーボードです。
www.kickstarter.com

残念ながら製作の折り合いがつかずプロジェクトはキャンセルになったようですが、こういうのを自分で作れると楽しそう&ドンピシャな物を得られて良さそうですね。

M5StickC

ESP32というマイコンBluetooth Low Energyが利用できます。 そしてM5StickCにはそのESP32が積まれており、2つのボタンと小さな液晶パネルもついています。
これらの特徴を活かせば、複数のアプリにも対応できるワンボタンのキーボードが作れそうです。

バッテリーがどれだけ持続するかなどは不安材料としてありましたが、2000円ほどで買えてコーディング以外の作業がいらないという手軽さから、M5StickCを使って作ることにしました。

いくつかの製品を組み合わせた自作キーボード

もしかしたらもっと良いアイディアがあるかもしれないと重い、これまでの流れを会社の同僚に説明したところ、以下の製品を紹介してくれました。

無接点充電ができてカスタマイズ可能なBluetooth接続のキーボード。かっこいいですね。
バッテリーや充電について改善したい気持ちが出てきたらこういった制作にチャレンジしてみても良さそうです。

ワンボタンキーボード

他にもこのような製品を紹介されました。
まさにひとつのキーです。
www.one-button-key.com

ミニマルなコンセプト。実際に販売している。そういった、みんなに広まる電子工作っていいですね。
方法としては選択しませんでしたが、これらを見たことで、今は赤ちゃんレベルの電子工作しかできないけど今後はこういうのやりたいなーと、目標のような物を持てた気がします。

まとめ

いろいろな案を紹介しましたが、今回の自分のニーズにはM5StickCが最も合ってそうだったのでそちらを選択しました。
とはいえ「布団から手を出さずに読書アプリのページをめくる」というのを実現するためにも、いろいろな案が浮かんで来るし、それを叶えられそうないろんな製品が見つかるというのが伝わったでしょうか。

もし今回僕が叶えたかったことと完全には一致しなくても、ここで紹介した内容のどれかがみなさんのヒントになれば幸いです。