スクリーンの解像度は 横320 x 高さ240 で、左上が原点(0, 0)です。
色コードはあらかじめ定義があり、これらを利用することができます。
色定義 | 中身 | 説明 | R | G | B |
---|---|---|---|---|---|
TFT_BLACK | 0x0000 | 黒 | 0 | 0 | 0 |
TFT_NAVY | 0x000F | ネイビー | 0 | 0 | 128 |
TFT_DARKGREEN | 0x03E0 | 濃い緑 | 0 | 128 | 0 |
TFT_MAROON | 0x7800 | マロン | 128 | 0 | 0 |
TFT_PURPLE | 0x780F | パープル | 128 | 0 | 128 |
TFT_OLIVE | 0x7BE0 | オリーブ | 128 | 128 | 0 |
TFT_LIGHTGREY | 0xC618 | 薄い灰色 | 192 | 192 | 192 |
TFT_DARKGREY | 0x7BEF | 濃い灰色 | 128 | 128 | 128 |
TFT_BLUE | 0x001F | 青 | 0 | 0 | 255 |
TFT_GREENYELLOW | 0xB7E0 | 黄緑 | 180 | 255 | 0 |
TFT_GREEN | 0x07E0 | 緑 | 0 | 255 | 0 |
TFT_YELLOW | 0xFFE0 | 黄色 | 255 | 255 | 0 |
TFT_ORANGE | 0xFDA0 | オレンジ | 255 | 180 | 0 |
TFT_PINK | 0xFC9F | ピンク | 255 | 255 | 16 |
TFT_CYAN | 0x07FF | シアン | 0 | 255 | 255 |
TFT_DARKCYAN | 0x03EF | 濃いシアン | 0 | 128 | 128 |
TFT_RED | 0xF800 | 赤 | 255 | 0 | 0 |
TFT_MAGENTA | 0xF81F | マゼンダ | 255 | 0 | 255 |
TFT_WHITE | 0xFFFF | 白 | 255 | 255 | 255 |
機能:
使用できるように初期化を行います。
構文:
begin();
引数:
なし
戻り値:
なし
情報:
1)M5.begin( )でLCDの初期化を行わない場合は、ディスプレイを使う前にこの関数を呼んでください。
機能:
ディスプレイを省エネモードに移行させます
構文:
sleep();
引数:
なし
戻り値:
なし
情報:
1)スリープを解除するには、wakeup()関数を呼んでください。
2)M5StackのLCDバックライトは別に制御しているため、必要に応じてsetBrightness( )関数で調整してください。
使用例:
#include <M5Stack.h>
M5.Lcd.sleep();
M5.Lcd.setBrightness(0);
機能:
ディスプレイを省エネモードから復帰させます
構文:
wakeup();
引数:
なし
戻り値:
なし
情報:
1)M5StackのLCDバックライトは別に制御しているため、必要に応じてsetBrightness( )関数で調整してください。
使用例:
#include <M5Stack.h>
M5.Lcd.wakeup();
M5.Lcd.setBrightness(200);
機能:
ディスプレイのバックライトを調整します。
構文:
setBrightness(uint8_t brightness);
引数:
引数 | 型 | 説明 |
---|---|---|
brightness | uint8_t | 明るさ(0:消灯~255:全灯) |
戻り値:
なし
情報:
1)バックライトはPWM(44.1KHz)で制御されています。
2)バックライトを多用するとバッテリー消費に直接的な影響があります。
使用例:
#include <M5Stack.h>
M5.Lcd.setBrightness(200);
機能:
進捗を表すバーを表示します。
構文:
progressBar(int x, int y, int w, int h, uint8_t val);
引数:
引数 | 型 | 説明 |
---|---|---|
x | int | 座標X(左上) |
y | int | 座標Y(左上) |
w | int | 幅 (px) |
h | int | 高さ(px) |
val | uint8_t | 進捗(0-100%) |
戻り値:
なし
情報:
1)色は青色(0x09F1)で表現されます。
2)追加分しか描画しないため、あらかじめ背景を消しておいてください。
使用例:
#include <M5Stack.h>
M5.Lcd.fillRect(0,0,240,20,0);
M5.Lcd.progressBar(0,0,240,20, 20);
機能:
QRコードを生成します。
構文:
qrcode(const char *string, uint16_t x, uint16_t y, uint8_t width, uint8_t version);
qrcode(const String &string, uint16_t x, uint16_t y, uint8_t width, uint8_t version);
引数:
引数 | 型 | 説明 |
---|---|---|
val | string / String& | QRに埋め込む文字列 |
x | uint16_t | 座標X(左上) |
y | uint16_t | 座標Y(左上) |
width | uint8_t | 幅 (px) |
version | uint8_t | QRコードバージョン |
戻り値:
なし
情報:
1)文字数に合わせて適切なQRコードバージョンを指示してください。
使用例:
#include <M5Stack.h>
M5.Lcd.qrcode("http://www.m5stack.com",50,10,220,6);
機能:
ビットマップを描画します。
構文:
drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data);
drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint16_t *data);
drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data, uint16_t transparent);
drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint8_t *data);
drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint8_t *data);
引数:
引数 | 型 | 説明 |
---|---|---|
x0 | int16_t | 座標X(左上) |
y0 | int16_t | 座標Y(左上) |
w | int16_t | 幅 (px) |
h | int16_t | 高さ(px) |
data | uint16_t* / uint8_t* | 画像データ |
transparent | uint16_t | 透明色コード |
戻り値:
なし
情報:
1)カラーコードは上位より赤5ビット、緑6ビット、青5ビットの計16ビットであらわされます。
使用例:
サンプルスケッチを参照:M5Stack->Advanced->drawXBitmap
機能:
ファイルからビットマップを読み込み、描画します。
構文:
drawBmpFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y);
引数:
引数 | 型 | 説明 |
---|---|---|
fs | fs::FS | ファイルデバイス |
path | const char * | ファイル名 |
x | int16_t | 座標X(左上) |
y | int16_t | 座標Y(左上) |
戻り値:
なし
情報:
1)サイズ、ビット数によっては展開できないことがあります。
使用例:
#include <M5Stack.h>
M5.Lcd.drawBmpFile(SD, "/p2.bmp",0,0);
機能:
メモリからJPEGデータを読み込み、描画します。
構文:
void drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE);
引数:
引数 | 型 | 説明 |
---|---|---|
jpg_data | uint8_t * | 格納場所の先頭 |
jpg_len | size_t | データ長 |
x | uint16_t | 座標X(左上) |
y | uint16_t | 座標Y(左上) |
maxWidth | uint16_t | 最大幅 (px) |
maxHeight | uint16_t | 最大高さ (px) |
offX | uint16_t | オフセットX (px) |
offY | uint16_t | オフセットY (px) |
scale | jpeg_div_t | 座標Y(左上) |
スケール(jpeg_div_t)引数:
名前 | 説明 |
---|---|
JPEG_DIV_NONE | 等倍 |
JPEG_DIV_2 | 1/2 |
JPEG_DIV_4 | 1/4 |
JPEG_DIV_8 | 1/8 |
JPEG_DIV_MAX | 最大 |
戻り値:
なし
情報:
1)サイズ、ビット数、フォーマット(プログレッシブ等)によっては展開できないことがあります。
機能:
ファイルからJPEGデータを読み込み、描画します。
構文:
void drawJpgFile(fs::FS &fs, const char *path, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE);
引数:
引数 | 型 | 説明 |
---|---|---|
fs | fs::FS & | ファイルデバイス |
path | const char * | ファイルがある場所 |
x | uint16_t | 座標X(左上) |
y | uint16_t | 座標Y(左上) |
maxWidth | uint16_t | 最大幅 (px) |
maxHeight | uint16_t | 最大高さ (px) |
offX | uint16_t | オフセットX (px) |
offY | uint16_t | オフセットY (px) |
scale | jpeg_div_t | スケール |
スケール(jpeg_div_t)引数:
名前 | 説明 |
---|---|
JPEG_DIV_NONE | 等倍 |
JPEG_DIV_2 | 1/2 |
JPEG_DIV_4 | 1/4 |
JPEG_DIV_8 | 1/8 |
JPEG_DIV_MAX | 最大 |
戻り値:
なし
情報:
1)サイズ、フォーマット(プログレッシブ等)によっては展開できないことがあります。
機能:
引数で指定した色で画面を塗りつぶします。
構文:
fillScreen(uint16_t color);
引数:
引数 | 説明 | 型 |
---|---|---|
color | 塗りつぶしの色 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.fillScreen(RED);
機能:
文字の色や文字の背景色を引数で指定した色に変更します。
構文:
setTextColor(uint16_t color, [uint16_t backgroundcolor]);
引数:
引数 | 説明 | 型 |
---|---|---|
color | テキストの色 | uint16_t |
backgroundcolor | テキストの背景色。省略可能。 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.setTextColor(RED);
機能:
カーソルの位置を設定します。
構文:
setCursor(uint16_t x, uint16_t y);
引数 | 説明 | 型 |
---|---|---|
x | x位置 | uint16_t |
y | y位置 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.setCursor(100, 100);
M5.Lcd.print("Hello");
機能:
描画する文字サイズを指定します
構文:
setTextSize(uint8_t size);
引数 | 説明 | 型 |
---|
| size | 文字のサイズ(1-7) | uint8_t |
機能:
指定した位置に指定色のピクセルを描画します。
構文:
drawPixel(int16_t x, int16_t y, [uint16_t color]);
引数:
引数 | 説明 | 型 |
---|---|---|
x | x位置 | int16_t |
y | y位置 | int16_t |
color | ピクセルの色。省略可能。 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.drawPixel(22, 22, RED);
機能:
指定した始点から終点まで指定色の直線を描画します。
構文:
drawChar(int32_t x, int32_t y, uint16_t c, uint32_t color, uint32_t bg, uint8_t size);
引数:
引数 | 型 | 説明 |
---|---|---|
x | int32_t | 座標X(左上) |
y | int32_t | 座標Y(左上) |
c | uint16_t | 文字コード |
color | uint32_t | 描画色 |
bg | uint32_t | 背景色 |
size | uint8_t | 文字サイズ |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.drawChar(0,0,'A',TFT_GREEN,TFT_BLACK,3);
機能:
XからYまで垂直に線を引きます。
構文:
drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color);
引数:
引数 | 型 | 説明 |
---|---|---|
x | int16_t | 始点のx位置 |
y | int16_t | 始点のy位置 |
h | int16_t | 線の長さ |
color | uint32_t | 線の色(省略可能) |
使用例:
#include <M5Stack.h>
M5.Lcd.drawFastHLine(0, 0, 12, TFT_GREEN);
機能:
XからYまで水平に線を引きます。
構文:
drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color);
引数:
引数 | 型 | 説明 |
---|---|---|
x | int16_t | 始点のx位置 |
y | int16_t | 始点のy位置 |
w | int16_t | 線の長さ |
color | uint32_t | 線の色(省略可能) |
使用例:
#include <M5Stack.h>
M5.Lcd.drawFastHLine(0, 0, 12, TFT_GREEN);
機能:
指定した始点から終点まで指定色の直線を描画します。
構文:
drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, [uint16_t color]);
引数:
引数 | 型 | 説明 |
---|---|---|
x0 | int16_t | 始点のx位置 |
y0 | int16_t | 始点のy位置 |
x1 | int16_t | 終点のx位置 |
y1 | int16_t | 終点のy位置 |
color | uint16_t | 線の色(省略可能) |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.drawLine(0, 0, 12, 12, WHITE);
機能:
指定した3点を結ぶ三角形を指定色で描画します。
構文:
drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, [uint16_t color]);
引数:
引数 | 説明 | 型 |
---|---|---|
x0 | 点0のx位置 | int16_t |
y0 | 点0のy位置 | int16_t |
x1 | 点1のx位置 | int16_t |
y1 | 点1のy位置 | int16_t |
x2 | 点2のx位置 | int16_t |
y2 | 点2のy位置 | int16_t |
color | 線の色。省略可能。 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.drawTriangle(22, 22, 69, 98, 51, 22, RED);
機能:
指定した3点を結ぶ三角形を指定色で塗りつぶして描画します。
構文:
fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, [uint16_t color]);
引数:
引数 | 説明 | 型 |
---|---|---|
x0 | 点0のx位置 | int16_t |
y0 | 点0のy位置 | int16_t |
x1 | 点1のx位置 | int16_t |
y1 | 点1のy位置 | int16_t |
x2 | 点2のx位置 | int16_t |
y2 | 点2のy位置 | int16_t |
color | 塗りつぶしの色。省略可能。 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.fillTriangle(22, 22, 69, 98, 51, 22, RED);
機能:
指定の点から指定の幅と高さの四角形を指定色で描画します。
構文:
drawRect(int16_t x, int16_t y, int16_t w, int16_t h, [uint16_t color]);
引数:
引数 | 説明 | 型 |
---|---|---|
x | 点のx位置 | int16_t |
y | 点のy位置 | int16_t |
w | 四角形の幅 | int16_t |
h | 四角形の高さ | int16_t |
color | 線の色。省略可能。 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.drawRect(180, 12, 122, 10, BLUE);
機能:
指定の左上の点(x,y)と幅と高さの四角形を指定色で塗りつぶして描画します。
構文:
fillRect(int16_t x, int16_t y, int16_t w, int16_t h, [uint16_t color]);
引数:
引数 | 説明 | 型 |
---|---|---|
x | 点のx位置 | int16_t |
y | 点のy位置 | int16_t |
w | 四角形の幅 | int16_t |
h | 四角形の高さ | int16_t |
color | 塗りつぶしの色。省略可能。 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.fillRect(180, 12, 122, 10, BLUE);
機能:
左上の点(x,y)と幅と高さを指定して、かど丸の四角形を描画します。
構文:
drawRoundRect(int16_t x, int16_t y, int16_t w, int16_t h, int16_t r, [uint16_t color]);
引数:
引数 | 説明 | 型 |
---|---|---|
x | 四角形の左上の頂点のx座標 | int16_t |
y | 四角形の左上の頂点のy座標 | int16_t |
w | 四角形の幅 | int16_t |
h | 四角形の高さ | int16_t |
r | コーナー半径 | int16_t |
color | 四角形の線の色。省略可能。 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.fillRoundRect(180, 70, 122, 10, 4, BLUE);
機能:
左上の点(x,y)と幅と高さを指定して、塗りつぶされた かど丸の四角形を描画します。
構文:
fillRoundRect(int16_t x, int16_t y, int16_t w, int16_t h, int16_t r, [uint16_t color]);
引数:
引数 | 説明 | 型 |
---|---|---|
x | 四角形の左上の頂点のx座標 | int16_t |
y | 四角形の左上の頂点のy座標 | int16_t |
w | 四角形の幅 | int16_t |
h | 四角形の高さ | int16_t |
r | コーナー半径 | int16_t |
color | 四角形の線の色。省略可能。 | uint16_t |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.fillRoundRect(180, 70, 122, 10, 4, BLUE);
機能:
左上の点(x,y)と幅と高さを指定して、楕円を描画します。
構文:
drawEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color);
引数:
引数 | 説明 | 型 |
---|---|---|
x0 | 楕円の中心X座標 | int16_t |
y0 | 楕円の中心Y座標 | int16_t |
rx | 円の横幅 | int16_t |
ry | 円の縦幅 | int16_t |
color | 円の色 | uint16_t |
使用例:
#include <M5Stack.h>
M5.Lcd.drawEllipse(100,100,20,30, TFT_GREEN);
機能:
左上の点(x,y)と幅と高さを指定して、塗りつぶされた楕円を描画します。
構文:
fillEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color);
引数:
引数 | 説明 | 型 |
---|---|---|
x0 | 楕円の中心X座標 | int16_t |
y0 | 楕円の中心Y座標 | int16_t |
rx | 円の横幅 | int16_t |
ry | 円の縦幅 | int16_t |
color | 円の色 | uint16_t |
使用例:
#include <M5Stack.h>
M5.Lcd.drawEllipse(100,100,20,30, TFT_GREEN);
機能:
関数で使用する色コード(rgb565)に変更します。
構文:
color565(uint8_t red, uint8_t green, uint8_t blue);
引数:
引数 | 説明 | 型 |
---|---|---|
red | 赤 | int8_t |
green | 緑 | int8_t |
blue | 青 | int8_t |
戻り値:
なし
使用例:
#include <M5Stack.h>
uint16_t colorvalue=0;
colorvalue=color565(255,255,255);
機能:
画面を回転させます。
構文:
setRotation(uint8_t r);
引数:
引数 | 型 | 説明 |
---|---|---|
r | uint8_t | 回転角 r (x 90°) |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.setRotation(1);
情報:
1)M5Stackのディスプレイ制御は90°回転された制御になっており、M5.Lcd.begin()の中で setRotation(1)が実行されています。
2)0~3 は回転、4~7 は画面反転し、回転します。
機能:
画面をネガポジ反転させます。
構文:
invertDisplay(boolean i);
引数:
引数 | 型 | 説明 |
---|---|---|
i | boolean | 反転するなら true |
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.invertDisplay(true);
機能:
独自のフォントを読み込みます
構文:
loadFont(String fontName, fs::FS &ffs);
引数:
| 引数 | 型 || 説明 | --- | --- | -- | | fontName | String | フォントファイル名 | | ffs | fs::FS | ファイルデバイス |
使用例:
#include <M5Stack.h>
M5.Lcd.loadFont("filename", SD);
機能:
独自のフォントの使用を終えます
構文:
unloadFont();
引数:
なし
使用例:
#include <M5Stack.h>
M5.Lcd.unloadFont();
機能:
独自のフォントを読み込んでいるかを返します
構文:
fontsLoaded();
引数:
なし
戻り値:
値 | 説明 |
---|---|
true | 読み込み済み |
false | 未読み込み |
使用例:
#include <M5Stack.h>
if(M5.Lcd.unloadFont()){
M5.Lcd.unloadFont();
}
機能:
文字を描画します。
構文:
drawString(const char *string, int32_t poX, int32_t poY, uint8_t font);
drawString(const char *string, int32_t poX, int32_t poY);
drawString(const String& string, int32_t poX, int32_t poY, uint8_t font);
drawString(const String& string, int32_t poX, int32_t poY);
引数:
引数 | 型 | 説明 |
---|---|---|
poX | int32_t | 座標X(左上) |
poY | int32_t | 座標Y(左上) |
string | const char * / String & | 文字列 |
font | uint8_t | 読み込んだフォントを使うなら 1 |
戻り値:
なし
機能:
指定の文字列を描画します。
構文:
printf("書式指定",arg1...);
情報:
書式指定は通常のC言語フォーマットに沿った指定ができます。
使用例:
#include <M5Stack.h>
int a=1;
M5.begin();
M5.Lcd.printf("A=%d",a);
機能:
指定の文字列を描画します。
構文:
print("表示する文字列");
使用例:
#include <M5Stack.h>
M5.begin();
M5.Lcd.print("this is a print text function");
#include <M5Stack.h>
M5.begin();
M5.Lcd.fillScreen(BLACK) #set the default background color
M5.Lcd.drawLine(0, 0, WHITE);
M5.Lcd.drawTriangle(22, 22, 69, 98, 51, 22, RED);
M5.Lcd.fillTriangle(122, 122, 169, 198, 151, 182, RED);
M5.Lcd.drawRect(180, 12, 122, 10, BLUE);
M5.Lcd.fillRect(180, 30, 122, 10, BLUE);
M5.Lcd.drawRoundRect(180, 50, 122, 10, 4, BLUE);
M5.Lcd.fillRoundRect(180, 70, 122, 10, 4, BLUE);
M5.Lcd.print("this is a print text function");