⌨️

Meishi2でダイオードの必要性を検証する

に公開

なぜ自作キーボードにダイオードが必要か考えてみた を読んで、ダイオードの必要性についてわかったつもりになったのですが、動作確認しておかないと本当に理解できたとは言えないと思い、実際に試してみることにしました。

読んだ記事では 2x2 のマトリックスで説明がされていました。手元にある meishi2 がまさにこの形なのでそれを使います。

準備

keyboard.json より、左から右に (row, col) = (0,0), (0,1), (1,0), (1,1) が並んでいるので、参照した記事に合わせてそれぞれ、KC_A, KC_B, KC_C, KC_Dを割り当てます。

keyboard.json
  "layouts": {
    "LAYOUT": {
      "layout": [
        {"matrix": [0, 0], "x": 0, "y": 0},
        {"matrix": [0, 1], "x": 1, "y": 0},
        {"matrix": [1, 0], "x": 2, "y": 0},
        {"matrix": [1, 1], "x": 3, "y": 0}
      ]
    }
  }

検証

テキストエディタに入力できる状態にしておいて、左から3つのキーを同時に押すと以下のように入力されます。

cab

一番左のダイオードをなかったことにするため、ピンセットでショートさせます。

すると、左から3つのキー a,b,c を同時に押したときの入力は

cabd

のようになり、意図しない d の入力がされていることが確認できました。

同様に、

  • 2つ目のダイオードをショートさせると a,b,d の同時押しで意図しない c が入力される
  • 3つ目のダイオードをショートさせると a,c,d の同時押しで意図しない b が入力される
  • 4つ目のダイオードをショートさせると b,c,d の同時押しで意図しない a が入力される

も確認できました。

Discussion