M5GFX は、M5Stack製品でディスプレイデバイスの操作を行うためのライブラリです。ユーザーは本ライブラリのAPIを呼び出して、さまざまな表示効果やタッチ操作効果などを実現できます。
各デバイスごとにインクルードするファイルが異なります。M5Stackデバイスで主に使用するヘッダファイルは M5GFX.h
です。他のデバイス(例:Unit LCD)は M5UnitLCD.h
を使用し、Unit OLED や Atom Display も同様です。
対応デバイス:
M5Stack コントローラー,例:M5Fire、M5Core2、M5Tough、M5StickC、M5Paper、M5Tab など。
コンストラクタのプロトタイプ:
M5GFX(void)
機能説明:
サンプルプログラム:
#include <M5GFX.h>
M5GFX display;
void setup() {
display.begin();
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.drawCenterString("M5Stack", x, y);
}
void loop() {
}
対応デバイス:
M5Stack Unit LCD
コンストラクタのプロトタイプ:
M5UnitLCD( uint8_t pin_sda = M5UNITLCD_SDA, uint8_t pin_scl = M5UNITLCD_SCL, uint32_t i2c_freq = M5UNITLCD_FREQ,
int8_t i2c_port = -1, uint8_t i2c_addr = 0x3E )
機能説明:
引数:
i2c_port
および i2c_addr
は引数を渡さなくても自動的に PORT.A および 0x3E に設定されます。関数原型:
void init( uint8_t pin_sda, uint8_t pin_scl, uint32_t i2c_freq = M5UNITLCD_FREQ, int8_t i2c_port = -1, uint8_t i2c_addr = 0x3E )
機能説明:
引数:
関数原型:
setup(uint8_t pin_sda = M5UNITLCD_SDA, uint8_t pin_scl = M5UNITLCD_SCL, uint32_t i2c_freq = M5UNITLCD_FREQ,
int8_t i2c_port = -1, uint8_t i2c_addr = 0x3E)
機能説明:
引数:
サンプルプログラム:
#include <M5UnitLCD.h>
M5UnitLCD display;
void setup() {
display.init( 21, 22, 400000 );
display.setup( 21, 22, 400000 );
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.drawCenterString("M5Stack", x, y);
}
void loop() {
}
対応デバイス:
M5Stack Unit OLED
コンストラクタのプロトタイプ:
M5UnitOLED( uint8_t pin_sda = M5UNITOLED_SDA, uint8_t pin_scl = M5UNITOLED_SCL, uint32_t i2c_freq = M5UNITOLED_FREQ,
int8_t i2c_port = -1, uint8_t i2c_addr = 0x3C)
機能説明:
引数:
i2c_port
および i2c_addr
は引数を渡さなくても自動的に PORT.A および 0x3C に設定されます。関数原型:
void init( uint8_t pin_sda, uint8_t pin_scl, uint32_t i2c_freq = M5UNITOLED_FREQ, int8_t i2c_port = -1, uint8_t i2c_addr = 0x3C )
機能説明:
引数:
関数原型:
setup(uint8_t pin_sda = M5UNITLCD_SDA, uint8_t pin_scl = M5UNITLCD_SCL, uint32_t i2c_freq = M5UNITLCD_FREQ,
int8_t i2c_port = -1, uint8_t i2c_addr = 0x3C)
機能説明:
引数:
サンプルプログラム:
#include <M5UnitOLED.h>
M5UnitOLED display;
void setup() {
display.init( 21, 22, 400000 );
display.setup( 21, 22, 400000 );
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.drawCenterString("M5Stack", x, y);
}
void loop() {
}
対応デバイス:
M5Stack Atom Display、AtomDisplayLite
コンストラクタのプロトタイプ:
M5AtomDisplay( unit16_t logical_width = 1280, uint16_t logical_height = 720, float refresh_rate = 0.0f, uint16_t output_width = 0, uint16_t output_height = 0,
uint_fast8_t scale_w = 0, uint_fast8_t scale_h = 0, uint32_t pixel_clock = 74250000)
機能説明:
引数:
関数原型:
bool setResolution(uint16_t logical_width = 0, uint16_t logical_height = 0, float refresh_rate = 0.0f, uint16_t output_width = 0, uint16_t output_height = 0,
uint_fast8_t scale_w = 0, uint_fast8_t scale_h = 0, uint32_t pixel_clock = 74250000)
機能説明:
引数:
サンプルプログラム:
#include <M5AtomDisplay.h>
M5AtomDisplay display( 640, 480, 60 );
void setup() {
display.setResolution( 320, 240, 60 );
uint16_t x = display.width() / 2;
uint16_t y = display.height() / 2;
display.drawCenterString("M5Stack", x, y);
}
void loop() {
}
M5GFX の一部のAPIを使用する際は、M5GFX.h(またはM5UnitLCD.h、M5UnitOLED.h、M5AtomDisplay.h)に加えて、必ず
他の対応するヘッダファイルもインクルードする必要があります。そうしないと正常に呼び出すことができません。
該当APIおよびヘッダファイルは以下の表の通りです:
API | 必要なヘッダファイル |
---|---|
drawBmpFile | SD.h or SPIFFS.h |
drawJpgFile | SD.h or SPIFFS.h |
drawPngFile | SD.h or SPIFFS.h |
drawQoiFile | SD.h or SPIFFS.h |
drawBmpUrl | HTTPClient.h |
drawJpgUrl | HTTPClient.h |
drawPngUrl | HTTPClient.h |
drawQoiUrl | HTTPClient.h |
SD.h
または SPIFFS.h
のヘッダファイルを使い分けてください。