LED configツールの使い方
前提条件
このツールを使う上での前提条件として、回路図の設計が終わっている段階にある必要があります。
RGBマトリクスは、回路図上のスイッチに対してLEDと紐づける/紐づけないを定義し、紐づけるスイッチに対してシリアルに番号を振り、キーボード上での位置情報を定義します。
この記事では、下記のような回路図と、PCBでのキースイッチ配置がすでに完成していることを前提で説明していきます。
また、キースイッチ名については、左上から右下へ向けてシリアルに付けられた設計になっている必要があります。
ツールのページ
ツールページは下記になります。
LED config
設計図のRow、Colを入力する
ツールを開くと下記のような画面になります。
回路図でマトリクスを作った時と同じRowとColを、それぞれのフォームに入力します。
2倍マトリクスの場合は、片方分の数のRow数を入れて「Twice」をチェックしてください。
(Rowが5で2倍マトリクスの場合、config.hでは「MATRIX_ROWS」には使用するGPIOピン数の倍である『10」を指定しますが、ここでは実際のGPIOピンの数である「5」を「Row」に入力し、「Twice」チェックボックスをチェックします)
「OK」をクリックすると回路図と同じ感じの並びでスイッチが並びます。
Row=5、Col=7で、Twiceにチェックを入れて「OK」をクリックすると下記のようになります。
各スイッチにはデフォルトで、左上から右下へ「SW1」から順に番号が割り振られます。
これは回路図と同じになっている必要があります。
スイッチ番号を割り振る
「SW No.」というボタンをクリックすると全てのスイッチにチェックボックスが表示され、使用するスイッチはチェックされた状態になります。
ここで、回路図のマトリクス上では不使用にした箇所のチェックを外します。
(ここで言う「不使用」とは、LEDと紐づけないということではなく、「マトリクス上ここにスイッチを設置しない」という意味になります)
上記の例である「TReK 64 AVAIN」では、3箇所を使用しないので使用しないスイッチのチェックを外します。
チェックを外すと自動的にスイッチ名が再割り当てされます。
チェックを外し終わったら、もう一度「SW No.」ボタンをクリックします。
未使用にしたスイッチが半透明表示になります。
スイッチをキーボードの形状に並べる
「Move」のボタンをクリックすると、スイッチの移動モードになります。
スイッチをドラッグアンドドロップ出来ます。
また、スイッチのチェックボックスをチェックしておくと、スイッチを移動した時に一緒に移動出来ます。
このモードでPCB設計と同じキースイッチ配置に並べ替えてもいいのですが、KLEでのレイアウト作成が終わっている場合はJSONファイルをダウンロードし、そのJSONファイルに沿って自動で並べることが出来ます。
KLEのJSONファイルを読み込む
「KLE」ボタンをクリックするとファイル選択ダイアログが表示されます。
ここでKLEからダウンロードしたJSONファイルを選択します。
この機能を使用するためには大きな条件が2つあります。
- キースイッチの回転と回転原点情報を変更していない
- キースイッチの情報として左上にinfo.jsonで使用する情報が入っている
RemapやVialで使用しようとした場合に、キーを回転させる事がありますが、このツールでは回転させていたり、回転原点を変更していたりすると正しく表示されません。
また、KLEのJSONに記述されたキースイッチと、このツールで表示させている回路図に沿ったキースイッチ一覧との紐づけを、KLEでのキースイッチで左上に入力されたデータの順にキースイッチ名を割り当て、その情報で紐づけています。
正しいJSONが読み込まれた場合は、キースイッチがKLEで作った配列の通りに並びます。
LEDの順番を指定する
次に、PCB設計で並べたLEDの順番どおりに、ツール上でLED番号を指定していきます。
右上のボタンのどれも選択されていない状態でキースイッチをクリックすると、キースイッチが黄色くなり順番に番号が割り当てられていきます。
途中の番号をクリックすると、その番号以降のキースイッチが未割り当て状態になります。
このモードで、LEDと紐づける全てのキーにLED番号の割り当てが終わると、下記のような感じになります。
この例の場合は、3つのロータリーエンコーダにはLEDを紐づけないため、未選択になっています。
コード生成
LED番号の割り当てが終了しましたら「code」と書いてあるボタンをクリックします。
画面に「keymap.c」で使用出来るコードが表示されるのでコピーしてお使いください。
Discussion