02.Wio Terminalで日本語表示
02.Wio Terminalで日本語表示
LovyanGFXライブラリを使用して日本語を表示させます。以前M5で使用したefontJA_24_bはメモリサイズオーバーで載せられませんでした。そこで、字が小さくてもきれいに見えるefontで、efontEnableJaMiniを選びました。スクロール表示させています。
LovyanGFXライブラリの確認
Aruino-IDE > ツール > ライブラリを管理... > "LovyanGFX"で検索"LovyanGFX by lovyan03 バージョン0.4.12"に更新 > 閉じる
日本語フォントの確認
Aruino-IDE > ツール > ライブラリを管理... > "efont"で検索"efont Unicode Font Data by TANAKA Masayuki バージョン1.0.7"に更新 > 閉じる
1行文字数と文字倍率(実測)
フォント:efontEnableJaMini1行 文字 | 行数 | 設定 倍率 |
---|---|---|
20 | 15 | 1 |
18 | 14 | 1.1 |
17 | 13 | 1.17 |
16 | 12 | 1.2 |
15 | 11 | 1.33 |
14 | 10 | 1.4 |
13 | 10 | 1.5 |
12 | 9 | 1.6 |
10 | 7 | 2 |
(参考)倍率=1.1の時、320/16ドット/1.1=18.18文字,240/16/1.1=13.63行
太字
以前M5で使用した日本語・サイズ24・太字は容量が大きくて使えませんでした。(あるスケッチ中で測定)フォント | 使用flashサイズ |
---|---|
efontJA_10_b | 310,784B (60%) |
efontJA_12_b | 390,256B (76%) |
efontJA_14_b | 476,432B (93%) |
efontJA_16_b | NG |
efontJA_24_b | NG |
lgfxJapanGothic_16 | 241,200B (47%) |
lgfxJapanGothic_24 | 360,592B (70%) |
定義済みの色
TFT_BLACK | 黒 | 0x0000(0,0,0) |
TFT_NAVY | 紺 | 0x000F(0,0,128) |
TFT_BLUE | 青 | 0x001F(0,0,255) |
TFT_DARKGREEN | 深緑 | 0x03E0(0,128,0) |
TFT_DARKCYAN | 深青緑 | 0x03EF(0,128,128) |
TFT_GREEN | 緑 | 0x07E0(0,255,0) |
TFT_CYAN | 青緑 | 0x07FF(0,255,255) |
TFT_MAROON | 茶 | 0x7800(128,0,0) |
TFT_PURPLE | 紫 | 0x780F(128,0,128) |
TFT_OLIVE | 薄緑 | 0x7BE0(128,128,0) |
TFT_DARKGREY | 濃灰 | 0x7BEF(128,128,128) |
TFT_GREENYELLOW | 黄緑 | 0xB7E0(180,255,0) |
TFT_LIGHTGREY | 薄灰 | 0xC618(192,192,192) |
TFT_RED | 赤 | 0xF800(255,0,0) |
TFT_MAGENTA | 赤紫 | 0xF81F(255,0,255) |
TFT_ORANGE | 橙 | 0xFDA0(255,180,0) |
TFT_YELLOW | 黄 | 0xFFE0(255,255,0) |
TFT_WHITE | 白 | 0xFFFF(255,255,255) |
スケッチ
// 日本語表示 efont.ino 字が細い
//#include <efontEnableJa.h> // フォント日本語 10835文字 368kB
#include <efontEnableJaMini.h> // フォント日本語ミニ 4107文字 140kB(常用漢字+α)
#include <efontFontData.h> // efontのフォントデータ
#define LGFX_AUTODETECT // 対応機種を自動認識
#include <LovyanGFX.hpp> // ヘッダをinclude efontのinclude後に
static LGFX lcd; // LGFXのインスタンスを作成
float s = 1.0; // 文字サイズ
void setup() {
lcd.init(); // LCD初期化
//lcd.setRotation(1); // 回転方向(0-3) 上下反転(4-7)
lcd.setBrightness(64); // バックライト輝度(暗0-255明)
lcd.setFont(&fonts::efont); // フォントセット
lcd.setTextWrap(false, false); // 自動改行(横,縦) スクロール時効かないみたい。
// 第1引数がtrueなら、右端到達後に左端へ移動
// 第2引数がtrueなら、下端到達後に上端へ移動 (省略時 false)
lcd.setTextScroll(true); // 画面下端に到達後スクロール
lcd.setScrollRect(0, 0, lcd.width(), lcd.height());
//スクロール範囲(X,Y,W,H,スクロール後の色(省略時:変更なし)) 未指定:画面全体
lcd.setCursor(0, 0); // 画面左上
}
void loop() {
lcd.setTextSize(s); // 文字サイズ(横縦幅倍数)
lcd.setTextColor(random(0x000F, 0xFFFF), TFT_BLACK); // (文字色(紺~白),背景色)
lcd.println("こんにちは、私です。"); // 文字表示
s = s + 0.02; if (s > 2.0) s = 1.0; // 文字サイズ変更(1~2)
}
* フラッシュメモリの190,764B(37%)を使用。