LoginSignup
14
13

More than 5 years have passed since last update.

M5Stackで日本語表示させてみる

Last updated at Posted at 2018-02-24

M5StackのTFTディスプレィAPIは日本語表示に対応していないのですが、Arduino IDEが使えるので、過去のArduino関係での表示例を探したところ、手頃なものがありました。

探した元ネタはこちらです: NefryBTで日本語表示させてみる

元ネタと同様に misakiUTF16_1.04.zipをダウンロードして、
Arduino IDEの「スケッチ」→「ライブラリをインクルード」→「.ZIP形式のライブラリのインクルード」でインストールします。

表示サンプルコードの移植は、ほとんどフォントのドットデータの描画をM5StackのAPIで置き換えるだけでした。

以下、結果です。

#include <M5Stack.h>
#include <misakiUTF16.h>

void misakiPrint(int x, int y, char * pUTF8) {
  int n=0;
  byte buf[40][8];  //320x8ドットのバナー表示パターン
  while(*pUTF8)
    pUTF8 = getFontData(&buf[n++][0], pUTF8);  // フォントデータの取得

  // 文字の描画
  for (byte i=0; i < 8; i++) {
    for (byte j=0; j < n; j++) {
      for (byte k=0; k<8;k++) {
        if(bitRead(buf[j][i],7-k)) {
          M5.Lcd.drawPixel(x + 8*j + k , y + i, TFT_WHITE);
        }
      }
    }
  }
}

void setup() {
    M5.begin();
    M5.startupLogo();

    M5.Lcd.setBrightness(100);
    M5.Lcd.fillScreen(TFT_BLACK);
    misakiPrint(0,0, "みさきフォントで書き出してみる☆");
    misakiPrint(0,16, "ごめん、ヘルシェイク矢野のことを考えてた…");
    misakiPrint(0,24, "ごめん、ヘルシェイク矢野のことを考えてた…");
    misakiPrint(0,32, "ごめん、ヘルシェイク矢野のことを考えてた…");
    misakiPrint(0,40, "ごめん、ヘルシェイク矢野のことを考えてた…");

    delay(5000);

    M5.Lcd.fillScreen(TFT_BLACK);
    misakiPrint(60,28, "ヘールシェイク!!");
    delay(1500);
    misakiPrint(15,50, "ヘールシェイク!!");
    delay(1500);
    misakiPrint(80,36, "ヘールシェイク!!");
    delay(1500);
    misakiPrint(20,3, "ヘールシェイク!!");
}

void loop() {
}

動かすと...

IMG_4355.mov.gif

M5StackのTFTディスプレイに表示するにはちょっと小さいので、そのうち別のフォントでも試してみようと思います。

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13