M5Stack Core2のUIテスト用にボタンとテキスト表示を行います。開発環境は「PlatformIO」を使用します。

UIテストアプリの作成

UIテストアプリ「ButtonTest」を作成します。

main.cpp

#include <M5Core2.h>

// M5Core2は解像度が320x240
ButtonColors cl_on = {CYAN, WHITE, WHITE};      // タップした時の色 (背景, 文字列, ボーダー)
ButtonColors cl_off = {DARKCYAN, WHITE, WHITE}; // 指を離した時の色 (背景, 文字列, ボーダー)
// ボタン定義名( X軸, Y軸, 横幅, 高さ, 回転, ボタンのラベル, 指を離した時の色指定, タッチした時の色指定)
Button btn_open(15, 130, 140, 30, false, "Open", cl_off, cl_on);
Button btn_close(15, 170, 140, 30, false, "Close", cl_off, cl_on);
Button btn_select(165, 130, 140, 30, false, "Select", cl_off, cl_on);
Button btn_clear(165, 170, 140, 30, false, "Clear", cl_off, cl_on);
Button btn_split(165, 210, 140, 30, false, "Split", cl_off, cl_on);

uint16_t backcolor = M5.Lcd.color565(200, 255, 255);

void event_btn_open(Event &e)
{
  M5.Lcd.setTextFont(4);

  M5.Lcd.fillRect(2, 2 + 27 * 3, 320, 27, backcolor);
  M5.Lcd.setCursor(2 + 160 * 0, 2 + 27 * 3);
  M5.Lcd.printf("Pressed Open");
}

void event_btn_close(Event &e)
{
  M5.Lcd.setTextFont(4);

  M5.Lcd.fillRect(2, 2 + 27 * 3, 320, 27, backcolor);
  M5.Lcd.setCursor(2 + 160 * 0, 2 + 27 * 3);
  M5.Lcd.printf("Pressed Close");
}

void event_btn_select(Event &e)
{
  M5.Lcd.setTextFont(4);

  M5.Lcd.fillRect(2, 2 + 27 * 3, 320, 27, backcolor);
  M5.Lcd.setCursor(2 + 160 * 0, 2 + 27 * 3);
  M5.Lcd.printf("Pressed Select");
}

void event_btn_clear(Event &e)
{
  M5.Lcd.setTextFont(4);

  M5.Lcd.fillRect(2, 2 + 27 * 3, 320, 27, backcolor);
  M5.Lcd.setCursor(2 + 160 * 0, 2 + 27 * 3);
  M5.Lcd.printf("Pressed Clear");
}

void event_btn_split(Event &e)
{
  M5.Lcd.setTextFont(4);

  M5.Lcd.fillRect(2, 2 + 27 * 3, 320, 27, backcolor);
  M5.Lcd.setCursor(2 + 160 * 0, 2 + 27 * 3);
  M5.Lcd.printf("Pressed Split");
}

void setup()
{
  // put your setup code here, to run once:
  M5.begin();
  M5.Lcd.clear(BLACK);
  M5.Lcd.fillRect(0, 0, 320, 115, backcolor);

  // Setup Buttons
  M5.Buttons.setFont(FSSB12);
  btn_open.setFont(FSSB12);
  btn_open.addHandler(event_btn_open, E_RELEASE);
  btn_close.setFont(FSSB12);
  btn_close.addHandler(event_btn_close, E_RELEASE);
  btn_select.setFont(FSSB12);
  btn_select.addHandler(event_btn_select, E_RELEASE);
  btn_clear.setFont(FSSB12);
  btn_clear.addHandler(event_btn_clear, E_RELEASE);
  btn_split.setFont(FSSB12);
  btn_split.addHandler(event_btn_split, E_RELEASE);
  M5.Buttons.draw();

  M5.Lcd.setTextColor(BLACK);
  M5.Lcd.setTextFont(4);
  M5.Lcd.setTextSize(1);

  for (int i = 0; i < 4; i++)
  {
    M5.Lcd.setCursor(2 + 160 * 0, 2 + 27 * i);
    M5.Lcd.printf("0123456789012345678901");
  }
}

void loop()
{
  // put your main code here, to run repeatedly:
  M5.update();
}

UIテストアプリの実行

UIテストアプリ「ButtonTest」を実行します。次のようにテキストとボタンが表示されます。