おかゆ++

IT業界の片隅で生き残るブログ

8.QMK Firmwareの設定と書き込み【手配線で自作キーボードを作る講座】

f:id:okayu-moka:20190901155543p:plain

この記事は、【手配線で自作キーボードを作る講座】の第8回目です。 そのほかの記事はこちら

QMK Firmwareの入手

QMK Firmwareの本体はGitHubから取得できます。

github.com

また、ビルド環境の構築方法や書き込み手順などは、公式サイトおよびドキュメントに記載されています。 なにか困ったらここを確認するようにしてください。

qmk.fm

docs.qmk.fm

必要なソフトウェアのインストール

QMK Firmwareのアップデートなどによって色々と変更されることもあるため、ここではあまり詳細な手順は紹介しません。 基本的には公式ドキュメントの Getting Started を見て進めてください。

公式ドキュメントが英語で少々敷居が高いですが、日本語で解説している記事なども多くありますので、 随時調べながら作業していきましょう。

Window、MacLinuxでそれぞれ必要なソフトが異なってきます。 ご使用の環境に合わせてセットアップしてください。

QMK Firmware Getting Started

Windowsの場合の例

以下、2019/08/24 時点でのWindowsの場合の手順を記載します。 前述のとおり手順が変更されている可能性もあるため、基本的に公式ドキュメントを正として、以下は参考程度にしてください。

MSYS2をダウンロードします。環境に合わせて、32bit版か64bit版のどちらかを選んでください。 ダウンロード後、インストーラに従ってインストールします。

www.msys2.org

インストール完了後、MSYS2を起動して、以下のコマンドでGitをインストールします。

$ pacman -S git

Git を使って、QMK Firmware を取得します。

$ git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git

Cloneした中に util/qmk_install.sh というスクリプトがあるので、実行すると必要なソフトがインストールされます。 途中何度かインストール対象を選択する場面がありますが、おおよそ "All" や "Yes" を選択しておけば問題ないです。

$ git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
$ cd qmk_firmware
$ util/qmk_install.sh

インストールできたら、ビルドが正常にできるかテストしてみます。 以下のコマンドで試しにビルドしてみて、エラーが出なければOKです。

$ make ergo42/rev1:default

新しいキーボードの生成

QMK Firmwareは、色々な自作キーボード用の設定ファイルが大量に同梱されています。 しかし、今回作成しようとしている自作キーボードは完全なオリジナルなので、新しく設定ファイルを作成していく必要があります。

参考:QMK Firmware Building Your First Firmware

new_keyboard.shスクリプトで、自分用の新しいキーボードを作成することができます。

今回は、Ergo42 と同じ配列のキーボードなので、Ergo42 のものをベースにして作成します。 そういえば、今回作っているキーボードの名前を決めていませんでしたが、Ergo42 の Clone Keyboard ということで、Ergock としました。

new_keyboard.sh を実行すると、キーボード名などを聞かれるので、入力していきます。 Keyboard Type については、ProMicroを使う場合は avr のままでよいので、何も入力せずに Enter を入力してください。

$ util/new_keyboard.sh
Generating a new QMK keyboard directory

Keyboard Name: ergock
Keyboard Type [avr]:
Your Name [okayu]:

Copying base template files... done
Copying avr template files... done
Renaming keyboard files... done
Replacing %YEAR% with 2019... done
Replacing %KEYBOARD% with Ergock... done
Replacing %YOUR_NAME% with okayu... done

Created a new keyboard called Ergock.

To start working on things, cd into keyboards/Ergock,
or open the directory in your favourite text editor.

成功すると、 keyboards/ergock ディレクトリが作成され、中に設定ファイルのテンプレートがコピーされます。

$ cd keyboards/ergock
$ ls
config.h  ergock.c  ergock.h  info.json  keymaps  readme.md  rules.mk

各ファイルの説明

新しく作成したキーボード用の各ファイルの概要は以下の通りです。 <project_name> の部分は、 new_keyboard.sh で指定したキーボード名になります。

config.h          : ピン割当、USBデバイス設定、マトリックスの行列設定など。
<project_name>.c  : QMK Firmwareの機能の上書きなど。今回は使用しません。
<project_name>.h  : キーレイアウト設定。
info.json         : QMK API用の設定。今回は使用しません。
readme.md         : このキーボードの説明文。今回は使用しません。
rules.mk          : ハードウェアに関する設定、QMK Firmwareの機能のON/OFFなど。
keymaps           : キーマップ設定。
  └─default       : デフォルトキーマップ。
      ├─config.h  : config.hの設定を上書き設定する場合に使用します。今回は使用しません。
      ├─keymap.c  : 実際のキーマップ設定を記載します。
      └─readme.md : キーマップの説明文。今回は使用しません。

これらのファイルをテキストエディタで編集して、今回のキーボード用の設定を記載していきます。

ハードウェアの設定(rules.mk)

ハードウェアや、QMK Firmwareの機能を設定します。

まずブートローダーの設定を変更します。 ハードウェアとしてProMicroを使用しているので、ソースコード上のコメントに従って caterina に変更します。

# Bootloader selection
#   Teensy       halfkay
#   Pro Micro    caterina
#   Atmel DFU    atmel-dfu
#   LUFA DFU     lufa-dfu
#   QMK DFU      qmk-dfu
#   atmega32a    bootloadHID
BOOTLOADER = caterina

今回は左右分割キーボードを作成しているので、最終行に以下の設定を追加します。

SPLIT_KEYBOARD = yes

キーマトリックス、ピン設定(config.h)

キーマトリックス、ピンに関する設定をしていきます。

MATRIX_ROWS, MATRIX_COLS

キーマトリックスの行数、列数を指定します。

今回のキーボードは4x7分割キーボードです。 分割キーボードの場合、MATRIX_ROWS の値を2倍の値にする必要があります。今回は4×2で8を指定します。

#define MATRIX_ROWS 8 // 4*2=8
#define MATRIX_COLS 7

2倍にする理由はこちらを参照:Rows and columns of split using 2 pro micros : olkb

MATRIX_ROW_PINS, MATRIX_COL_PINS

キーマトリックスの行列に、ProMicroのどのピンを使用するかを設定します。

今回は以下のように設定しました。

#define MATRIX_ROW_PINS { D7, E6, B4, B5  }
//  Printed on ProMicro    6,  7,  8,  9
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
//  Printed on ProMicro   A2, A1, A0, 15, 14, 16, 10

この時のピン指定はProMicroに印字されている番号ではなく、データシートに記載されているPort名で指定します。 少しわかりづらいので、ソース上にはコメントでProMicroの印字との対応を記載しておきました。

Port名はsparkfunのProMicroのページで、DOCUMENTS > Graphical Datasheet のPDFを参照してください。

Pro Micro - 5V/16MHz - DEV-12640 - SparkFun Electronics Pro Micro Graphical Datasheet

SOFT_SERIAL_PIN

分割キーボードの左右の通信を行うためのピンを指定します。 今回はデフォルトの D0 (ProMicroの印字では3)のままとします。

#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6

その他

その他にも、USBデバイスに関する設定などは、好みに合わせて変更するとよいでしょう。

#define VENDOR_ID       0xFEED
#define PRODUCT_ID      0x0523
#define DEVICE_VER      0x0001
#define MANUFACTURER    okayu
#define PRODUCT         Ergock
#define DESCRIPTION     A splited keyboard for me

VENDOR_ID は通常は 0xFEED のままにしましょう。 PRODUCT_ID はほかの自作キーボードと被らない値にするべきですが、 このキーボード用ファームウェアをQMK Firmwareの本体に取り込んでもらわない場合(Pull Requestを送らない場合)は自由です。

キーレイアウトの設定(<project_name>.h)

#define LAYOUT の内容を設定します。

この設定は、2つのセクションから成っています。

/* 初期状態 */
#define LAYOUT( \
    k00, k01, k02, \
      k10,  k11   \
) \
{ \
    { k00, k01,   k02 }, \
    { k10, KC_NO, k11 }, \
}

上記は new_keyboard.sh で生成した直後の状態ですが、 ここで k00, k01~ となっている部分が前半のセクション、 { k00, k01, ~ となっている部分が後半のセクションです。

前半のセクションでは、キーボードの物理的なキーと同じ数だけの変数を指定します。ここはあくまで後半セクション用の引数になります。

後半のセクションでは、物理的なキーがキーマトリックスのどの位置に対応するかを設定します。この時に、前半で指定した変数を用います。

「習うより慣れろ」で、とりあえず今回の4x7キーボード用に作成してみます。

#define LAYOUT( \
    L00, L01, L02, L03, L04, L05, L06,    R00, R01, R02, R03, R04, R05, R06, \
    L10, L11, L12, L13, L14, L15, L16,    R10, R11, R12, R13, R14, R15, R16, \
    L20, L21, L22, L23, L24, L25, L26,    R20, R21, R22, R23, R24, R25, R26, \
    L30, L31, L32, L33, L34, L35, L36,    R30, R31, R32, R33, R34, R35, R36  \
) \
{ \
    { L00, L01, L02, L03, L04, L05, L06 }, \
    { L10, L11, L12, L13, L14, L15, L16 }, \
    { L20, L21, L22, L23, L24, L25, L26 }, \
    { L30, L31, L32, L33, L34, L35, L36 }, \
    { R00, R01, R02, R03, R04, R05, R06 }, \
    { R10, R11, R12, R13, R14, R15, R16 }, \
    { R20, R21, R22, R23, R24, R25, R26 }, \
    { R30, R31, R32, R33, R34, R35, R36 }  \
}

左右のキーがわかりやすいように、左手側は L00、右手側は R00 という命名規則で設定しました。

分割キーボードの場合、上の例のように左右のキーボードで行を分ける必要があります。 また、 MATRIX_ROWS の設定で行数を2倍の値で設定したのも、これが理由になります。

補足:キーマトリックスに空白を作りたいとき

今回作成しているキーボードでは、完全に格子状のキーボードのため、キーマトリックスがきれいに埋まります。 しかしレイアウトによっては、キーマトリックス上に「物理的なキーのない部分」が発生する場合があります。

たとえば、Helixキーボードは、 一番内側に1~2個のキーがあり、その上にはキーがありません。 このキーのない部分を表すには、 KC_NO キーコードを指定します。

詳細についてはQMK Firmwareの手配線ガイドに記載がありますので、参考にしてください。

QMK Firmware Quantum Hand-Wiring Guide

また、QMK Firmwareに入っているHelixキーボード用の設定ファイル keyboards/helix/rev2/rev2.h なども参考になります。

/* keyboards/helix/rev2/rev2.h から一部抜粋 */
#define LAYOUT( \
  L00, L01, L02, L03, L04, L05,           R00, R01, R02, R03, R04, R05, \
  L10, L11, L12, L13, L14, L15,           R10, R11, R12, R13, R14, R15, \
  L20, L21, L22, L23, L24, L25,           R20, R21, R22, R23, R24, R25, \
  L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35  \
  ) \
  { \
    { L00, L01, L02, L03, L04, L05, KC_NO }, \
    { L10, L11, L12, L13, L14, L15, KC_NO }, \
    { L20, L21, L22, L23, L24, L25, KC_NO }, \
    { L30, L31, L32, L33, L34, L35, L36 }, \
    { KC_NO, R00, R01, R02, R03, R04, R05 }, \
    { KC_NO, R10, R11, R12, R13, R14, R15 }, \
    { KC_NO, R20, R21, R22, R23, R24, R25 }, \
    { R36, R30, R31, R32, R33, R34, R35 }, \
  }

キーマップの設定(keymaps/default/keymap.c)

LAYOUT で設定した物理キーに対して、キーコード(押したときに入力される文字)を設定していきます。 また、ファンクションキー(レイヤー)の処理や、モードの切り替えなどについても、キーマップで行います。

今回は、一般的なQWERTY配列をベースとします。数字キーの列が存在しないため、Let's Splitなどと同じようにレイヤーの概念を導入します。

Baseレイヤー設定

キーマップの基本となるBaseレイヤーを作成して、キーコードを設定します。

キーマップ設定のメイン部分は、以下の部分です。

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT( /* Base */
    /* ここにキーコードを書いていく */
  ),
};

<project_name>.h でも出てきた LAYOUT マクロで、実際のキーコードを割り当てていきます。

QMK Firmwareに用意されているキーコードは、以下の公式ドキュメントページで確認できます。

QMK Firmware keycodes

今回用にキーコードを設定しました。わかりやすくなるようにコメントも残していきます。

#define BASE  0
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  /* Base
   * ,------------------------------------------------.   ,------------------------------------------------.
   * | Tab  |   Q  |   W  |   E  |   R  |   T  | Reset|   | Reset|  Y   |   U  |   I  |   O  |   P  | Bksp |
   * |------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
   * | LCTL |   A  |   S  |   D  |   F  |   G  |  (   |   |  )   |  H   |   J  |   K  |   L  |   ;  |Enter |
   * |------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
   * |LShift|   Z  |   X  |   C  |   V  |   B  |  [   |   |  ]   |  N   |   M  |   ,  |   .  |   /  |  '   |
   * |------+------+------+------+------+------+------+   |------+------+------+------+------+------+------|
   * | LGUI | Alt  |LCTRL | LGUI | Lower| Space| ESC  |   | C-Spc| Space| Raise| Left | Down |  Up  |Right |
   * `------------------------------------------------'   `------------------------------------------------'
   */
  [BASE] = LAYOUT(
    KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , RESET  ,     RESET  , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_BSPC, \
    KC_LCTL, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_LPRN,     KC_RPRN, KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_ENT , \
    KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_LBRC,     KC_RBRC, KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_QUOT, \
    KC_LGUI, KC_LALT, KC_LCTL, KC_LGUI, XXXXXXX, KC_SPC , KC_ESC ,     LCTL(KC_SPC), KC_SPC , XXXXXXX, KC_LEFT, KC_DOWN, KC_UP  , KC_RGHT  \
  ),
};

まだ Raise/Lowerレイヤーを作っていないので、それぞれのレイヤー用のキーは XXXXXXX にしています。 これは、押しても何も反応しないキーという意味です。

Raise/Lowerレイヤー設定

Let's Split等のように、Lower キーや Raise キーを押しているときのキーマップを設定します。

Baseレイヤーと同じように、キーマップを作製します。

レイヤー適用中もBaseレイヤーと同じキーでよい場合は、 キーコード KC_TRNS または _______ を指定します。

#define BASE  0
#define LOWER 1
#define RAISE 2 
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  ...
  
  /* Lower
   * ,------------------------------------------------.   ,------------------------------------------------.
   * |  ~   |  !   |  @   |  #   |  $   |  %   |      |   |      |  ^   |  &   |  *   |  (   |  )   |      |
   * |------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
   * |      |      |      |      | Del  | End  |PgDown|   |      |  _   |  +   |  {   |  }   |  |   |     |
   * |------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
   * | F1   | F2   | F3   | F4   | F5   | F6   |      |   |      |  F7  | F8   | F9   | F10  | F11  | F12  |
   * |------+------+------+------+------+------+------+   |------+------+------+------+------+------+------|
   * |      |      |      |      |      |      |      |   |      |      |      |      |      |      |      |
   * `------------------------------------------------'   `------------------------------------------------'
   */
  [LOWER] = LAYOUT(
    KC_TILD, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC, _______,     _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \
    _______, _______, _______, KC_DEL , KC_END,  KC_PGDN, _______,     _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, \
    KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  , KC_F6  , _______,     _______, KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 , KC_F12 , \
    _______, _______, _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______, _______, _______  \
  ),
  /* Upper
   * ,------------------------------------------------.   ,------------------------------------------------.
   * |  `   |  1   |  2   |  3   |  4   |  5   |      |   |      |  6   |  7   |  8   |  9   |  0   |      |
   * |------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
   * |      |      |      |Insert| Home | PgUp |      |   |      |  -   |  =   |  [   |  ]   |  \   |      |
   * |------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
   * |      |PtScr |ScLock| Pause|      |      |      |   |      |      |      |      |      |      |      |
   * |------+------+------+------+------+------+------+   |------+------+------+------+------+------+------|
   * |      |      |      |      |      |      |      |   |      |      |      |      |      |      |      |
   * `------------------------------------------------'   `------------------------------------------------'
   */
  [RAISE] = LAYOUT( \
    KC_GRV,  KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , _______,     _______, KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , _______, \
    _______, _______, _______, KC_INS , KC_HOME, KC_PGUP, _______,     _______, KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS, _______, \
    _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______,     _______, _______, _______, _______, _______, _______, _______, \
    _______, _______, _______, _______, _______, _______, _______,     _______, _______, _______, _______, _______, _______, _______  \
  ),

LowerレイヤーとRaiseレイヤーを作りましたが、 BaseレイヤーのLowerキーとRaiseキーに何も割り当てられてないので、動作しません。

MO(layer) を使用して、LowerキーやRaiseキーを押下している間のみ、それぞれのレイヤーが適用されるように修正します。 先ほど仮に XXXXXXX としていたところを MO(LOWER) MO(RAISE) に変更してください。

  [BASE] = LAYOUT(
    KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , RESET  ,     RESET  , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_BSPC, \
    KC_LCTL, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_LPRN,     KC_RPRN, KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_ENT , \
    KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_LBRC,     KC_RBRC, KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_QUOT, \
    KC_LGUI, KC_LALT, KC_LCTL, KC_LGUI, MO(LOWER), KC_SPC , KC_ESC ,     LCTL(KC_SPC), KC_SPC , MO(RAISE), KC_LEFT, KC_DOWN, KC_UP  , KC_RGHT  \
  ),

これでLowerキーとRaiseキーが動作するようになりました。 ひとまずこれでファームウェアの設定は完了です。

ビルドと書き込み

ファームウェアの設定ができたら、まずはビルドします。

$ make ergock:default

エラーが出た場合は、メッセージに従って修正してください。

ビルドに成功したら、書き込み先のProMicroをPCに接続して、 以下のコマンドで書き込みます。

$ make ergock:default:avrdude

コマンドを実行してしばらくすると Detecting USB port, reset your controller now. と表示され、 avrdude が書き込み対象のデバイスを探し始めます。 ここでProMicroをリセットすると、 avrdude がProMicroを認識し、処理が再開されます。

ProMicroの RST ピンと GND ピンを短絡させることでリセットできます。ピンセットなどで一瞬だけ短絡させてください。 (すでにQMK Firmware書き込み済みのProMicroの場合は、 キーコードに RESET を設定したキーを押下したのでもOKです。)

書き込みが正常に終われば、以下のようなメッセージが表示されているはずです。

avrdude.exe: verifying ...
avrdude.exe: 24448 bytes of flash verified

avrdude.exe done.  Thank you.

これでファームウェアの準備が整いました。 次は、キースイッチとProMicroを配線していきます。

次の記事:

okayu-moka.hatenablog.com

7.配線その1(キースイッチ部分)【手配線で自作キーボードを作る講座】

f:id:okayu-moka:20190901155232p:plain

この記事は、【手配線で自作キーボードを作る講座】の第7回目です。 そのほかの記事はこちら↓

okayu-moka.hatenablog.com

キーマトリックスについて

自作キーボードのファームウェアとしてよく採用される QMK Firmware - An open source firmware for AVR and ARM based keyboards は、キーマトリックスをスキャンして入力を検知します。

キーマトリックスは、以下のような回路のことを言います。

f:id:okayu-moka:20190901143050p:plain

このように、格子状にスイッチを配線することで、どのスイッチが押されたかを検出することができます。

また、キーの同時押しに対応させるため、キースイッチと同じ数だけのダイオードが必要になります。

キーマトリックスの仕組みや、なぜダイオードが必要なのかについては、 ゆかりさん(id:eucalyn)の記事が非常に参考になります。 一度は目を通しておくと、理解が深まって良いでしょう。

eucalyn.hatenadiary.jp

ほかには、英語ですがQMK Firmwareの手配線ガイドも参考になります。

docs.qmk.fm

どうやって配線したらいいのかわからない!! という方は、 この記事の最後に配線完了後の写真がありますので、そちらを参考にしてみてください。 回路図で考えるよりも、まだわかりやすいと思います。

配線の例

では、4x7キーボードを実際に配線していきます。

先に回路図を書いておく

回路図は、簡単なものでいいので作成しておくと良いでしょう。 手書きでもなんでもよいので、作業するときに参考にするものがあったほうが良いです。

今回は以下の回路図を BSch3Vで作成しました。これを見ながら配線していきます。

f:id:okayu-moka:20190901143050p:plain

ただ、この回路図をちゃんと書くためには、QMK Firmwareの設定等も考慮する必要があります。 現時点ではまだそこまで考慮できてないので、どのピンに配線するかどうかについては未定のままで大丈夫です。

横方向の配線

まずは、横方向(行方向)の配線をしていきます。

横方向は、ダイオードをつなぐ必要があります。 ダイオードは電流の流れる向きが決まっているため、つける向きが逆だと正常に動かなくなってしまいます。 十分注意してください。

補足:
すべてのダイオードの向きがそろってさえいれば、QMK Firmwareの設定で向きを指定できます。 1つだけ逆を向いていたりなどしないようにだけ注意してください。
また、QMK Firmwareのデフォルトでは "COL2ROW" つまり列方向から行方向へ電流を流す設定になっています。 今回はCOL2ROWで動作するように設計しています。

f:id:okayu-moka:20190901152943j:plain

次の写真のように、ダイオードの足を90度曲げて、 キースイッチのピンとの接触面がなるべく広くなるようにすると、はんだ付けしやすいでしょう。

f:id:okayu-moka:20190825122402j:plain

はんだ付けの際、はんだこてが筐体に接触しないように注意します。PLAは70度程度で溶け始めるので、はんだこてであっさり溶けます。

また、はんだ付けの際は、先にピン側にはんだを多めに盛り、そのはんだで利用してダイオードを付けるのがやり易いと思います。

f:id:okayu-moka:20190825123223j:plain f:id:okayu-moka:20190825123300j:plain

この時、なるべく配線位置が低くなるよう(スイッチに近くなるよう)にしてください。

この後に縦方向の配線をしますが、縦方向の配線に使うスズメッキ線は絶縁被膜などがついていません。 縦横の配線が接触しないように、なるべく低い位置で配線するようにしてください。

f:id:okayu-moka:20190825124650j:plain f:id:okayu-moka:20190825140111j:plain

ダイオード同士のはんだ付けは、線同士なので多少難しいですが、接触面が大きくなるように気を付けながらはんだ付けするとうまくいくでしょう。 やりづらいときは、マスキングテープやカプトンテープなどで補助してやると、作業しやすくなります。

横方向の配線が一通り終わると、こんな感じです。

f:id:okayu-moka:20190825142302j:plain

縦方向の配線

縦方向はダイオードが必要ありませんので、スズメッキ線で配線します。

あらかじめ必要な長さに切って作業しましょう。

f:id:okayu-moka:20190825142904j:plain

すでに述べたように、すでに配線した横方向の配線(ダイオード)と接触しないように注意しながらはんだ付けしていきます。

ピンセットなどを使い、やけどに注意しながら作業してください。

f:id:okayu-moka:20190825143956j:plain

縦方向が終わったら、片手分完了です!

f:id:okayu-moka:20190825145731j:plain

もう片手分、頑張りましょう。

スイッチ部分の配線完了後

両手分のはんだ付けをして、キースイッチ部分の配線が完了した状態となりました。

f:id:okayu-moka:20190825155701j:plain

次回は、ProMicroとつなげていく……前に、ちょっとはんだ付けは小休憩して、 QMK Firmwareの準備をしていきます。

次の記事:

okayu-moka.hatenablog.com

6.キースイッチ取り付け【手配線で自作キーボードを作る講座】

f:id:okayu-moka:20190820192710p:plain

この記事は、【手配線で自作キーボードを作る講座】の第6回目です。

そのほかの記事はこちら↓

okayu-moka.hatenablog.com

キースイッチ取り付け

筐体のプリントアウトが完了したら、キースイッチがきちんとはまるか確認しましょう。

スイッチ用の穴が小さすぎて入らない場合

多くの場合、穴が小さすぎて入らないキーがあると思います。

14mmちょうどで設計した場合、3Dプリンターの特性にもよりますが、素材の収縮などにより14mmよりも小さくなり、キースイッチが入らないことがあります。 この場合、ヤスリやカッターで穴を広げ、スイッチが入るよう調整します。

調整しても入らない場合、モデルを修正することを検討しましょう。 14mmよりも少し大きい穴に修正して、プリントアウトしなおしてください。

スイッチ用の穴が大きすぎる場合

あまりにも穴が大きく、スイッチがぐらついたり、意図した位置に配置できない場合は、モデルを修正しましょう。 スイッチが抜けやすい程度であれば、グルーガンで固定する方法もあります。

※ただし、後述のキー配列の確認を済ませてから固定するようにしましょう。

キー配列の使用感を確認する

キースイッチを取り付けたあと、キーキャップも取り付けて、試し打ちしてみましょう。

狙った通りの使用感になっているかを確認して、問題があればモデルを修正しましょう。

キー配列、キースイッチの打鍵感、キーキャップの形状は、自作キーボードの使い勝手に大きく影響する要素です。 しっかりと確認して、納得のいくものにしていきましょう。

そのほかの確認事項

はんだ付けを始めてからは変更が難しくなるため、今のうちに以下の点を確認しておきましょう。

  • 筐体の反りは許容範囲か?
  • ProMicroをきちんと取り付けられるか?
  • 3.5mm ジャックは取り付けられるか?
  • すべての部品を取り付けた状態で、筐体のフタをすることができるか?
    • 部品が干渉して、フタが閉まらない場合があります。
  • フタをネジ止めすることはできるか?
    • ネジ穴が小さい場合は、ドリルなどで少し穴を広げてやりましょう。無理にネジ止めしようとすると、筐体が割れる可能性があります。
  • 配線するスペースは十分にあるか?

今回は3Dプリントの影響で、3.5mm ジャックを取り付ける穴が小さかったため、やすりで穴を拡張しました。

f:id:okayu-moka:20190820143010j:plain

実際に取り付けたところ

取付中。今回もやはり穴が小さく、やすりとカッターで削りながらの作業でした。

f:id:okayu-moka:20190820185127j:plain

全部とりつけました。次はいよいよ配線です!

f:id:okayu-moka:20190820190020j:plain f:id:okayu-moka:20190820190042j:plain f:id:okayu-moka:20190820190759j:plain

次の記事:

okayu-moka.hatenablog.com

5.筐体のプリント【手配線で自作キーボードを作る講座】

f:id:okayu-moka:20190819214448p:plain

この記事は、【手配線で自作キーボードを作る講座】の第5回目です。 そのほかの記事はこちら↓

okayu-moka.hatenablog.com

3Dプリンターでプリントする

個人で所有できるような小型の3Dプリンターでも、自作キーボードの筐体程度であれば十分プリント可能です。

左右分割型の場合は片手分ずつプリントすれば良いでしょう。 一体型で3Dモデルが大きい場合、まずはモデルをある程度分割してプリントし、後から接着剤などで接着することになるでしょう。

3Dプリンターには FDM(熱溶解積層方式)や SLA(光造形方式)などの種類がありますが、一般的に安く手に入るのは FDM のプリンターでしょう。 FDMの3Dプリンターはコストパフォーマンスに優れ、造形物の強度も十分なので、自作キーボードの筐体にはもってこいです。

ただ、 FDM でプリントアウトした造形物には積層痕が残り、あまり滑らかな出力結果になりません。 筐体のような大きな造形物では問題になりませんが、キーキャップなど、細かさや滑らかさが重要な部品には、SLA のプリンターのほうが適しています。

プリントのコツ

フィラメントは、PLAフィラメントを選択するのが無難です。 キーボードのように平たい造形物の場合、ABSでは"反り"が大きすぎてきれいにプリントできません。 PLAの造形物は加工が大変ですが、ヤスリで削る程度であれば何とかなります。

Infill(内部埋め)は30%~50%くらいがおすすめです。 あまり内部を埋めすぎると、反りがひどくなったりするので注意が必要です。

プリント時の設定は、3Dプリンターの機種やスライサーソフトによっても大きく変わってきます。 あくまでも参考程度にしてください。

プラットフォーム(ベッド、ステージ)への接着が弱い場合は、個人的にはマスキングテープを張るのがおすすめです。 もちろん専用のプラットフォームシートや、定番の強化ガラス+ケープなどでもOKです。 マスキングテープは3Mの幅広のものを購入するとよいでしょう。

プラットフォームから造形物が剥がしづらいときは、ニトムズのテープはがしカッターがおすすめです。 スクレーパーなどよりも断然剥がしやすいです。

ニトムズ テープはがしカッター T087

ニトムズ テープはがしカッター T087

3Dプリンターでのプリントは結構慣れと経験が必要なので、試行錯誤を繰り返して頑張ってください。

3Dプリントサービスで発注する場合

価格の安さを求めるならナイロン素材、強度や実用性を高めるならMJF素材での出力になると思います。

3Dプリントサービスで発注する場合、避けたいのは 「発注後に設計ミスが見つかる」 パターンです。 これを避けるためには、3DCAD上で十分チェックするという手もありますが、 おすすめしたいのは個人所有の3Dプリンターでプロトタイプをプリントして確認するという手段です。 きちんとキースイッチがはまるか? 思った通りの形状か? など、実際にプリントしてみないと確認できないことは多々あります。 最終的に3Dプリントサービスに発注する場合でも、安い素材や個人の3Dプリンターでプロトタイピングすることをおすすめします。

実際のプリント結果

今回は緑色のPLAフィラメントでプリントしました。

f:id:okayu-moka:20190818211400j:plain

フィラメントはこれ↓です。

前述のとおり、3Dプリンターでのプリントは結構慣れと経験が必要です。 自分の3Dプリンターにあった設定を探して試行錯誤してみてください。

次の記事:

https://okayu-moka.hatenablog.com/entry/2019/09/08/160000okayu-moka.hatenablog.com

4.筐体の3Dモデル作成【手配線で自作キーボードを作る講座】

f:id:okayu-moka:20190818171153p:plain

この記事は、【手配線で自作キーボードを作る講座】の第4回目です。 そのほかの記事はこちら↓

okayu-moka.hatenablog.com

Fusion360のインストール

本講座では Autodesk 社の Fusion360 を使用します。 こちらは ¥60,480/年 の有料アプリケーションですが、趣味での工作(非商用利用)やスタートアップ企業であれば無償で利用できます。

詳しくは Autodesk 社の Web サイトを参照してください。 オンライン CAD/CAM 設計ソフト | 無償体験版とダウンロード | Fusion 360

上記のURLからインストーラをダウンロードし、インストールしてください。

Fusion360の入門について

自作キーボードのモデリング程度であれば、難しい機能は使わなくても、Fusion360の基本的な操作ができれば大丈夫です。

この講座では、Fusion360の使い方などについては特に触れません。別途、入門記事などで学習しておいてください。

入門には、以下のチュートリアルPDFがおすすめです。 このPDFを一通り体験すれば、ある程度操作できるようになります。

Fusion 360 チュートリアル

Fusion360の最初の設定

基本的にそのままで良いのですが、1点だけ変更しておいたほうがよい設定があります。

Fusion360の初期設定では平面部分がxz軸、高さ方向がy軸となっていますが、 3Dプリンターでは平面部分がxy軸、高さ方向がz軸であることが多いです。 そのままモデリングしていくと、3Dプリント前にモデルを回転させる必要が出てくるので、最初に変更しておいたほうが無難です。

画面右上のユーザー名をクリック>基本設定を選択して、設定画面を開きます。 「一般」の「既定のモデリング方向」をZ(上方向)に変更します。

f:id:okayu-moka:20190818171207p:plain

この状態でモデリングすれば、違和感なく3Dプリンターで使用できます。

3Dモデルを作るにあたって

最終的には自分の好きなようにモデリングすればOKですが、前提知識として以下のことは知っておきましょう。

  • キースイッチ取り付け用の穴は、一般的には14.0mmの正方形
  • キーピッチ(キーとキーの間隔)は一般的に19.0mmか19.5mm
    • したがって穴と穴の距離は5.0mmか5.5mm
  • ProMicroのサイズは個体差があるが、以下の通り
    • 幅18.5mm, 高さ34mm、厚み2mm
    • これは基盤部分の大きさ。実際にはmicroUSBの差込口などがあるため、もう少し大きい。
    • 定規やノギスで実寸を測ったほうが確実です。
  • PLA素材で3Dプリントする場合、筐体の厚みは2mm程度で大丈夫
    • ぶ厚いほうが重くなるので使用時に安定しますが、プリントアウト後に微調整するのが大変になるので注意。

モデリング

今回作成する、4x7左右分割キーボードの筐体をモデリングしていきます。 まずは右手用の筐体を作成して、左手用は右手用をコピーして作成します。

メイン部分の箱を作成

箱型を基本として、筐体のメインとなる部分を作っていきます。

今回は4x7の格子配列なので、サイズが簡単に割り出せます。 前述のとおり、キースイッチ取付穴は14mm、穴と穴の距離は5mmとします。 両端も同じく5mmの余裕を持たせるとすると、

  • 縦:(14*4) + (5*3) + 10 = 81mm
  • 横:(14*7) + (5*6) + 10 = 138mm

となります。

スケッチでこのサイズの長方形を作成します。 また、ProMicroを設置するための場所も必要なので、別途スケッチしてスペースを作ります。 スケッチできたら、「押し出し」ツールで押し出してベース部分を作ります。

f:id:okayu-moka:20190818205730p:plain

この状態で「シェル」機能を利用して、厚さ2mmになるようにくり抜きます。

f:id:okayu-moka:20190818205735p:plain

くり抜いて箱状になりました。

キースイッチ取付の穴をあける

次に、キースイッチ用の穴をあけていきます。箱の端から5mmの位置から、14mm × 14mmの正方形をスケッチします。 その後、矩形状パターンを利用して、ピッチが5mmになるように等間隔で配置します。

f:id:okayu-moka:20190818205746p:plain f:id:okayu-moka:20190818205743p:plain

押し出しツールで穴をあけます。

f:id:okayu-moka:20190818205754p:plain

キーボードっぽくなってきました。

少し穴を調整します。 多くのキースイッチには、穴から抜けにくくなるようにツメがついています。このツメは厚み1.4mmの板に嵌めることを想定しています。 今回の筐体は厚みが2mmなので、このツメが引っかかりません。ツメが引っかかるように、ツメの部分だけ1.4mm未満になるように削ります。

f:id:okayu-moka:20190818205800p:plain

以降もスケッチと押し出しツールを使って筐体を作っていきます。

ProMicro取付場所を作る

ProMicroの取付場所と、MicroUSB端子用の穴を作ります。

ProMicroの取付方法はいろいろ考えられますが、私は下のような形状にしています。

f:id:okayu-moka:20190818205807p:plain f:id:okayu-moka:20190818205814p:plain

穴の左右に固定用の出っ張りを作り、反対側の端も同じ高さになるように出っ張りを作っておきます。 穴側の出っ張りに差し込んだ後、グルーガンで固定します。

3.5mmジャック用の穴をあける

3.5mmジャックの部品に合わせて穴をあけます。

今回は5mmの穴をあけ、高さ調整用に少し出っ張りも作りました。

f:id:okayu-moka:20190818205822p:plain

フタ固定用のねじ穴作成

フタを固定するためのねじ穴を作成します。

スケッチと押し出しツールで、円柱とねじ穴を作成します。また、補強のために円柱には支えを追加します。

f:id:okayu-moka:20190818205828p:plain

ねじ穴の位置は筐体の位置に左右されますが、なるべく外側が良いでしょう。 場合によっては4隅+中央など、強度を考慮した位置にねじ穴を作ると良いでしょう。

フィレットツールで角を丸める

ある程度形になったら、フィレットツールで角を丸めておくと、見た目が整って良いでしょう。

f:id:okayu-moka:20190818205838p:plain

フタの作成

メイン側が完成したら、フタを作っていきます。

メイン筐体の穴をふさぐように、フタのスケッチをしていきます。

f:id:okayu-moka:20190818205847p:plain

フタがずれないように、高さ1mm程度のフチを作っておきます。

f:id:okayu-moka:20190818205855p:plain

ねじ穴を作成していきます。 メイン筐体のねじ穴との距離が0mmになるように、高さを計算して円柱を作成します。少し大きき目に作成したほうが良いでしょう。 今回はかなり大きめに作り、面取りツールを使って丸めました。

f:id:okayu-moka:20190818205903p:plain

底面側から、ねじを通すための穴を円柱を貫通するようにしてあけます。 また、ねじの頭が隠れるように、深さ2mm程度の穴をあけます。この穴は円柱を貫通しないようにします。

f:id:okayu-moka:20190818205912p:plain

これでフタは完成です。

f:id:okayu-moka:20190818205923p:plain

左手用筐体をミラーで作成する

基本フィーチャの「ミラー」ツールを使って、左手用の筐体を作成します。

下の画像のように、右手側のボディをすべて選択し、ミラーツールで左右反転したものを作成します。

f:id:okayu-moka:20190818205942p:plain

フタもおなじようにミラーを作成すれば、左手用の筐体も完成です。

完成後の筐体

完成した筐体の全体像です。

f:id:okayu-moka:20190818205929p:plain

今回はこれで完成ですが、実際には何度も微調整を繰り返しながら作成することになるでしょう。 3DCAD上ではうまく作れていても、実際に3Dプリンターで印刷するとうまく印刷できないこともあります。 試行錯誤しながら、オリジナルの筐体を作り上げてください。

次の記事:

okayu-moka.hatenablog.com

3.部品集め【手配線で自作キーボードを作る講座】

f:id:okayu-moka:20190818163651p:plain

この記事は、【手配線で自作キーボードを作る講座】の第3回目です。 そのほかの記事はこちら↓

okayu-moka.hatenablog.com

部品をどこで買うか?

基本的にはすべてネットショップで購入するのがそろえやすいと思います。 東京近郊にお住いの方は秋葉原遊舎工房さんの実店舗がありますので、そちらに足を運んでみるのもよいかと思います。

おすすめの購入元

  • TALP KEYBOARD
    • ProMicro互換機、ダイオード、キースイッチ、キーキャップがそろいます。
    • AliExpressと比べるとさすがに高いですが、発送が早く、国内配送なので安心感があります。
  • 遊舎工房
    • ProMicro互換機、キースイッチ、キーキャップなどがそろいます。
    • 珍しいキースイッチや、アクセサリー類なども充実しています。
  • AliExpress
    • 中国版の楽天みたいな感じです。
    • ダイオード以外をAliExpressで買うと一番安く収まると思います。
    • いろいろなショップ(出品元)があります。ショップによっては発送されない・不良品が届くなどのトラブルが発生する可能性があります。リスクを理解した上で利用してください。
    • KBDfansという出品元はキーボード関連の商品を多く取り扱っているようです。
  • ebay.com
    • アメリカ版の楽天みたいな感じです。
    • こちらにもKBDfansが出品しています。トラブルの時、AliExpressよりはebayのほうが対応しやすいように思うので、こちらで買うのもありだと思います。
  • 秋月電子
    • ダイオード、はんだ付け道具、配線用ケーブルなどが購入できます。
    • 3.5mm 4極ミニジャック 基板取付用 MJ-4PP-9 はここで購入できます。
    • 安く揃えるなら以下がおすすめです。
      • 高速スイッチング・ダイオード 1SS178(100本入)
      • 半田ごて:ニクロムはんだこて KS-30R(30W)
      • 半田:はんだ 0.8mm SD-62
      • こて台:はんだこて台 ST-11
      • ケーブル:スズメッキ線0.6mm、耐熱電子ワイヤー2m×7色
  • Amazon
    • キーキャップ、半田付けの道具などが購入できます。
    • RepRap Prusa i3など、自分で組み立てるタイプの3Dプリンターも比較的安く手に入ります。だいたい20000~30000円くらいです。
  • ホームセンター
    • 銅線、ネジなどが購入できます。
    • ネジなどは10本100円程度で小売りされているので便利です。ネットで買うとどうしても100本単位とかになってしまうので、必要な分だけホームセンターで購入するのが良いでしょう。

必要な部品

ここで紹介するのは3Dプリンターで筐体を作るときに必要な部品です。

ProMicroまたはその互換品×2

  • おすすめのショップ:TALP KEYBOARD、遊舎工房、AliExpress
  • 予算:約1200円(約600円×2)

自作キーボードの多くは、ProMicroの互換品を使用しています。 キーボードとして動かすための定番ファームウェアとして QMK Firmware があり、広く利用されています。 事実上の標準となっているので、特に理由がなければ ProMicro + QMK Firmware を利用するのがよいでしょう。

本講座の作成でも、ProMicro 互換品を用います。左右分離型のため、2つ購入します。 今回はTALP KEYBOARDさんで購入しました。

talpkeyboard.stores.jp

ダイオード(1N4148または1SS178)

  • おすすめのショップ:秋月電子、TALP KEYBOARD
  • 予算:約100円

複数キーの同時押しを可能にするために、ダイオードが必要になります。

入手のしやすさから、1N4148か、1SS178がよく使用されます。

個人的には 1SS178 が安くておすすめです。1N4148の半額で購入できます。 今回は秋月電子さんで 1SS178 の100本入りを購入しました。

akizukidenshi.com

Cherry MXキースイッチ、またはその互換スイッチ

  • おすすめのショップ:TALP KEYBOARD、遊舎工房、AliExpress
  • 予算:約2700円(約45円×60キーの場合)

自作キーボードでは一般的にメカニカルキーボード用のキースイッチが使用されます。

FILCOなどの高級メカニカルキーボードで使用されるCherry社のキースイッチか、その互換スイッチを使用することになります。価格の点から、互換スイッチが採用されることが多いです。

互換スイッチとして有名なのは Gateron と Kailh の2社です。 この2社のスイッチは品質もよく、使用感もCherry社のキースイッチと似ています。 ぜひいろいろなキースイッチを試して、お気に入りのキースイッチを探してみてください。

今回作成するキーボードでは、遊舎工房さんで Kailh BOX スイッチ(赤軸) を購入しました。

yushakobo.jp

軸の色について

Cherry社および互換スイッチにはいくつか種類があり、それぞれキースイッチの軸部分の色が異なっています。 それぞれスイッチを押したときの重さ、クリック感の有無などが異なり、キーボードの使用感に大きく影響します。

たとえばCherry社のキースイッチで有名なのは以下の4種類です。

  • 青軸
    • クリック感が強く、カチカチと大きな音がする。(タクタイルスイッチ)
    • ゲーミングキーボードなどによく採用される。
    • 音がかなり大きいため、使っていて楽しい軸。反面、オフィスなどで使用するのはあまりお勧めできない。
  • 茶軸
    • 軽いクリック感があり、カチっと小さな音がする。(タクタイルスイッチ)
    • 標準的な軸とされており、利用者が多い印象。
  • 赤軸
    • クリック感がなく、一定の重さでキーが沈む。(リニアスイッチ)
    • 青・茶よりも静穏性に優れる。クリック感がない分、茶軸と比べると軽く感じる。
  • 黒軸
    • クリック感がなく、一定の重さでキーが沈む。(リニアスイッチ)
    • 赤軸よりも重い押し心地で、重厚な使用感。底までキーを押し込むには結構力がいる。
    • その重さから最後までキーを押し切らずに使用する、いわゆる「なで打ち」で使用する人が多い印象。

Gateron や Kailh でも、これに準じた互換スイッチが販売されています。 大型のパソコンショップではFILCOのキーボードなどが展示されていることがあり、実際に使用感を確かめることができますので、心当たりがある方は一度試してみることをお勧めします。 そのようなショップが近くにない方は、どのメーカーでもいいので、最初は茶軸か赤軸を選択するのが無難でしょう。 またネットで調べると、クリック時の軸の重さも具体的な数値(45g、50gなど)のデータがありますので、参考にするとよいでしょう。

キーキャップ

  • おすすめのショップ:TALP KEYBOARD、遊舎工房、AliExpress
  • 予算:約3300円(DSA単品売りで、約55円×60キー)

キーキャップにも様々な形、色、素材があり、自作キーボード向けのセットなども多数販売されています。 よく使用されるのは DSA と呼ばれる形状のキーキャップですが、通常のキーボード向けのキーキャップでも大きな問題にはなりません。 ただ、自作キーボードは配列を通常の配列から変更することが多いため、キーキャップの印字と実際のキーが異なる、という状態になりがちです。 そのような状態が気になる場合は、無刻印のキーキャップを選ぶようにしましょう。

今回は TALP KEYBOARD さんでDSAプロファイルのセットを購入しました。 ※もう販売されていないようですが、同じようなセットが売られています。

配線用の銅線

手配線するための銅線が必要です。

おすすめはスズメッキ線と、協和ハーモネット株式会社の耐熱電子ワイヤーです。

スズメッキ線ははんだ付けがしやすく、初心者にもおすすめです。価格が安いのもメリットです。 ただ絶縁の被膜がついてないので、取り回しが少し面倒です。 銅線同士が接触してしまうような箇所には、被膜がついた線を使いましょう。

今回は秋月電子で以下の2つを購入しました。同じような商品がAmazonでも購入できます。

3.5mm ステレオオーディオケーブル

  • おすすめのショップ:Amazon、100円ショップ
  • 予算:約100円(100円ショップ)

分割キーボードの場合は、左右のキーボードを接続するためのケーブルが必要です。 自作キーボードでは、オーディオ用の3.5mmステレオミニケーブルがよく使用されます。

安く済ませたい場合は100円ショップで購入するのがおすすめです。 Amazonなどのネットショップでは、いろいろな見た面のケーブルが売っていますので、それらを購入するのも良いでしょう。

あまり長すぎると逆に使いにくいので、30cm~100cmくらいのものを選びましょう。例えばこのケーブルは60cmなので、ちょうどよさそうです。

Amazonベーシック ステレオミニプラグ オーディオケーブル 0.6m

Amazonベーシック ステレオミニプラグ オーディオケーブル 0.6m

今回の講座では、ほかのキーボードで使っているものを使いまわすので、新しく購入はしませんでした。

3.5mm ミニジャック

オーディオケーブルを接続するためのジャックが必要です。 こちらは秋月電子などの電子部品専門店などで入手できます。

ジャックには、基盤取付タイプのものと、パネル取付タイプのものがあります。 手配線(空中配線)の場合、どちらの種類でも使用できますので、安いほうを選んだのでよいでしょう。

おすすめは以下の商品です。

今回は、以前に秋月電子で購入した以下の部品を使用することにしました。 ※ほかの自作キーボード用に買ったので4極ですが、実際には3極(ステレオ用)のもので大丈夫です。

ネジ(筐体のフタ固定用、ProMicro固定用)

  • おすすめショップ:ホームセンター、Amazon
  • 予算:約200円(ホームセンター)

キーボードの筐体(ケース)の本体とフタを固定するためのネジが必要です。 M4くらいになると太すぎるため、M2かM3あたりを購入しましょう。

この段階ではまだ筐体の3Dモデルがなく、ネジ穴のサイズや長さも決まっていないため、モデリングが完了したタイミングで購入するのがおすすめです。

今回はM3x8のネジを使用することにします。

次の記事:

okayu-moka.hatenablog.com

2.道具の準備【手配線で自作キーボードを作る講座】

f:id:okayu-moka:20190818161802p:plain

この記事は、【手配線で自作キーボードを作る講座】の第2回目です。 そのほかの記事はこちら↓

okayu-moka.hatenablog.com

自作キーボードに必要な道具

ここで紹介するのは3Dプリンターで筐体を作るときに必要な道具です。 アクリル板などを用いる場合には不要なものがあったり、逆に足りない道具などもあるので注意してください。

普段あまり工作をしない方は、新しくそろえる道具が多いかと思います。 ほぼ100円ショップで買えるものばかりですが、 はんだこてだけはちゃんとしたメーカーのものを買いましょう。 よくわからないメーカーのものは使いにくいですし、なんなら燃えたりしそうでちょっと怖いです。

絶対に必要な道具

はんだ付け道具一式

「はんだこて」「こて台」「はんだ」は、できれば電子工作用、または精密基板用のものがよいかと思います。

電子工作初心者で、これからはんだ付け道具を購入する方は、あまりにも安い商品は選ばないほうが無難です。 と言いつつ、私が使っているのは温度調整機能も付いていない安いはんだこて「KS-30R」です。

goot 一般電気用はんだこて KS-30R

goot 一般電気用はんだこて KS-30R

goot はんだこて台 ST-11

goot はんだこて台 ST-11

温度調整機能がついたものでは、こちらの商品などが定番のようです。

白光 ダイヤル式温度制御はんだこて FX600

白光 ダイヤル式温度制御はんだこて FX600

白光(HAKKO) こて台 633-01

白光(HAKKO) こて台 633-01

はんだは前述のとおり「電子工作用」や「精密基板用」などの、細くて融点の低いものがいいと思います。あまり熱しすぎるとProMicroが壊れる場合があります。

goot 精密プリント基板用はんだ SD-62

goot 精密プリント基板用はんだ SD-62

はんだ付けスタンド(はんだツール、サードアーム)

はんだ付けをするときは、利き手にはんだこて、もう一方の手にはんだを持っているので、両手がふさがります。 不安定なものをはんだ付けするためには固定するための道具が必要です。(なくてもなんとかなりますが、無いと結構難しい。)

自作キーボードの場合、銅線同士のはんだ付けや、ProMicroと銅線のはんだ付けなどの際にはあると便利でしょう。 工夫次第では不要です。実際私は持っていないので、木片にマスキングテープで銅線を固定してはんだ付けしてます。ただあったほうが楽なのは間違いないです。

ヤスリ、カッター(筐体の微調整用)

3Dプリンターで作った筐体は、どうしても精度が甘かったり、熱収縮で縮んだりしがちです。 最終的にはヤスリやカッターで微調整が必要になります。

ヤスリは100円ショップのダイヤモンドヤスリがおすすめです。

グルーガン(ホットメルト、ホットボンド

キーと筐体を固定したり、ProMicroのモゲ対策として使用します。 グルーガンは簡易な絶縁にも使えたりと便利です。

こちらも100円ショップのもので十分です。

ニッパー or ワイヤーストリッパー

銅線を切ったり被膜を剥いたりするのに必要です。 専用工具のワイヤーストリッパーがやはり便利ですが、100円ショップのニッパーでも十分です。

ピンセット

銅線やダイオードをはんだ付けするとき、手で持っていると火傷する可能性があるので、ピンセットはあったほうがいいです。 100円ショップのもので十分です。

プラスドライバー

筐体をネジ止めするために必要です。家庭用のドライバーで十分です。

作業用マット(カッターマットなど)

はんだこてで机を焦がしたり、部品をなくしたりしないように、作業用のマットを用意しましょう。 A4サイズのカッターマットで十分です。 ただカッターマットははんだこての熱で溶けますのでそこは注意です。

あったほうがいい道具

ラジオペンチ

あったほうが何かと便利な工具です。 3Dプリントした後のサポート材を剥がしたり、はんだ付けの際にアーム替わりにしたりできます。

ノギス

筐体の実寸を測ったり、キースイッチのサイズを測ったり。さしがねで測るよりも便利です。

次の記事:

okayu-moka.hatenablog.com