M5StickC
前回、M5StickCのスケッチ例TFT_Print_Testを見て、M5.Lcd.setRotation、M5.Lcd.fillScreen、delayを勉強しました。
今回は画面にテキストを表示するコマンドとして、M5.Lcd.setTextFont、M5.Lcd.setTextSize、M5.Lcd.setCursor、M5.Lcd.setTextColorをいじっていきたいと思います。
そこで前回、TFT_Print_Testのスケッチ例を使ってコマンドを見ていっていましたが、今回はまずは基本のプログラムを作ってそこから色々値を変えてどうなるか試してみましょう。
基本のプログラム
とりあえず基本のプログラムをこんな感じで組んでみました。
#include <M5StickC.h>
void setup() {
M5.begin();
M5.Lcd.setRotation(3);
}
void loop() {
M5.Lcd.fillScreen(TFT_BLACK);
M5.Lcd.setTextFont(1);
M5.Lcd.setTextSize(1);
M5.Lcd.setCursor(35, 25);
M5.Lcd.setTextColor(TFT_WHITE);
M5.Lcd.println("Hello World!");
delay(1000);
}
これをM5StickC上で実行するとこんな出力が得られます。
これを元に順番に値を変えて、その違いを見ていきましょう。
M5.Lcd.setTextFont(int)
まずは「M5.Lcd.setTextFont」です。
これはテキストのフォントを選択するコマンドで、数値(1から8)で指定します。
値 | |
1 | Adafruit 8ピクセルASCIIフォント |
2 | 16ピクセルASCIIフォント |
3 | 未設定 |
4 | 26ピクセルASCIIフォント |
5 | 未設定 |
6 | 26ピクセル数字フォント |
7 | 48ピクセル7セグ風フォント |
8 | 75ピクセル数字フォント |
つまり「M5.Lcd.setTextFont(1);」としている初期状態では「Adafruit 8ピクセルASCIIフォント」というわけです。
そして「M5.Lcd.setTextFont(2);」の「16ピクセルASCIIフォント」。
「M5.Lcd.setTextFont(4);」の「26ピクセルASCIIフォント」。
6、7、8は数字フォント(多分)なので、「M5.Lcd.println(“Hello World!”);」を「M5.Lcd.println(“12345”);」に変えて試してみました。
「M5.Lcd.setTextFont(6);」の「26ピクセルASCIIフォント」。
「M5.Lcd.setTextFont(7);」の「48ピクセル7セグ風フォント」。
「M5.Lcd.setTextFont(8);」の「75ピクセル数字フォント」。
M5.Lcd.setTextSize(int)
次は「M5.Lcd.setTextSize」です。
これは単純にフォントサイズで、1から7で指定します。
これが「M5.Lcd.setTextSize(1);」。
「M5.Lcd.setTextSize(2);」。
「M5.Lcd.setTextSize(3);」。
「M5.Lcd.setTextSize(4);」。
「M5.Lcd.setTextSize(5);」。
「M5.Lcd.setTextSize(6);」。
「M5.Lcd.setTextSize(7);」。
M5.Lcd.setCursor(x, y)
次はカーソル位置を指定する「M5.Lcd.setCursor(x, y)」です。
カーソル位置だと分かりにくいですが、単純に開始位置だと思ってもらえればいいと思います。
基本の値としては「M5.Lcd.setCursor(35, 25);」、つまりX座標として35ピクセル、Y座標として25ピクセルとしていました。
「M5.Lcd.setCursor(0, 0);」とするとここに表示されます。
「M5.Lcd.setCursor(50, 50);」だとここです。
ちなみに最後にもう一つ数字を加えて「M5.Lcd.setCursor(x, y, fontsize)」というようにフォントサイズも同時に指定することもできるようですが、私が試したところfontsizeが3以上では画面に何も表示されなくなってしまいました。
この理由は分かりませんが、フォントサイズを変更するのに「M5.Lcd.setTextSize」がありますし、無理して「M5.Lcd.setCursor(x, y, fontsize)」を使う必要はないかなと思います。
M5.Lcd.setTextColor(color)
「M5.Lcd.setTextColor」はフォントの色です。
基本の形としては「M5.Lcd.setTextColor(TFT_WHITE);」、つまり白色を指定しているので、このような出力になります。
色の指定の仕方ですが、前回お話ししたように16ビットカラーコードで指定します。
またいくつかの色に関しては既に定義されているので、白なら「TFT_WHITE」、赤なら「TFT_RED」、緑なら「TFT_GREEN」と指定することも可能です。
ということで「M5.Lcd.setTextColor(TFT_RED);」だとこんな感じです。
また「M5.Lcd.setTextColor(TFT_GREEN);」だとこんな感じです。
また「「M5.Lcd.setTextColor(TFT_WHITE, TFT_RED);」」のようにもう一つ色を設定すると、その文字の背景色になります。
これでだいぶ文字の表示の扱いができるようになってきました。
しかし実は文字列を表示するコマンド「M5.Lcd.print」、「M5.Lcd.printf」、「M5.Lcd.println」を飛ばしています。
次回はこの3つの文字列の表示方法を比較していきたいと思います。
ではでは今回はこんな感じで。
コメント