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に目と口がつくとかわいいですね。
コメント