M5Stackで顔を表示するプログラムを作ってみた

M5Stack

M5Stackで顔を表示するプログラムを作ってみました。

使用したもの:M5Stack Basic V2.7、Arduino IDE 2.2.1(Windows11)

※左下に何かつながっていますが今回は使っていません。あと、顔は動きません。

ボタンを押したところに線が出ます。

Arduinoのinoファイルは以下のようになりました。

#include <M5Stack.h>
TFT_eSprite sprite = TFT_eSprite(&M5.Lcd);
void setup() {
  M5.begin();
  dacWrite(25, 0);
}

void loop() {
  M5.update();
  sprite.setColorDepth(8);
  sprite.createSprite(M5.Lcd.width(),M5.Lcd.height());
  sprite.setCursor(0,0);  
  sprite.printf("M5Stack Basic V2.7");
  sprite.setCursor(60,230);
  sprite.printf("A");
  sprite.setCursor(155,230);
  sprite.printf("B");
  sprite.setCursor(250,230);
  sprite.printf("C");    
  //eye
  sprite.drawLine(104, 101, 104, 109, 0xFFFFFF);
  sprite.drawLine(105, 100, 105, 110, 0xFFFFFF);
  sprite.drawLine(106, 101, 106, 109, 0xFFFFFF);
  sprite.drawLine(204, 101, 204, 109, 0xFFFFFF);  
  sprite.drawLine(205, 100, 205, 110, 0xFFFFFF);  
  sprite.drawLine(206, 101, 206, 109, 0xFFFFFF);
  //mouth
  sprite.drawLine(175, 168, 185, 168, 0xFFFFFF);   
  sprite.drawLine(135, 169, 185, 169, 0xFFFFFF); 
  sprite.drawLine(125, 170, 185, 170, 0xFFFFFF); 
  sprite.drawLine(125, 171, 155, 171, 0xFFFFFF); 
  sprite.drawLine(125, 172, 135, 172, 0xFFFFFF);   

  if(M5.BtnA.isPressed()){
    sprite.drawLine(43, 210, 53, 220, 0xFFFFFF);   
    sprite.drawLine(63, 210, 63, 220, 0xFFFFFF); 
    sprite.drawLine(83, 210, 73, 220, 0xFFFFFF);    
  }
  if(M5.BtnB.isPressed()){
    sprite.drawLine(138, 210, 148, 220, 0xFFFFFF);   
    sprite.drawLine(158, 210, 158, 220, 0xFFFFFF); 
    sprite.drawLine(178, 210, 168, 220, 0xFFFFFF);    
  }
  if(M5.BtnC.isPressed()){
    sprite.drawLine(233, 210, 243, 220, 0xFFFFFF);   
    sprite.drawLine(253, 210, 253, 220, 0xFFFFFF); 
    sprite.drawLine(273, 210, 263, 220, 0xFFFFFF);    
  }    
  sprite.pushSprite(0,0);
}

ボード設定は、「M5Stack-Core-ESP32」です。

M5Stackに目と口がつくとかわいいですね。

コメント

タイトルとURLをコピーしました