エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

1つのキーだけのキーボードを作る

エムスリー エンジニアリングGの岩本です。

会社ではiOS開発やサーバサイドの開発を担当していますが、家でDIY・IoT・スマホアプリなどを作るパパエンジニアやっています。

最近Kindleでコミックを読んでいます。コミックって結構頻繁にページめくりをする必要があるんですよね。だからキーボードとか、トラックパッドに手をずーっと置いておくのですが、そのうちこうなります。

f:id:cpw:20211215160413p:plain:medium

手を前にして固定している状態が長時間続くので辛くなるんですよね。

これをITの力で改善します。

なお、エムスリーテックブログのものづくり系の記事が増えてきたのでこちらもよろしければ参照ください。

方向性の決定

好きなタイミングでページめくりができて、長時間使っても疲れないこと。 これが実現できればどのような形でも構いません。 いくつか考えてみました。

1. ジェスチャーをカメラで認識してページめくり

f:id:cpw:20211215161551p:plain:medium

手を前に出さないし、体勢も常に変化するので肩こりは減りそうです。 ただ正直今よりさらに身体が疲れそう。

2. 声でページめくり

f:id:cpw:20211215162254p:plain:medium

これなら体を動かさないのでジェスチャーの欠点を補うことができそうですが、家族から苦情が来そうです。

3.キーボード or マウスを手に持って操作

f:id:cpw:20211215202622p:plain:medium

無難にこれですかね。ただ、なるべく負担を減らしたいので小さいものにしたいです。

作ったもの

ということで作ったデバイスがこちら

f:id:cpw:20211215203526j:plain

有名なM5StackシリーズのATOM Liteです。 簡単に説明すると、プログラムを簡単に書き込めて、Wi-Fi、Bluetooth、ボタン、LEDがついている安価なガジェットです。 これはボタンが1つだけついているので、BLEキーボード化して特定のキーを送信するようにプログラムしています。

工夫した点

Kindleでは矢印キーを押したいけど他のゲームなどではEnterを押したいという要望に答えるために、 送信するキーを変更できるよう工夫しています。

ボタンを長押しすると編集モードになります。そこで、押したときのキーを変更できるようにしています。 今何が設定されているかなどは自動的にタイピングされます。 設定時のイメージはこんな感じ。

f:id:cpw:20211216000125g:plain

最後に

自分が使うツールをプログラミングして作るのは楽しいですね。 やったことは大したことのないものですが、 少し工夫することで愛着も湧いてきます。 今度は離れた家族を呼ぶトランシーバー的なものも作ってみていなぁ。

ちなみにいつもこんな記事ばっかり書いていますが、普段はKotlin、Go、Terraformなどを書いて仕事しています。

We are hiring!

エムスリーでは好奇心旺盛で技術が好きなエンジニアを絶賛募集中です。少しでも興味を持っていだたけら以下のリンクよりカジュアル面談にぜひご応募ください。

jobs.m3.com