LMCMの使い方:テンプレートエディタで未知のLEDマトリクスを使う

はじめに

この記事は、LMCMを使用するにあたり、用意したLEDマトリクスで表示できるようにするためのツール『テンプレートエディタ』の使い方について解説を行います。

▼1:LEDマトリクスの用意

LMCMは、市販のLEDマトリクスを装着し、画面を表示することができます。

LMCMで利用可能なLEDマトリクスには、いくつかの制限があります。確実に動作するものを利用したい場合は、以下の品が当方で検証済みのものですので、こちらをご利用ください。

■スイッチサイエンス

・LEDマトリクスP6 32×32 https://www.switch-science.com/products/9193
・LEDマトリクスP10 32×16 https://www.switch-science.com/products/9194

本稿では、当方の保有する「Kinglight製SMD3535-32×16-P10 LEDマトリクス(以下KLP10-3216)」を使用します。

▼2:NeCoWinのインストールと起動

本稿では、2024年2月現在で最新版のNeCoWin(Ver.2.17.1)を使用します。
NeCoWinをアップデートする場合、古いNeCoWinを削除した上で再インストールを行ってください。

https://ksdt.jp/product/lmc/download/necowinr2/2_17_1/LEDMatrixNeCoWinforLMCMInstaller_2_17_1.msi

インストールが終わりましたら、NeCoWinを起動してください。

▼3:LMCMのUSB接続

LMCMをUSBケーブル(Type-C)でPCと接続し、使用するLEDマトリクス(最初はKLP10-3216を使用)をMIL16ケーブルと電源ケーブルで接続します。

LMCMに5VDC電源を接続し、通電してください。

NeCoWinの設定を開き、「LMC接続設定」でテンプレートの項目に、「LMCM_P10_64x32.dat」を選択します。[1]LEDマトリクスP10 32×16の4枚構成テンプレートにあたるものです

LANModeチェックが外れていることを確認したうえで、「接続」ボタンで接続を行ったのち、「画面キャプチャ表示」を行ってください。

右の画像のように画面が表示されます。

見ての通り、KLP10-3216は、通常のLMCM_P10_64x32.datテンプレートで接続しても、正しく表示することができません。これはセクション設定が異なるものになっているためです。

なお、マトリクスをLEDマトリクスP10 32×16(以下P10-3216)に交換すると、このように表示されます。

では、この「KLP10-3216」で表示を行うにはどうすればよいでしょうか。

ここで、新規公開機能の「テンプレートエディタ」を使用します。

NeCoWinのメニューバーから「LEDマトリクステンプレート編集」を選択してください。

「LMC LEDマトリクス配置テンプレートエディタ(以下テンプレートエディタ)」の画面が表示されます。

この画面では、以下の操作を行うことができます。

1.新規のLEDマトリクスに対応するテンプレートの作成
2.設定済みのLEDマトリクスの配置テンプレートの作成
3.複数のLMCMを連携させるマルチコントロールのテンプレートの作成

今回は、新規のLEDマトリクスに対応させるため、『1』の機能を使用します。

▼4:新規のLEDマトリクス設定を作成

テンプレートエディタのメニューから、「カスタムLEDマトリクス」のタブを選びます。

新規のカスタムLEDマトリクスを作成するときは、「テンプレートを作成・編集」ボタンを右クリックしてください。[2]左クリックの場合、現在左リストで選択中のLEDマトリクス設定を開きます

すると、「カスタムLEDマトリクス編集画面」が開かれます。

まず、名前を決定してください。今回は「32×16-P10-S4.sec」のテンプレート設定を修正し、Kinglight製LEDマトリクスに対応させるため、「KLP10-3216.sec」などと命名します。

「ファイル」を選び「名前を付けて保存」を行ってください。

それでは、実際にLEDマトリクスの設定を編集してみましょう。

まずは、LEDマトリクスの表示が、元のモデルとどのように違うかを分析します。

仕様上、今回使用する「KLP10-3216」は、「P10-3216」と同じ仕様であることになっています。

カタログ上でわかる仕様は以下の通りです。

  • ドットピッチ:10mm
  • ドット数:32×16
  • スキャンライン:4

これだけではほとんど何もわかりませんね。

LEDマトリクスは、基本的にはRGBの三つの信号を、MIL16の端子のうち6つから送り込み、表示させます。[3]単色の場合など、3つだけ使用している場合もあります

その際、スキャンライン値に設定されている値の順にLEDを切り替えて発光させ、本来の信号数よりも多くのLEDを表示させています。[4]そのため、スキャンラインは小さい方がドットあたりの発光時間が長く、結果として明るく表示されます

つまり、S4のLEDマトリクスは、4ドット単位で正しい情報が並んでいるはずということになります。この表示単位をセクションと呼びます。画面に出ている赤い矢印の書かれているボックスがこのセクションにあたり、これを「セクションボックス」と呼びます。

LEDマトリクスを見ると、元の正しいはずのサンプルと比べて、まずRGBの順序が逆になっている気がします。しかしこれは単にセクションの上下が逆転しているだけの可能性もあるので、ひとまず保留にします。

また、LED画面に白いラインが真横にまっすぐ走っていますが、これは本来上端と下端の縁取りをしているものです。つまり、このLEDのセクションは、「P10-3216」と上下の配置が異なっていると考えられます。

さて、それでは色々試してみましょう。カスタムLEDマトリクス編集画面の「MatrixLayoutMode」を、「カスタムレイアウト」に変更します。これは、当方が定義した規定のパターンではない、オリジナルのセクションパターンを作成する場合に指定します。

次に、「MatrixScanLines」を「4」に設定します。これはLEDマトリクスの仕様で定められるスキャンラインを指定します。

「LED Matrix pixel size(XY)」を、使用するLEDマトリクスに対応する値に変更します。今回の場合、「32」×16に設定します。なお、Y軸のサイズは下の「MatrixLayoutLanes」項目を変更することで、スキャンライン×MatrixLayoutLanes×2で決定されます。[5]なぜ二倍されるのかというと、LEDマトリクスの信号は多くの場合終端で折り返して表示領域を大きくしているため、です

「LED Matrix pixel size(XY)」で指定されるサイズが使用しているLEDマトリクスの単体の仕様と合致していることを確認したら、次に進みます。

次に、「MatrixLayoutMask」を変更します。この値は、LEDマトリクスのセクションごとのX軸ドット数です。
画面にあるセクションボックスのX軸向きの幅にあたるものと考えればよいでしょう。[6]ちなみにY軸側の幅はMatrixScanLinesの値にあたります

セクションには1-1,1-2のようにMatrixLayoutLanesで決定される列があり、これがMatrixLayoutMaskで定義されるドット数ごとに区切られ、切り替わっています。
2列のLEDテープが、MatrixLayoutMaskのドットごとに折り曲げられ、MatrixLayoutLanes本のLEDテープであるように表示を行っているようなイメージです。[7]実際にはそれがスキャンライン数明滅して更に多くのLEDテープであるように振る舞っています

ここはもっとも複雑な部分であるため、既存の例を参照します。

「P10-3216」では「8」に設定されており、今回の「KLP10-3216」は基本的には同じ仕様であると思われるので、同じく「8」と設定します。

次に、セクションのY軸の配置を変更します。テスト表示を見ると、外枠が上から7ドット目と下から5ドット目にあります。外枠は本来上から1ドット目と16ドット目にあるはずなので、Y軸の設定がおかしいことがわかります。

図のセクションボックスをドラッグし、上下に移動することで、セクションボックスのY軸配置を変更できます。ここでは、1-2の位置を移動させ、1-1と1-2の配置を入れ替えます。そして同じように2-1と2-2の配置も入れ替えます。

この状態でテスト表示を行うと、右写真のようになります。下側の外枠は想定通りになりましたが、上側の外枠がまだ想定通りではないですね。

これは、2-1列は正しいけれど、1-2列は正しくないと考えられます。MatrixLayoutLanesが1の時は正しくて2の時誤っているというパターンは、Y座標を決定するルールがLEDマトリクスの仕様に合致していない可能性が考えられるので、YLineDecodedのチェックを外してみます。[8] … Continue reading

YLineDecodedを外すと上列の外枠が妥当な位置に表示されたので、これで正しいようです。

次に、LEDマトリクス画面右端を見ます。外枠が2-2に相当するところで崩れています。1-2も色が変ですし、それぞれ右から8ドット目にそれらしい白線が見えています。

これは、表示を行う向きが逆転している可能性があります。これを変更するには、セクションボックスの上で右クリックをしてください。

いい感じになりました。しかし何か変ですね。RGBの色が文字と違っているようです。

これは、RGBの信号線のレイアウトが間違っていると考えられます。MatrixColorModeの項目で、色の指定を変更することができます。

今回の場合、HUB75の仕様と異なり、SignalRに青(B)、SignalBに赤(R)が来ていると思われます。

設定を変更して表示してみます。

どうやらこれで正しいようですね。

正しいセクション設定データができたら、ファイルを保存します。区別のために、上の名称のところで名前を変更することを忘れないでください。

保存したセクション設定ファイルは、テンプレートエディタのカスタムLEDマトリクスのリストに表示されます。

そしてここまでやっておいて何ですが、このKinglight製のLEDマトリクスのセクション設定ファイルは、32×16-P10-S4KL.secファイルとしてNeCoWinの標準のインストールに含まれています。
実際に自作したファイルと既存のファイルで表示内容が一致するかを確かめてみてください。

なお、LMCMは仕様上、以下の条件を満たすLEDマトリクスしか表示することができません。ご注意ください。

  • 64×32ドット以下であること
  • HUB75仕様に準拠していること
  • スキャンラインが4~16であること

詳しくは、当方までお問い合わせ戴ければ、使用の可否を回答できるかと思います。

次回は、引き続き新規のLEDマトリクスとして、フレキシブルLEDマトリクスを接続してみます。

References

References
1LEDマトリクスP10 32×16の4枚構成テンプレートにあたるものです
2左クリックの場合、現在左リストで選択中のLEDマトリクス設定を開きます
3単色の場合など、3つだけ使用している場合もあります
4そのため、スキャンラインは小さい方がドットあたりの発光時間が長く、結果として明るく表示されます
5なぜ二倍されるのかというと、LEDマトリクスの信号は多くの場合終端で折り返して表示領域を大きくしているため、です
6ちなみにY軸側の幅はMatrixScanLinesの値にあたります
7実際にはそれがスキャンライン数明滅して更に多くのLEDテープであるように振る舞っています
8YLineDecodedは、Y座標指定のための4ビット信号を数値として扱うか、それともビット=座標として扱うかの違いを示します。通常のLEDマトリクスはより多くのLEDを制御するためエンコード用のICを装着していますが、コストダウンのためにこれを省略している場合があり、その場合にYLineDecodedにチェックを入れます

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL