見出し画像

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キーとは言え、マトリクスに回路を組んでいくと配線が複雑になります。最終的にはかなりアクロバティックな空中配線にしていますが、これでも問題なく動作しています。

マイコンは薄型化のために片側からアングルピンヘッダで端子を水平に出しコネクタを接続しています。(写真は他のプロトの時の写真)

これらをケースに無理やり収めて、表記印刷を貼り付けて完成です。



いいなと思ったら応援しよう!