自キ活1年目で出来たものと、総当たりマトリクスのご紹介(ダイジェスト版)

Takeshi Nishio

Tag:

keyboard

advent_calendar


この記事は キーボード #2 Advent Calendar 2020 の、5日目の記事です。

前の記事は、s-showさんの”自作キーボード活動2年目の振り返り”でした。
次の記事は、eswaiさんの”エンドゲームに近づいたのか?”です。


この1年は、僕にとっての自作キーボード元年でした。
なんやかんやで、自分で自分のキーボードを作れるようになった自キ活の1年目をふりかえります。
また、キーボードを作る中で偶然(?)使えるようになった総当たりマトリクスについても紹介します。

なお、こちらの記事はダイジェスト版となっております。
お時間のある方はフル版をご覧ください。

自キ活1年目で出来たもの

この1年の自作キーボード活動(=自キ活)で出来たものを紹介します。

初めての自作キーボード ErgoDash, 2019年11月

肩にやさしく、OTAKUっぽい分離型でエルゴノミクスを感じる配列のErgoDashのキットを、初めての自作キーボードに選びました。

初めての自作キーボード、ErgoDash

ErgoDash用パームレスト一体型ハイプロアクリルケース, 2019年12月

ErgoDash純正のケースだとキーキャップ下側の角に手が引っかかるのが気になったので、フレーム付きのハイプロケースを作成しました。

ErgoDash用パームレスト一体型ハイプロアクリルケース

SU120基板発注, 2019年12月末

自分用のキーボードを作りたいという思いが強くなり、過去のアドベントカレンダーからe3w2q氏の”レイアウトを試行錯誤しやすくするために作った自作キーボード用基板の開発で試行錯誤した話”という記事を見つけ、基板を作らずに自由なレイアウトが作れるSU120を発注しました。

Elecrowから到着したSU120 Rev.7基板

改造キーボード NumAtreus_Plus8, 2020年1月

遊舎工房の福袋に入っていたNumAtreusですが、どう考えても40%キーボードなんて使える気がしないので、左右に1列ずつ増やす改造を加えてNumAtreus_Plus8を作成しました。

NumAtreus Plus8

初めて自分で設計したキーボード Colice(コリス), 2020年1月〜5月

合体構造により左手、右手とテンキーの位置をを変えられ、一体型かつ分離型のキーボード、Coliceを製作しました。

Colice, 完成

総当たりマトリクスを採用したキーボード Atreus RR, 2020年3月

Pro Micro1個でたくさんのキーを動作させる方法を調べていて、2乗マトリクスで色々やっているうちに偶然(?)不具合を回避する方法を発見し、総当たりマトリクスを採用したAtreus RRが完成しました。

NumAtreus_Plus8 RR, 手配線

とても具合の良い60%キーボード Jones(ジョーンズ), 2020年5月末〜現在

通常のロースタガ配列でそこそこ満足という気持ちと、もうちょっと使いやすくしたいという想いから、ロースタガとオルソリニアを組み合わせたGH60型ケース互換の60%キーボード、Jonesを作りました。

Jones v.0.3.1 w/ KBDfans 5° Case

総当たりマトリクスの採用や、ロータリーエンコーダや2音同時発音のスピーカーの搭載など、内部は今年1年で得た知識をフル動員した感じです。

STM32F303評価ボード STMeishi, 2020年10月〜現在

大きなサイズのファームウェアを使いたくなり、STM32F303を使った名刺サイズの評価用マクロパッド、STMeishiを作りました。

電源LEDが点灯するだけで、ひとっつも動作しません。
失敗から何かを学ぶ予定です…

STMeishi v.1


総当たりマトリクスのご紹介

Atreus RRの製作中に偶然使えるようになった”総当たりマトリクス”を紹介します。

総当たりマトリクスとは

IKeJI氏の”キーボードのマトリクス方式の分類”で取りあげられている”2乗マトリクス”に、ゴースト回避方法を追加したマトリクス方式です。
N個のピンで、N(N-1)個のキーを使用することができます。

回路図が総当たり戦のリーグ表ような形になるため、”総当たりマトリクス”という呼称にしました。

今のところ、Pro Microを含むATMega32u4でのみ動作を確認しています。

詳しくは以前書いた記事をご覧ください。

利点

ゴースト回避方法

ピンから他のピンへ向かう箇所にダイオードを挿入します。

That's it! これだけです。

マクロパッド作成例

総当たりマトリクスを使った、2行×3列で6キーのマクロパッドの作成例です。

回路設計

  1. 使用するピンの数を決めます。
    この例では6キーなので、3個のピンを使用して3(3-1)=6キーを接続します。

  2. ピンとピンの間にスイッチを配置します。

    Pin1 Pin2 Pin3
    Pin1 - SW21 SW31
    Pin2 SW12 - SW32
    Pin3 SW13 SW23 -
  3. ピンから他のピンへ向かう箇所にダイオード(D1, D5, D9)を挿入します。
    回路図

QMKファームウェア整備

rules.mkでのカスタムマトリクス関連の指定は、不要になりました。


終わりに

ほぼ知識ゼロの状態からスタートした自キ活でしたが、「これは無理かも」と思うようなときは、”サンボマスター / できっこないを やらなくちゃ”を聴いてなんとかやってこれました。

また、これらのキーボードが作れたのは、先達の知恵のおかげです。
特に過去のアドベントカレンダーは知恵の宝庫で、読み返すたびに発見があり、何かしらの知識を与えてくれ、大変助かりました。

さて、今後の自キ活ですが、Jonesにかなり満足してしまったので少しペースを落としつつ、Jones用オリジナルケースや分離型、STM32化などを進めていこうと思っています。
また、手の大きさ(小ささ)に合わせた、狭ピッチなキーボードも試してみたいです。

キーボードは何かをするための道具だと思っているので、具合の良い道具で楽しく快適に何かをやっていきたいです。


この記事は、Jones(v.0.3.1)のANSIスタイルをKBDfans 5°ケースと組み合わせ、流れるレインボーを見ながら書きました。