Introduction: ページを捲る、ただそれだけのデバイス

English version is here.

この片手で扱えるコントローラーを作った時には、ちょっと便利なものを作っただけのつもりでした。まさか自分が作ったものの中で、最も使用頻度の高いものになるとは思っていませんでした。

コントローラーの用途は以下の通りです。

  1. Kindle for MacでKindle本のページを捲る
  2. 確認していませんがKindle for PCでも使える筈です。
  3. Web小説を読むときにページを捲る
  4. 「カクヨム」の場合、次の話に進むこともできるので、マウスに触れることなく読書できます。目次を消しておくと、文章の一部が隠れて読めない問題が解消されます。
  5. 「小説家になろう」の場合、「表示調整」で「メニューバー:追従」をオフにしておけば、文章の一部が隠れて読めない問題が解消されます。残念ながら次の話に進むことはできないので、マウス不要にはなりません。

このコントローラーが自分の用途に合うかどうかを事前に判定することが可能です。使いたい状況でキーボードのPgUpキーもしくはPgDnキーを押してください。それでコントローラーのホイールを回したのと同じことになります。

このコントローラーが有用なのは、デスクトップPCで長文を読む場合だと思います。マウスやキーボードから手を離せるのがメリットなので、マウスやキーボードがどうしても必要になる用途ではメリットがありません。私が思いつくのはKindle本やWeb小説を読むという状況だけです。

あなたの役に立ちそうですか? 使いたくなってきた人だけ、次に進んでください。

Supplies

3Dプリンターで印刷するもの

それぞれ一つずつ印刷してください。

  1. board ... Step 2参照
  2. case
  3. grip
  4. lid
  5. shaft ... Step 1参照
  6. wheel

購入するもの

  1. ProMicro: 1個
  2. 高さ10mmのマウスホイールエンコーダ:1個
  3. https://www.amazon.co.jp/dp/B0C2V17MLF
  4. ピンソケット 12pin: 2個
  5. ボルト M3x8mm:1個
  6. ナット M3:1個

Step 1: シャフトの調整

マウスホイールエンコーダの六角穴が非常に小さいため、シャフトの3Dプリントが難しくなっています。私の3Dプリンタでは六角棒を90%に縮小するとちょうど良い感じでした。

これはshaft_scaleというパラメータで変更可能です。Fusionを使える人はこのパラメータを使って調整して下さい。

Fusionを使えない人のために六角棒のサイズを80%, 85%, 90%, 95%, 100%にしたモデルを作成しましたので、こちらを試してみて下さい。

シャフトが緩いと空回りしてページが捲れなくなります。

Step 2: Boardの調整

部品点数と配線が少ないので、プリント基板の設計と製作を省略しました。代わりに部品を取り付ける土台となるboardを3Dプリントします。

このboardにピンソケットを取り付ける穴が24個あるのですが、穴径が小さいため私の3Dプリンターでは設計値通りの穴が空きません。この穴の大きさが緩すぎずキツすぎないちょうど良い大きさになるように調整したところ、直径が1.4mmになりました。これは私の3Dプリンターで印刷した場合の話なので、それぞれのプリンターに合わせて調整が必要になると思います。穴の大きさは「board_hole_diameter」というパラメータで調整して下さい。

小さめの穴で印刷して、ドリルでちょうど良い穴をあけるという方法もあります。

"board.step"は穴径1.4mm、"board_12.step"は穴径1.2mm、"board_10.step"は穴径1mmのモデルです。

Step 3: Boardに部品を取り付ける

boardにマウスホイールエンコーダを一つと12ピンのピンソケットを二つ、M3のナットを一つ取り付けます。

次に以下の3本の配線をはんだ付けして下さい。

  1. エンコーダの1ピンとProMicroの11ピン(シルク:8)
  2. エンコーダの2ピンとProMicroの12ピン(シルク:9)
  3. エンコーダの3ピンとProMicroの23ピン(シルク:GND)

ピンソケットにProMicroを差し込んでください。

Step 4: BoardとLidを接続する

boardとlidをM3x8mmのボルトで締結して下さい。ボルトの頭が出っ張らないように、最後までボルトを回し切って下さい。

Step 5: グリップを取り付ける

写真の様に、グリップをケースにねじ込みます。

Step 6: シャフトをホイールに差し込む

写真の様に、シャフトをキー溝の位置に注意しながらホイールに差し込みます。

Step 7: シャフトをマウスホイールエンコーダに差し込む

写真の様に、シャフトの六角棒をマウスホイールエンコーダに差し込みます。

Step 8: ケースの中に挿入する

前のステップで組み立てたものを、写真の様にケースの中に挿入します。

このままではケースの中に入っている部品が抜けたり回転したりしてしまいます。それを防ぐためにケースの穴からM3のボルトが見えるように位置合わせしてから、ボルトを緩めて外に出します。ボルトの頭が穴に引っかかって固定されれば、ハードウェアは完成です。二番目と三番目の写真を見てください。

Step 9: ProMicroへのソフトウェア書き込み

USBケーブルでコントローラーをコンピュータに接続してください。そしてArduino IDEを使って「KindlePageTurner_ver_1_0_0.ino」をProMicroに書き込んでください。

ただし、このソフトウェアはbrianlowの"Rotary Encoder Arduino Library"を使っているので、これを先にライブラリとしてインストールする必要があります。

  1. https://github.com/brianlow/Rotary

"Rotary.h"の中にある"HALF_STEP"を探してください。ここのコメントアウトをやめて有効にすると一回カチッとするだけでページを捲れるので、違和感なく使えます。ただし偶にページが逆方向に捲れてしまうことがあります。

"HALF_STEP"をコメントアウトすると誤動作しにくいですが、ページを捲るために二回カチカチと回す必要があります。

ホイールの回転方向を変えたい場合は十九行目と二十行目を修正してください。

Step 10: 使ってみる

USBケーブルでコントローラーをコンピュータに接続し、ホイールを回してみましょう。コンピュータで動作中のソフトウェアが、ページアップキーもしくはページダウンキーを押した時と同じ反応を示す筈です。マウスレスで読書を楽しみましょう。