DIYキーボード お気軽デビュー!
プロトタイピングのツール研究から興味を持ったDIY(自作)キーボードですが、少ないキー数で作れる組込み機器のプロトタイプと違い、文字入力のためのPCキーボードはキー数も多くちょっと大変だなと感じていました。
自作キーボードキットを購入する方法もありますが、完全オリジナルをどこまでお気軽にできるか試してみたかったので、使い慣れた部品を使って「お気軽に」体験してみることにしました。これが私のDIYキーボードデビュー作になります。
<<お気軽ポイント>>
●安い汎用部品を使用
●キー数を減らしたシンプルな回路
●PRK Firmwareで簡単設定
スマホ用伸縮キーボード作ってみた
左右分離(ただしケーブル接続)で4x5x2=40キーのキーボードです。
スマホと一体にする場合には左右に広げて挟み込む形となり、持ち歩きや分離して使用するときは左右を縮めることができます。
PRK Firmwareを使って必要な文字を打つ
今回も@hasumikinさんのPRK Firmwareを使わせてもらっています。(と言うか、これしか知らん)
通常のPCキーボードでは100キー前後がありますので、40キーはかなり少ないことになります。そのため入力モードを切り替えるレイヤー機能を使って数字や記号を入力できるようにしました。
レイヤー機能を使うと40キーx3レイヤーで 120キー弱の文字が打てることになりますが、今回はレイヤーを切り替えるのはShiftキーのように入力モードボタンを押している間としたため、右側のキーのみ数字と記号を配置しています。(左側で入力モードキーを押す)
モードを切替固定式にすればレイヤー切替中でも左右のキーが使えるので、さらに多くの文字を割り当てることもできそうです。
kbd = Keyboard.new
kbd.init_pins(
[ 2, 3, 4, 5 ], # row0, row1,... respectively
[ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ] # col0, col1,... respectively
)
kbd.add_layer :default, %i(
KC_Q KC_W KC_E KC_R KC_T KC_Y KC_U KC_I KC_O KC_P
KC_A KC_S KC_D KC_F KC_G KC_H KC_J KC_K KC_L KC_BSPACE
KC_Z KC_X KC_C KC_V KC_B KC_N KC_M KC_COMMA KC_DOT KC_ENT
KC_LSFT RAISE KC_LALT LOWER KC_SPACE KC_RSFT KC_LEFT KC_RIGHT KC_UP KC_DOWN
)
kbd.add_layer :raise, %i(
KC_NO KC_NO KC_NO KC_NO KC_NO KC_7 KC_8 KC_9 KC_MINUS KC_KP_SLASH
KC_NO KC_NO KC_NO KC_NO KC_NO KC_4 KC_5 KC_6 KC_KP_PLUS KC_BSPACE
KC_NO KC_NO KC_NO KC_NO KC_NO KC_1 KC_2 KC_3 KC_KP_ASTERISK KC_ENT
KC_NO KC_NO KC_NO KC_NO KC_NO KC_0 KC_KP_DOT KC_NO KC_LPRN KC_RPRN
)
kbd.add_layer :lower, %i(
KC_NO KC_NO KC_NO KC_NO KC_NO KC_EXLM KC_HASH KC_PERC KC_NO KC_NO
KC_NO KC_NO KC_NO KC_NO KC_NO KC_AMPR KC_AT KC_QUES KC_NO KC_BSPACE
KC_NO KC_NO KC_NO KC_NO KC_NO KC_SCOLON KC_COLON KC_EQUAL KC_NO KC_ENT
KC_NO KC_NO KC_NO KC_NO KC_NO KC_NO KC_NO KC_NO KC_LBRACKET KC_RBRACKET
)
kbd.define_mode_key :RAISE, [ nil, :raise, nil, nil ]
kbd.define_mode_key :LOWER, [ nil, :lower, nil, nil ]
# kbd.define_composite_key :ALT_SPCE, %i(KC_LALT KC_SPACE)
kbd.start!
やっぱり工作は楽しい
今回は電子部品の通販サイトで購入できる汎用部品と3Dプリンターを使って、それなりに実用性のあるキーボードを作ることを目標にしました。
メインのスイッチにはいつも使っているアルプス電気(ALPS) のφ6.2mm丸端子タクトスイッチです。これを汎用のユニバーサル基板に配置して使っています。(画像表示のためAmazonのリンクを貼っています。購入は別業者)
40キーとは言え、マトリクスに回路を組んでいくと配線が複雑になります。最終的にはかなりアクロバティックな空中配線にしていますが、これでも問題なく動作しています。
マイコンは薄型化のために片側からアングルピンヘッダで端子を水平に出しコネクタを接続しています。(写真は他のプロトの時の写真)
これらをケースに無理やり収めて、表記印刷を貼り付けて完成です。