60%キーボードを手配線で作りました。自キ制作レポートです。
窮屈ですが69キーの自作キーボードを作りました。
設計方針
私はUS配列がJIS配列より好きだ。JISは手を動かさないとENTERが押せないがUSは指を動かすだけで押せるからだ。それにJIS配列の{}が上下にずれてるのおかしいだろ。
しかしUS配列で日本語キーボードを打つと不便だと思う。_が打てないのだ。
ということでENTERキーにアクセスしやすいUS配列ライクで日本語キーボードのキーを網羅したキーボードが欲しい。
最近は75%を使用していて丁度60%キーボードはほんとに快適なのかと思っていたため60%を制作することに決めた。
出来上がり
打鍵感は外側のキーが少し硬いのは仕方ないか。カチャカチャなるわけでもないし悪い感じはせず普通に使えるものができた。キーキャップは足りなかった分を前回の余りで補った。
PBTキーキャップはサラサラしているのがいいですね。
OEMプロファイルは一般的ではありますがやっぱり少し背が高いです、他のキーキャップも触ってみたい。
US配列で日本語設定で_と|を打てるのはめちゃくちゃ使いやすい。US配列使っていた時のストレスがなくなり最高。今まで_を打つのにWIN+SPACEでUSキーボードに切り替えSHIFT+-を打つというめんどくささだった。
材料
マイコン | Pro Micro-遊舎工房 |
リセットスイッチ | タクタイルスイッチ–遊舎工房 |
ダイオード | 1SS178-秋月電子通商 |
配線用ワイヤ | はんだメッキ線 0.6mm-秋月電子通商 |
耐熱電子ワイヤー 1.22mm-秋月電子通商 | |
キースイッチ | Ajazz 黒軸-AliExpress |
キーキャップ | KBDfans OEM PBT Blank Keycaps-AliExpress |
プレート | KPrepublic 60% carbon fiber plate-AliExpress |
コイルケーブル | AKKO Aviator Cable Type C-AliExpress |
ゴム足 | ゴム足 100粒入り-Amazon |
USBアダプタ | UGREEN USB C to Micro USB-Amazon |
キーボードケース | 適当な木材 |
キーレイアウト
Keyboard Layout Editor (keyboard-layout-editor.com)にて作成しました。
窮屈ですが実質65%キーボードです。市販のプレートで詰め込めるだけ詰め込みました。
キーマップはとりあえず詰めてみました。
組み立て
プレート
2uShiftのモノを今回購入してみました。プレートにキースイッチをはめ込みボンドで固定。
配線
ダイオードを手配線、69個あるのが大変。
promicroとリセットスイッチ、回路を配線。これでキーボードとしてはもう機能しそう。
なぜかリセットスイッチ外からアクセスできないところに配置。気が向いたら外からアクセスできるようにします。promicroはキーボードの下に隠して配置するより上とかにスペースを設けた方が都合いいのかもしれないと思った。
キーボードケース
できるだけシンプルで簡単なケースにしようと思った。木材をのこぎりでカット。全然まっすぐ切れてなかった。のこぎりなんて普段使わんもん。電動のこぎりか厚みのある樹脂板の方が楽だったかも。
ボンドで接着。ねじ止めする予定だったが予定から組み替えたりしてたらよくわからなくなった。
組み立て
家にあったラッカースプレーで適当に塗装、リア板の穴にUSBアダプタをボルトとナットで固定。
リア板を溝に挿しこむ、キーボード乗せる、ねじで固定、ゴム足をつけて完成
Firmware
config.h
#pragma once #include “config_common.h” #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x0002 #define DEVICE_VER 0x0001 #define MANUFACTURER Tsuiha #define PRODUCT 60percent01 #define MATRIX_ROWS 10 #define MATRIX_COLS 7 #define MATRIX_ROW_PINS { D1, D4, D7, B4, B5, D2, D0, C6, E6, F5 } #define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6, D3 } #define UNUSED_PINS #define DIODE_DIRECTION COL2ROW |
10行7列で作りました。
60percent01.h
#pragma once #include “quantum.h” #define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, \ k10, k11, k12, k13, k14, k15, k16, \ k20, k21, k22, k23, k24, k25, k26, \ k30, k31, k32, k33, k34, k35, k36, \ k40, k41, k42, k43, k44, k45, k46, \ k50, k51, k52, k53, k54, k55, k56, \ k60, k61, k62, k63, k64, k65, k66, \ k70, k71, k72, k73, k74, k75, k76, \ k80, k81, k82, k83, k84, k85, k86, \ k90, k91, k92, k93, k94, k95 \ ) { \ { k00, k01, k02, k03, k04, k05, k06 }, \ { k10, k11, k12, k13, k14, k15, k16 }, \ { k20, k21, k22, k23, k24, k25, k26 }, \ { k30, k31, k32, k33, k34, k35, k36 }, \ { k40, k41, k42, k43, k44, k45, k46 }, \ { k50, k51, k52, k53, k54, k55, k56 }, \ { k60, k61, k62, k63, k64, k65, k66 }, \ { k70, k71, k72, k73, k74, k75, k76 }, \ { k80, k81, k82, k83, k84, k85, k86 }, \ { k90, k91, k92, k93, k94, k95, KC_NO } \ } |
keymap.c
#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( KC_DELETE ,KC_BSPACE ,KC_EQUAL ,KC_MINUS ,KC_0 ,KC_9 ,KC_8 , \ KC_BSLASH ,KC_RBRACKET ,KC_LBRACKET ,KC_P ,KC_O ,KC_I ,KC_U , \ KC_PGUP ,KC_ENTER ,KC_QUOTE ,KC_SCOLON ,KC_L ,KC_K ,KC_J , \ KC_PGDOWN ,KC_UP ,KC_INT1 ,KC_SLASH ,KC_DOT ,KC_COMMA ,KC_M , \ KC_RIGHT ,KC_DOWN ,KC_LEFT ,KC_JYEN ,KC_RCTRL ,MO(1) ,KC_RSHIFT , \ KC_ESCAPE ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 , \ KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_7 , \ KC_GRAVE ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_Y , \ KC_LSHIFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_H , \ KC_LCTRL ,KC_LGUI ,KC_LALT ,MO(1) ,KC_SPACE ,KC_N \ ), LAYOUT( _______ ,KC_PSCREEN ,KC_F12 ,KC_F11 ,KC_F10 ,KC_F9 ,KC_F8 , \ _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , \ KC_HOME ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ , \ KC_END ,KC_MS_WH_UP ,_______ ,_______ ,_______ ,_______ ,KC_MAIL , \ KC_MS_WH_RIGHT ,KC_MS_WH_DOWN ,KC_MS_WH_LEFT ,_______ ,_______ ,_______ ,_______ , \ _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 , \ _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_F7 , \ _______ ,KC_MEDIA_PREV_TRACK,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_NEXT_TRACK,_______,_______ ,_______ , \ _______ ,_______ ,_______ ,KC_CALCULATOR ,_______ ,_______ ,_______ , \ _______ ,_______ ,_______ ,_______ ,_______ ,_______ \ ) }; |
どうせだからfnキーも活用していきたい。
反省点
60%キーボードとして普通に使えるものができた。
キーボードケースの工作精度がひどすぎたのでまともに作れる方法を考える。
強く押し込むとたわむが、このたわみ自体は悪いものではないらしい。しかし基板なしのプレートのみだと不安な部分はある。
キーボードの高さは既製品とほぼ同じだったがもう数ミリは薄型化の余地がある。
アクリルカット注文しサンドイッチとか積層で作るのが強度を担保できるのでアリかもしれない。でもちゃんとケースの方が見た目いい気がする。でもアクリルカット注文すると今回の場合一番金のかかる部品がケースになるんだよなあ。
最近のキーボードはホットスワップのモノが多いし中華メーカーであれば8000円程度でホットスワップの完成品が日アマでも売っている。製作費用は8000円程度だったのでわざわざパーツを集めて作る意味は薄い。
個人的なUS配列ライクなJIS用自作キーボードの試作という目的は達成されついでに矢印キーも入れることができたので目標は達成されたと思う。
コメント