どうもアシスト研 15 のも です。久しぶりの投稿になります。
今回は後期研究報告会でも紹介した自作キーボードver1.0について紹介したいと思います。

〇初めに
まず皆さんに訴えたいのは、今あるキーボードとマウスという入力装置(ヒューマンインターフェースデバイス)は長い間その姿をほとんど変えておらず、そろそろ新しいデバイスに代わってもよいのではないか!、ということです。

ロ技研のポリシー「ないものは作れ!」に従って自分で作ってしまおうと思い立ち、
newHID(ヒューマンインタフェースデバイス)projectが始動しました。
まずは勉強がてら自作のキーボードを作ってみようということで作ってみました。

〇試作
自作のキーボードといってもいわゆるPCのキーボードを作るとなると100キー以上必要になるわけです。そんなにスイッチをつけるのは大変ですし、そもそもピアノのように同時押しをすることを考えたら7キー(2の7乗=128)ですべてのキーを表すことができるはず(Shiftなどの同時押しを考慮しないなら)。
いろいろ考えた結果

使ったのは手軽にプログラミングできて、HIDclassに対応しているLPC1768と、HIDのライブラリが整っているmbedです。

実際に作った自作キーボードはこちら。
CzPkWMbUUAAQE4l

左から順に
モードチェンジ(文字モード、数字モード、Functionキーモード)
modifier(CTRL,SHIFT,ALT,WINキー)


文字(アルファベット)


ENTER,SPACE,BACKSPACE

にすることで標準のキーボードのすべての入力を再現することができました。

キー入力をマイコンからできるということは、自動でキー入力ができるということでは
と思い、自動入力を使っていろいろ面白いものを作ってみました。

〇メモ帳を使ってメニューを表示する
時間差で複数のキーコードを送信することで、スイッチを一回押すだけで高速でキーボード入力しているのと同じことができ、PCを自在に操作できます。

ここでこの自作キーボードにボタンの入力以上のことをさせるアイデアを思いつきました。
 
Win+R
文字列"notepate"の入力
ENTER
を高速でキー入力することで自動でメモ帳を開きそこにメニュー画面を文字列入力で表示します。
メニューを選択すると同じく高速でキー入力することでchromeを開いたりcmdを開いたりなど様々なことが行えます。


〇勝手に検索
HIDとして認識されるこのデバイスは、誰のキーボードにさしても外付けキーボードとして認識され、セキュリティをかいくぐってPCを操作することができます。

その例として今回はUSBを指したら勝手にロボット技術研究会のブログを開くようなプログラムを書いてみました。

Winキー + "chrome"の入力 でgooglechromeを開き、
"titech-ssr.blog.jp"の入力 + ENTER でロ技研のブログを開いています。
このようにキーボード入力で行えることはマイコンに事前にキー入力を予約しておくことで自動化することができます。
誰かのPCにさして勝手にgoogle検索をすることが可能なのです。(BadUSBみたい)


〇メモ帳でリバーシ
文字の入力が高速でできるのでメモ帳を使ってリバーシをしてみました。

このデバイスを指すだけで適当なテキストを入力できるところでリバーシをすることができます。


〇まとめと今後
HIDクラスで入力できるUSBデバイスならばセキュリティをかいくぐってPCを思いのままに操り、楽しいことができるということが分かったので、今後はもっと実用的な形にしていきたいと思います。
ver2では小型化のために今度はpicマイコンを使い、人が持ちやすい形、スイッチの配置をしていき、新歓展示を目標に製作していきたいと思います。