💡

【M5coreS3】日本語の表示方法(方法を知りたい人向け)

2024/07/28に公開

M5stack core s3で日本語を表示させるには、日本語用ライブラリが必要です。

ネットで調べても断片的な方法を書いた記事しかなく、結局どうやるのか分かりにくかったのでまとめました。

開発環境

platformio.ini
[env:m5stack-cores3]
platform = espressif32
board = m5stack-cores3
board_build.mcu = esp32s3
board_build.f_cpu = 240000000L
framework = arduino

手順

ここからzip形式でダウンロードします
https://github.com/tanakamasayuki/efont

zipを解凍すると、以下のファイルがあるはずです。

libディレクトリに「efont」を設置し、先ほどダウンロードしたファイルから「src」と「library.json」
をコピーします。

your_project/
├── .pio/
├── include/
├── lib/
│   └── efont/
│       ├── src/
│       │   ├── efont.h
│       │   ├── efontFontData.h
│       │   └── efontEnableJa.h
|       |   ・・・その他もろもろ
│       ├── library.json
│       └── README.md
├── src/
│   └── main.cpp
└── platformio.ini

これで日本語を表示させる準備が整いました。

あとはmain.cppで動作確認してみましょう。

main.cpp
#include <M5CoreS3.h>
#include <efont.h>
#include <efontFontData.h>

void setup() {
  auto cfg = M5.config();
  M5.begin(cfg);

  M5.Display.setFont(&fonts::efontJA_16);  // または他のサイズを選択
  M5.Display.setTextSize(1);
  M5.Display.setTextColor(TFT_WHITE, TFT_BLACK);
}

void loop() {
  M5.Display.fillScreen(TFT_BLACK);
  M5.Display.setCursor(10, 50);
  M5.Display.println("こんにちは、世界!");
  delay(2000);
}

補足

platformioがefontを見つけられない場合

platformio.iniにはlibディレクトリを参照するよう、以下明記します。

[env:m5stack-cores3]
lib_extra_dirs = 
    ${projectdir}/lib
build_flags = 
    -I${projectdir}/lib/efont/src

ガセ記事に注意

SDカードを使うとかLovyanGFXを使うと書いてある記事は、ガセであったり余計な手間をかけているだけなので、参考にしないように

Discussion