初心者も無限の可能性で自作キーボードの勉強してみませんか?
はじめまして
かれいの煮つけです。
頭ゆるふわ情報系学生で、今まで作ったキーボードはMint60だけ。
しかも購入したのはProMicroにプログラム書き込み済みのもので、完全に自作キーボード初心者です。
今回、CherryMXLEDBitBoard (無限の可能性)とProMicroSocket(プロマイクロのおうち)
を使って、名刺サイズキーボード作りました。
ビルドログや、自作キーボード温泉地の方からのアドバイスを参考にして作ったので、自分も少しでも初心者さんの参考になるといいなと思い、ビルドログを残します。
※ProMicroのコネクタ部分が上から出るのが普通なので適宜読み替えてください
材料
材料 | 個数 | メモ |
---|---|---|
スペーサー7mm | 8個 |
7mm以上なら他の長さでもOK。遊舎工房さん店舗に10mmのあったと思います。 ネットならヒロスギネットなど。 |
ねじ5mm | 8個 | ホームセンターなどで買おう。 |
アクリル板2mm | 完成品×4くらい |
はざいやさんでいろいろな種類のアクリルがありました。 加工を失敗する可能性があるので、少し余裕をもって用意しましょう。 |
キーキャップ | 4個 | 遊舎工房さん店舗、TALPキーボードさん、縁鍵盤工房さん、海外輸入など。 |
ProMicro | 1個 |
遊舎工房さん(スプリングピンヘッダ付)、TALPキーボードさんなど。 追記:ProMicroが手に入ったら、まず最初にエキポシ系接着剤でUSBポートの補強をしましょう。完全に固まるのに時間がかかります。あまり厚く盛るとおうちに刺さらなくなります。 |
エキポシ系接着剤 | 1個 | ProMicroのUSBポート補強に絶対必要です。 |
USBケーブル | 1個 | お好きなもの。 |
キーホルダーチェーン | 1個 | 持ち歩きたいし、キーホルダーチェーンつけました。 |
キースイッチ | 4個 | 遊舎工房さん、TALPキーボードさんなど。お好きなもの。 |
ジャンパー線 | 少し | ビニールが縮んでしまいました。ウレタンエナメル線(0.35mm)の方がいいかも。 |
LED(SK6812mini) | 4個 | 表面実装なので難易度高め。 |
ダイオード | 4個 | TALPキーボードさんなど。 |
リセットボタン | 1個 | 私は付けていませんがあった方がいいです。 |
機材
機材 | メモ |
---|---|
はんだごて | LEDの表面実装をするなら、温度調節機能付きがおすすめです。 |
こて台 | どれでもOK。はんだごて机に直置きはNGです。 |
ニッパ | お好きなもの。 |
はんだ | 鉛フリーはんだでLEDを表面実装できる自信がなく、鉛入り。 |
ピンセット | HOZANの先の曲がったのを使いました。 |
ドライバ | ねじのサイズに合ったもの。 |
無限の可能性 ProMicroのおうちとは
自分で基板を設計をしなくても、オリジナルキーボードを作れる基板です。
しかも光らせることができます。
無限の可能性でColosseum44などヤバい(誉め言葉)キーボードを組み立てていらっしゃる方々がいますが、
いやいや逆に小さいサイズのかわいいキーボードを作るのもありなんじゃない???
私のような初心者も自分で基板を設計する前に無限の可能性使って勉強してみるのありなんじゃない??と思います。
Colosseum44についてはこの記事が分かりやすいです。
salicylic-acid3.hatenablog.com
無限の可能性の詳細はこちらをご覧ください。
無限の可能性とProMicroのおうちはこちらで購入できます。
キーボードケースの設計
遊舎工房さんで開催予定のmeishi展に出したい!というのがきっかけなので、名刺サイズで設計します。
meishi展ですが4月はキツかろうという事で、5月の中旬の2週間ぐらい遊舎工房の一部を使って展示する形でどうかと考えています。
— ないん (@pluis9) March 1, 2019
では、
— ないん (@pluis9) February 15, 2019
・楽しい人生部門
・フリー部門
の2構成にしますか。
フリー部門はPCBの外形が名刺サイズの91x55mmであれば何でもありで。
※meishi展について最新の情報ではない可能性があるので、ご自身でご確認お願いします。
トッププレートとボトムプレートで基板を挟む形のケースにします。
ねじ穴は2mm、キーをはめる穴は14×14mm、キー穴の間隔は6mm、キーホルダーにする穴は4mmで設計しました。
キー穴の間隔が6mmだと少し隙間ができます。
キーボードを設計するなら調整が必要だと思います。
ねじ穴、キーをはめる穴は使用するレーザーカッターによって調整が必要かもしれません。FabCafeなどで加工をする方が多いかと思いますが、ねじとキースイッチを持参して、穴のサイズや設計ミスがないか確認しましょう。
今回、金沢市のデジタルものづくりオープンデーというイベントへアクリルとPCを持参して加工してきました。
本日13時より、ITビジネスプラザのデジタルものづくりオープンデーを開催します。
— 五味 (@GomiHgy) 2019年3月3日
レーザー加工機やUVプリンター等のデジタル加工機を使ってみたり、プログラミングの体験等を無料で行えます。もちろん作りたいものを持ってきて作るのも大歓迎です。https://t.co/pU4N8lQ6Sf pic.twitter.com/Hg2eeSynsR
レーザー加工機を使うのは初めてでしたが、お手伝いいただいて、かっこいいケースが作れました。ありがとうございました。
キットのキーボードの着せ替えもしたいので、来年度もあるといいな…。
はんだづけ
早速はんだづけをしていきます。
まず、それぞれの基板にダイオードを向きに気を付けてはんだ付けします。
キースイッチをアクリル板にはめて、基板をのせます。
(今回キーとキーの間隔が広いので切り離しましたが、間隔をもう少し狭めればくっついたまま使えると思います。)
キースイッチの足をはんだ付けします。できるだけ基板が曲がらないほうがかっこいいので、切り離した場合はなんとか頑張りましょう。
次に配線をしていきますが、配線をしながらどこをどうつなげるか考えるとわからなくなると思うので、いったん紙に書くのがおすすめです。LEDは熱に弱いので、最後にはんだ付けするのが良いようです。
今回はこんな感じの配線になります。
一番外側の穴にProMicroを刺すので、内側の穴にはんだづけしていきます。
基本的にProMicroのおうちの+と-から各基板へ電源を供給できるよう配線、Rowは横の基板とColumは縦の基板と配線、ダイオードは光らせる順にDOからDIへ配線します。最初に光らせるダイオードは、おうちのLEDからDOへ配線、最後に光らせるダイオードのDIはどこにも配線しません。
※メモ上ではColumはA2、A1から配線になっていますが、実際はA3、A2に配線しました。変更した意味は特にないです。
表面実装のLEDをはんだづけします。
LEDの大きいパッドが左上と右下に来るようにします。
追記:これだと逆さのと判断つかないじゃん…! 一番大きいパッドが左上です!
熱に弱いのではんだごて温度は220度程度ではんだづけすると良いそうですが、はんだがうまく溶けず私の技量では難しく、270度に設定しました。(購入してからはんだごての温度のキャリブレーションはしてないので正確な温度ではないかもしれないです。)
ProMicroをスプリングピンヘッダ(コンスルー)にはんだづけします。
この時、スプリングピンヘッダの窓部分が同じ側に来るようにしてください。
スプリングピンヘッダの説明書:https://t.co/WVdZzmU32c
ProMicroのおうちのRESETと書いてある部分にリセットボタンをはんだ付けします。
ProMicroをおうちに刺します。おうち側にははんだ付けしません。
ソフトウエア書き込み
次にQMKを使ってソフトウエアを書き込んでいきます。
自分は、びあっこさんのmeishiのプログラムを参考に(というか少し変更して)書き込みました。
ソフトの中身はあんまり把握できていないのと、間違いながらすすめていったので何か抜けがあったり間違っていたらごめんなさい。
適宜QMKのDocumentationなどを参照してください。
良い参考書があったらぜひ教えてください。(Documentationを読みましょうね…)
MSYS2とGitの導入
PCのOSがWindowsですが、LINUXコマンドが扱えないと面倒そうだったので、MSYS2を導入します。
ここが画像付きで分かりやすいかなと思いました。
MSYS2が導入出来たら、プログラム書き込みの準備をしていきます。
びあっこさんのMeishi組み立て方ガイドを参考にしました。
MSYS2で
pacman -S git
でGitを導入します。
git clone https://github.com/qmk/qmk_firmware.git
でQMKをクローンしてきます。
cd qmk_firmware
でQMKファイル内に移動します。
ビルドに必要な依存を解決するため
util/qmk_install.sh
を実行します。
ここまでで、プログラムを書き込む準備ができました。
ソフトウエアの変更
<キーボード名>.hを自分のキー配置と対応するように記述します。
#define LAYOUT( \
k00, k01,\
k10, k11\
) \
{ \
{ k00, k01 },\
{ k10, k11 }\
}
keymap.cを自分のキー配置と希望する動作に対応するように記述します。
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Base */
RGB_TOG, KC_ESC, \
KC_LEFT, KC_RIGHT \
),
};
キーコードはこちらを参照してください。
rules.mkに
RGBLIGHT_ENABLE = yes
と記述します。
config.hにキー数、ProMicroの対応するピン、LEDをつける場合はピン、明るさのレベル、光り方のモードなどを記述します。
#define MATRIX_ROWS 2
#define MATRIX_COLS 2
#define MATRIX_ROW_PINS { C6, D4 }
#define MATRIX_COL_PINS { F5, F4 }
#define RGB_DI_PIN D3
#define RGBLED_NUM 4
#define BACKLIGHT_LEVELS 8
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
VENDOR_IDなどは書いてないとプログラムを書き込めないようでした。ちゃんと調べてないのでどうしておけばいいのかちょっとよくわかりません…。
Pinの指定に関してはこちらの記事の紫色の部分を見てください。
例えばPD3なら、D3と指定します。
LEDに関する部分はこちらを参照してください。
docs.qmk.fm
ソフトウエアの書き込み
いよいよソフトウエアを書き込みます。
make <キーボード名>:<キーマップ>:avrdude
でコンパイルから書き込みまでしてくれます。
途中で
Detecting USB port, reset your controller now.
と言われるので、RESETボタンを押します(もしくはピンセットでショートなどする)。
ショートが1回でいい場合と素早く2回しないといけない場合があるようです。
ソフト書き込みが終わったタイミングで動作確認をしましょう。
ケースを組み立ててしまってからはんだ不良などみつかると面倒です。
組み立て
組み立てます
完成
最後に
無限の可能性の作者のしろとりさん、遊舎工房のひよこさん、ネオウサギさんからアドバイス、情報をいただき、記事内に盛り込みました。
ケース加工ではデジタルものづくりオープンデーの皆さんにお世話になりました。
ソフトウエアの書き込みでは特にびあっこさんのmeishiを参考にしました。
自作キーボードのビルドログを参考にしました。
皆さんにお礼申し上げます。
この記事はMint60で書きました。
と言いたかったのですが、ProMicroのUSBポートがもげてMogeMicroになってしまったので、違うキーボードでかきました…。
皆さんはコネクタの補強、ソケット化など、Moge対策はしっかりしましょうね!