Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

キーボード自作のススメ

8,015 views

Published on

最近流行りの自作キーボードの解説をします

Published in: Technology
  • Be the first to comment

キーボード自作のススメ

  1. 1. キーボード自作のスヽメ 株式会社レトリバ © 2017 Retrieva, Inc.
  2. 2. 自己紹介 • 名前:河原 一哉(かわはら かずや) • 年齢:39歳 • 所属:株式会社レトリバ • 好きなOS:Solaris, MacOS • 好きなマイコン:ATMEGA328P-AU → ATMEGA32U4 • 好きな護衛艦: いずも、かが、じんりゅう、せきりゅう © 2017 Retrieva, Inc. 2
  3. 3. 今日のお題 © 2017 Retrieva, Inc. 3
  4. 4. 自作キーボードがアツい! • アツい理由1 • こだわりのメカニカルスイッチが使える! • アツい理由2 • キートップをデコれる! • アツい理由3 • マイコン使って作れる! © 2017 Retrieva, Inc. 4
  5. 5. 自作キーボードレベル • 入門:自作キット買って作る • 初級:基盤や部品を買い揃えて作る • 中級:設計済みPCBを発注して作る(難易度低版) • 上級:設計済みPCBを発注して作る(難易度高版) • プロ級:回路から設計して作る © 2017 Retrieva, Inc. 5
  6. 6. 自作キーボードレベル:入門 • Massdrop(https://www.massdrop.com)などで買えます • Mechanical Keyboardsコミュニティで時々販売 • ErgoDox, Minivan, Planckなど • 必要な部品が揃ってる • ハンダ付けするだけ • FWなども設定済み • カスタマイズ可能 • キーキャップやスイッチ選べる • ケースの色も選択可 © 2017 Retrieva, Inc. 6
  7. 7. 自作キーボードレベル:初級 • Mehkeeなどで基盤が買える • 必要な部品を別途買い揃える • マイコン(Pro Microとか) • ダイオード • キースイッチなど • はんだ付けが必要 • マイコンなどがあり、ちょっと難易度up • ファームウェアの書き込みが必要 • ちょっと知識が必要 © 2017 Retrieva, Inc. 7
  8. 8. 自作キーボードレベル:中級 • PCB(基盤)の作成 • 基盤の設計ファイルが共有されている • 設計ファイルを基に基盤作成サービスに発注 • 1週間ぐらいでできる(けどちょっと高い) • 必要な部品を別途買い揃える • マイコン、キースイッチ、ダイオードなど • はんだ付けが必要 • ファームウェア書き込みが必要 © 2017 Retrieva, Inc. 8
  9. 9. 自作キーボードレベル:上級 • PCB(基盤)の作成 • 基盤の設計ファイルが共有されている • 設計ファイルを基に基盤作成サービスに発注 • 1週間ぐらいでできる(けどちょっと高い) • 必要な部品を別途買い揃える • マイコン、キースイッチ、ダイオードなど • 表面実装系の難易度の高いはんだ付けが必要 • ファームウェア書き込みが必要 © 2017 Retrieva, Inc. 9
  10. 10. 自作キーボードレベル:プロ級 • 勝手にやってください © 2017 Retrieva, Inc. 10
  11. 11. 有名な自作キーボード:ErgoDox • Dox氏(Dominic Beauchamp氏)らによって作られた • DIYキーボードのための設計図・ファームウェアなどを公開 • 人間工学に基づいたキー配置、左右セパレート型 • キー配置のカスタマイズ可能 • 完成品やキットも売ってる • 超有名 © 2017 Retrieva, Inc. 11
  12. 12. 有名な自作キーボード:MiniVan • 40% keyboardプロジェクトの代表格 • 日本じゃあまり有名ではない? • Vortex COREみたいなキー配置 • いろんなキー配置ができるのもある • キー配置のカスタマイズ可能 © 2017 Retrieva, Inc. 12
  13. 13. 有名な自作キーボード:Planck • 40% keyboardプロジェクトの代表格 • ortholinear(直行配列) • “一般的なキーボードのキーが互い違い (staggered) に配置されてるの は、かつてのタイプライターの機構上の都合 でしかない” • ミニマルデザイン • ホームポジションの隣のキーのみ • 47〜48キーしかない • キー配置のカスタマイズ可能 © 2017 Retrieva, Inc. 13
  14. 14. 有名なキーボード:Let’s Split • Planck割っちゃいました(通称レツプリ) • 日本の自作キーボードの火付け役? • 簡単な自作キットがなく、難易度初級以上 • PCBのセット販売あり (片方は引っくり返して使う) • ケースは自作する必要あり (売ってるのもあるが。。。) • ファームウェアの焼き込みが必要 © 2017 Retrieva, Inc. 14
  15. 15. 個人的な押しキーボード:Gherkin • 30% keyboard!(ガーキン:ピクルスに使うキュウリ) • 正直キーが少なすぎて使えるのかわからん • キットとかないのでPCBの発注が必要 • PCB最小発注単位は5からが多い • メインのPCBだけで20$以上 • グループバイを狙うのも手 • ファームウェアの焼き込みが必要 © 2017 Retrieva, Inc. 15
  16. 16. 個人的な押しキーボード:foobar • Gherkin割っちゃいました(名前テキトーすぎ。。。) • Let’s Splitの30% keyboard版(てかパクリ?) • キットとかないのでPCBの発注が必要 • PCB最小発注単位は5からが多い • メインのPCBだけで20$以上 • グループバイを狙うのも手 • ファームウェアの焼き込みが必要 © 2017 Retrieva, Inc. 16
  17. 17. 自作キーボード基礎知識:メカニカルキー • 機械式のキースイッチ • キーボードのスイッチとしていっぱい並べる • 軸の色で押し心地が違う • 好みのスイッチで自作するのが醍醐味 • Cherry MXが有名 © 2017 Retrieva, Inc. 17
  18. 18. 自作キーボード基礎知識:抵抗 • 電流を制限する電子素子 • オームの法則を思い出せ! E(V) = I(A) x R(Ω) • 5Vマイコンだと使うのだいたい2種類 • 1K, 4.7K, 10KΩ:プルアップ抵抗に使う • 470Ω:LEDに使う(10mAぐらいに制限) © 2017 Retrieva, Inc. 18
  19. 19. 自作キーボード基礎知識:ダイオード • 電流を一定方向にしか流さない電子素子 • 電流が逆流するのを防ぐ • 逆につけちゃうと回路が動かなくなるので注意 • 自作キーボードだといっぱい使う © 2017 Retrieva, Inc. 19
  20. 20. 自作キーボード基礎知識:マイコン © 2017 Retrieva, Inc. 20 • Arduino互換ボードを使うことが多い • SparkFun社のAtmega32U4搭載ボード(通称:Pro Micro) • USBシリアル機能が内蔵 • ワンチップでキーボードができちゃう! • マイコン直接使う場合 • 動作電圧 :5V • 動作クロック :16MHz • ピンアサイン :デジタル入出力ができるピンを使用 • ポート名、物理ピン番号、Arduinoピン番号の対応に注意
  21. 21. 参考情報:ATmega32U4ピンアサイン © 2017 Retrieva, Inc. 21 • 物理ピン数:44ピン • ポート • PA,PB,PC,PD,PE,PFの6ポート • ポートごとに機能が違う • 各ポートに入出力が数個 例)PA1:ポートAの入出力1 • 欠番あり • Arduinoピン番号も参考に
  22. 22. 自作キーボード基礎知識:出力回路 © 2017 Retrieva, Inc. 22 マイコン GND VCC 出力:HIGH 端子 マイコン GND VCC 出力:LOW 端子 VCC(HIGH)が 出力される GND(LOW)が 出力される
  23. 23. 自作キーボード基礎知識:入力回路 © 2017 Retrieva, Inc. 23 マイコン 端子 GND VCC スイッチ回路 オープン時の 電圧が不安定 マイコン 端子 GND VCC プルアップ回路 オープン時:HIGH クローズ時:LOW マイコン 端子 GND VCC プルダウン回路 オープン時:LOW クローズ時:HIGH 安定
  24. 24. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 24 マイコン 端子 GND VCC プルアップ回路 オープン時:HIGH クローズ時:LOW GND VCC ピ ン 1 ピ ン 2 ピ ン 3 ピ ン 4 ピ ン 5 ピ ン 6 マイコン キーの数だけ マイコンの入力が必要
  25. 25. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 25 マイコン GND VCC 内部プルアップ 外部抵抗が不要! マイコン VCC 入力 出力 GND 出力:LOW スイッチ押すと 電流が流れる マイコン VCC 入力 出力 GND 出力:HIGH スイッチ押しても 電流が流れない スイッチの有効化・無効化
  26. 26. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 26 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 入力ピンと出力ピンを使って スイッチのオンオフを検知 入力ピン数 x 出力ピン数の スイッチのオンオフを検知可能!
  27. 27. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 27 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 LOW HIGH HIGH HIGH HIGH 確認したい列の出力:LOW それ以外の列の出力:HIGH
  28. 28. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 28 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 LOW HIGH HIGH HIGH HIGH 入力チェック 入力側は内部プルアップ スイッチオン:LOW スイッチオフ:HIGH 入力チェック 入力チェック
  29. 29. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 29 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH LOW HIGH HIGH HIGH
  30. 30. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 30 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH HIGH LOW HIGH HIGH
  31. 31. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 31 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH HIGH HIGH LOW HIGH
  32. 32. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 32 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH HIGH HIGH HIGH LOW 出力側のHIGH/LOWを高速 に切り替えスキャニングする
  33. 33. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 33 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH オシタ! LOW HIGH HIGH HIGH
  34. 34. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 34 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH キタコレ! LOW HIGH HIGH HIGH スイッチの状態を検知 スイッチオン:LOW
  35. 35. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 35 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH LOW HIGH HIGH HIGH オシタ!オシタ! オシタ!
  36. 36. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 36 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH LOW HIGH HIGH HIGH キタコレ? 対象のスイッチが押されてな くても誤認識してしまう。
  37. 37. 自作キーボード基礎知識:キーマトリックス © 2017 Retrieva, Inc. 37 出 力 1 出 力 2 出 力 3 出 力 4 出 力 5 入力1 入力2 入力3 HIGH LOW HIGH HIGH HIGH キタコレ? ダイオードで逆流防止!
  38. 38. 自作キーボード基礎知識:ファームウェア • 自作キーボード向けのファームウェアが公開されてる • TMK Firmware:自作キーボード向けの様々な機能を提供 https://github.com/tmk/tmk_keyboard • QMK Firmware:TMKの派生、機能拡張されてて便利 https://github.com/qmk/qmk_firmware © 2017 Retrieva, Inc. 38
  39. 39. 自作キーボード基礎知識:FW機能(一部) • キーマップの切り替え • 複数のキーマップを定義して切り替えられる(最大32レイヤー) • ファンクションキー • 定義したアクションやマクロなどを実行できる(最大32キー) • キーアクション • 複数の修飾キーと1つの通常キーの組み合わせなどを1キーで押せる • レイヤーアクション • 一時的や永続的にレイヤーの切り替えを行うことができる © 2017 Retrieva, Inc. 39
  40. 40. 本題:foobar作りました! © 2017 Retrieva, Inc. 40
  41. 41. foobar作成:作業のあらすじ • PCB発注 • 部品調達 • 組み立て • ファームウェア書き込み © 2017 Retrieva, Inc. 41
  42. 42. foobar作成:PCB発注 • 設計ファイルダウンロード • https://github.com/di0ib/Misc/tree/master/foobar • foobar1_1.zip, foobarplate.zip, foobarbottom.zip • 解凍する必要はない © 2017 Retrieva, Inc. 42
  43. 43. foobar作成:PCB発注 • JLCPCBへ発注 • https://jlcpcb.com/ • 10cm x 10cmの基盤作成が2$〜 • 早くて安い! • 発注チュートリアル • https://vimeo.com/234046247 © 2017 Retrieva, Inc. 43
  44. 44. © 2017 Retrieva, Inc. 44 さっきのファイル アップロードするだけ
  45. 45. foobar作成:部品調達(部品リスト) • キースイッチ(GATERONなど) x 30:AliExpress • キートップ(DSAなど) x 30 : AliExpress • ダイオード(1N4148) x 30:秋月電子通商 • マイコン(Pro Micro) x 2:AliExpress • 5.2mm SMTスイッチ x 2:Amazon • TRRSジャック(Sparkfun PRT-12639) x 2 :千石電商 • TRRSケーブル(0.5m – 1.0m) x 1 :千石電商 • 12mmスペーサー x 12 :Amazon • M2ネジ x 24 :Amazon © 2017 Retrieva, Inc. 45
  46. 46. foobar作成:部品調達 • AliExpress • 輸送に時間がかかる恐れあり(10日〜30日程度) • 最近はちゃんと届く • 秋月電子通商 • 平日18:30閉店なので注意 • 千石電商 • ジャックは1号館( Sparkfunコーナー) • ケーブルは2号館(レジ横あたり) © 2017 Retrieva, Inc. 46
  47. 47. foobar作成:組み立て(手順) • キースイッチ並べ ← はじめにやる、向きに注意 • ダイオードつける ← 向きに注意 • TRRSジャック、SMTスイッチ、ピンヘッダつける • キースイッチつける • マイコンつける ← 必ず最後につける、向きに注意 • 底用基盤ねじ止め © 2017 Retrieva, Inc. 47
  48. 48. foobar作成:組み立て(キースイッチ並べ) © 2017 Retrieva, Inc. 48
  49. 49. foobar作成:組み立て(キースイッチ並べ) © 2017 Retrieva, Inc. 49
  50. 50. foobar作成:組み立て(キースイッチ並べ) © 2017 Retrieva, Inc. 50 注意:向きを揃える
  51. 51. foobar作成:組み立て(ダイオード) © 2017 Retrieva, Inc. 51 向きに注意 ■にダイオードの線を合わせる キースイッチ側につける (逆に付けるとマイコンにぶつかる) はんだ付け後 ピンヘッダの足を切る (基盤にぶつかる)
  52. 52. foobar作成:組み立て(ピンヘッダなど) © 2017 Retrieva, Inc. 52 表面実装のはんだ付けテクニック ・部品を置く前に1箇所はんだを盛る ・部品をおいて盛っておいたはんだを温める ・他の部分をはんだ付けする キースイッチ側と逆に付ける しっかり押し付けてはんだ付けする
  53. 53. foobar作成:組み立て(キースイッチつけ) © 2017 Retrieva, Inc. 53 必ずマイコンをつける前に はんだ付けする
  54. 54. foobar作成:組み立て(マイコンつけ) © 2017 Retrieva, Inc. 54 マイコンの向きに注意 Bar側はマイコンが裏になるように付ける
  55. 55. foobar作成:組み立て(マイコンつけ) © 2017 Retrieva, Inc. 55 マイコンの向きに注意 foo側はマイコンが表になるように付ける
  56. 56. foobar作成:FW書き込み(環境構築) • git $ brew install git • avrdude $ brew install avrdude –with-usb • ファームウェアのダウンロード $ git clone https://github.com/di0ib/tmk_keyboard • カレントディレクトリの変更 $ cd tmk_keyword/keyboard/foobar © 2017 Retrieva, Inc. 56
  57. 57. foobar作成:FW書き込み(左側) • 左側(メイン基板の裏がbar)セットアップ マイコンにUSBケーブルつなぐ $ COM_PORT=/dev/tty.wchusbserial1410 make eeprom-left(3秒以内に基板のSMTスイッチ押す) $ COM_PORT=/dev/tty.wchusbserial1410 make program(3秒以内に基板のSMTスイッチ押す) © 2017 Retrieva, Inc. 57
  58. 58. foobar作成:FW書き込み(右側) • 右側(メイン基板の裏がfoo)セットアップ マイコンにUSBケーブルつなぐ $ COM_PORT=/dev/tty.wchusbserial1410 make eeprom-right (3秒以内に基板のSMTスイッチ押す) $ COM_PORT=/dev/tty.wchusbserial1410 make program (3秒以内に基板のSMTスイッチ押す) © 2017 Retrieva, Inc. 58
  59. 59. foobar作成:FW書き込み(動作確認) • 左側のマイコンにUSBケーブルをつなぐ • 右側と左側をTRRSケーブルでつなぐ • パソコン側でキーボードの設定を行う(USキーボードに設定) © 2017 Retrieva, Inc. 59
  60. 60. © 2017 Retrieva, Inc. 60
  61. 61. デフォルトキーマップ:レイヤー0 Retrieva, Inc. A S D F G H J K L ESC Q W E R T Y U I O P Z X C V BS SPC B N M ENT 61
  62. 62. デフォルトキーマップ:レイヤー0 長押し Retrieva, Inc. LCTL LALT TL3 TL4 TL2 TL1 TL5 RALT RCTL RSFT 62
  63. 63. デフォルトキーマップ:レイヤー1 Retrieva, Inc. F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 1 2 3 4 5 6 7 8 9 0 TRNS TRNS TRNS TRNS DEL TRNS TRNS TRNS TRNS TRNS 63
  64. 64. デフォルトキーマップ:レイヤー2 Retrieva, Inc. F11 F12 TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS ! “ # $ % & ‘ ( ) 0 TRNS TRNS TRNS TRNS DEL TRNS TRNS TRNS TRNS TRNS 64
  65. 65. デフォルトキーマップ:レイヤー3 Retrieva, Inc. TRNS TRNS TRNS TRNS TRNS , . / ; ` TRNS TRNS TRNS TRNS TRNS - = [ ] ¥ TRNS TRNS TRNS TRNS TRNS TRNS ← ↓ ↑ → 65
  66. 66. デフォルトキーマップ:レイヤー4 Retrieva, Inc. < > ? : “ _ + { } | TRNS HOME PGDN PGUP END TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS TRNS 66
  67. 67. © 2017 Retrieva, Inc.

×