サブマシンのメンテナンスに使っていたキーボードが壊れたので新調することにしました.使用頻度が低いためできるだけコンパクトであり,それでいて効率的にタイプできるようなキーボードが欲しかったけれど,適当なものがなかったので自作しました.自作と言っても,キーボード部分もファームウェアも出来合いのものを使って可能な限り手を抜いて作りました. 完成したサイズは260x102x11mmと比較的コンパクトに収まりました.右下の写真は,バッファローのフルサイズキーボードYDKBU02(上),サンワサプライのスリムキーボードSKB-SL28BK(左),今回自作したキーボード(右)です.サンワサプライのものに比べてやや大きめですが,キーピッチが大きくキー配置も標準的なのでタイプがしやすくなっています.
秋葉原でノートPC補修用のキーボードを探したところFMV-BIBLO LOOX M/G30用のキーボード(型番: MP-09J30J0-D851)が比較的コンパクトだったので購入しました.30ピン1mmピッチのフレキシブルケーブルが出ているので,テスターで信号を解析した結果キーとの対応は下の表のようになりました.30ピンのうち実際に使われているのは23ピンです.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | |
9 | Alt | 無変換 | Q | E | T | Y | 8 | I | [ | ; | \ | ↑ | |||
10 | Win | Tab | 2 | 4 | R | K | U | O | ¥ | @ | → | ||||
11 | Ctrl_R | 半角 | F1 | F3 | F5 | F7 | F8 | F10 | Num | F12 | Ins | ||||
12 | A | Space | S | G | B | . | ] | / | 変換 | ↓ | |||||
13 | Z | X | V | N | M | , | Enter | App | カナ | ← | |||||
14 | Shift_R | ESC | F2 | F4 | F6 | 6 | F9 | F11 | Pause | BS | Del | ||||
15 | Shift_L | Caps | 1 | 3 | 5 | 7 | 0 | 9 | ^ | P | |||||
16 | Ctrl_L | Fn | W | D | C | H | J | F | : | - | L |
ファームウェアは自分で書くのは面倒だったので,QMKという自作キーボード用のファームウェアを使うことにしました.マイコンにはATmega32U4を搭載したPro Microを使いました.ただしボード上に引き出されているポート数は18しかなくて不足するので,未使用の5つのポート(PB7, PC7, PD6, PF0, PF1)を直接チップにはんだ付けして引き出して使いました.ボードに付属のLEDも交換してCapsLockで赤色,NumLockで青色が光るようにしましたが,キーボード内で光るだけなので外部からはあまり見えません.単純な回路なので回路図は書かずに,下記の対応表を元に配線を行いました(*印はICから直接接続).
Keyboard | AVR |
1 | PB2 (16) |
2 | PF4 (A3) |
3 | PB6 (10) |
4 | PF5 (A2) |
5 | PD3 (TXO) |
6 | PF6 (A1) |
7 | PD2 (RXI) |
8 | PF7 (A0) |
17 | PC7 (*) |
18 | PD7 (6) |
19 | PD6 (*) |
20 | PE6 (7) |
21 | PB7 (*) |
22 | PB4 (8) |
23 | PB5 (9) |
9 | PD1 (2) |
10 | PB1 (15) |
11 | PD0 (3) |
12 | PB3 (14) |
13 | PF0 (*) |
14 | PD4 (4) |
15 | PF1 (*) |
16 | PC6 (5) |
(TXLED) | PD5(*) |
(RXLED) | PB0(*) |
キーボードのケース(土台)は3Dプリンターで印刷しましたが,サイズが大きいので2分割してアクリル用接着剤で接着しました. キーボード背面にAVRの基板をエポキシ接着剤で張り付けた際に,はみ出た接着剤がキーボードのスイッチに付着してキーが動かなくなってしまい,取り除くのに手間がかかりました.