2025年9月25日木曜日

LEDマトリックス表示装置の製作 2(基板製作と表示テスト)

 基板の半田付け

 基板の半田付けを行い、制御基板が完成しました。

 左側が制御基板で、右側がESP32S3 DevkitCマイコンです。


サンプルプログラムの実行

 コネクタHUB75のライブラリをインストールします。

  ライブラリ「ESP32-HUB75-MatrixPanel-I2S-DMA」


 このライブラリにはダブルバッファ機能があり、この機能でちらつきを抑止できます。

 サンプルプログラム「1_SimpleTestShapes」を実行します。

 しかし、このままでは接続しているポートが違うため、合わせる必要があります。

ポート定義を追加します。

// setting Port
#define   PIN_R1     4
#define   PIN_G1     5
#define   PIN_B1     6
#define   PIN_R2     7
#define   PIN_G2    15
#define   PIN_B2    16
#define   PIN_A      8
#define   PIN_B     18
#define   PIN_C     10
#define   PIN_D      9
#define   PIN_E     -1
#define   PIN_CLK   12
#define   PIN_LAT   11
#define   PIN_OE    13

次にポート定義を有効にするために、設定のプログラムを追加します。 (既に定義済みの部分の3行目から8行目をコメントアウトします)
そのあとに
 
void setup() {

// Module configuration
//  HUB75_I2S_CFG mxconfig(
//    PANEL_RES_X,   // module width
//    PANEL_RES_Y,   // module height
//    PANEL_CHAIN    // Chain length
//  );
  HUB75_I2S_CFG mxconfig;
  mxconfig.gpio.r1  = PIN_R1;
  mxconfig.gpio.g1  = PIN_G1;
  mxconfig.gpio.b1  = PIN_B1;
  mxconfig.gpio.r2  = PIN_R2;
  mxconfig.gpio.g2  = PIN_G2;
  mxconfig.gpio.b2  = PIN_B2;
  mxconfig.gpio.a   = PIN_A;
  mxconfig.gpio.b   = PIN_B;
  mxconfig.gpio.c   = PIN_C;
  mxconfig.gpio.d   = PIN_D;
  mxconfig.gpio.e   = PIN_E;
  mxconfig.gpio.lat = PIN_LAT;
  mxconfig.gpio.oe  = PIN_OE;
  mxconfig.gpio.clk = PIN_CLK;
  mxconfig.clkphase = false;
  //mxconfig.gpio.e = 18;
  //mxconfig.clkphase = false;
  //mxconfig.driver = HUB75_I2S_CFG::FM6126A;

  // Display Setup
  dma_display = new MatrixPanel_I2S_DMA(mxconfig);
  dma_display->begin();

 変更後にプログラムを書き込みます。

 LEDマトリックスに文字が表示され、表示するプログラムの動作を確認することができました。

0 件のコメント:

コメントを投稿

LEDマトリックス表示装置の設計・製作 9(画像表示)

  LEDマトリックスに画像を表示させるには、いろいろな画像形式を知る必要があります。現在、よく使われるJPG形式やPNG形式は圧縮処理されて保存されています。これに対して、BMP形式やTIFF形式は非圧縮形式で、画像データがそのまま保存されています。このため、ファイルは大きくな...