<aside> 🚨

Arduino IDE、M5Core2ライブラリを授業で取り扱わない流れのため、見たい人だけ見てください

</aside>

M5Stack 入門

M5Stack 概要

https://m5stack.com/

M5Stack Core2

本授業ではM5Stack Core2を使用する

image.png

https://www.switch-science.com/products/6530


M5Stack プログラミング

公式ドキュメント, GitHub, 他Webサイト, 下に記載されている例を参考に作ってみよう!

https://docs.m5stack.com/en/arduino/arduino_ide

https://github.com/m5stack/M5Core2

https://knt60345blog.com/m5stack_api_list/

https://lang-ship.com/blog/work/m5stickc-i2c/

m5-docs (m5stack.com)

https://qiita.com/ryouta_horiuchi/items/ff31253c59f7006f7937

https://qiita.com/Syake0_/items/8367a4f35893b69076b7

https://zenn.dev/ijiwarunahello/articles/3cad5ead2162c6


共通

#include <M5Unified.h>

void setup() {
	auto cfg = M5.config():
;
	M5.begin(cfg);
}

void loop() {
	M5.Lcd.print("Hello World");
}

キーワード

LCD

#include <M5Core2.h>

void setup() {
	M5.begin();
}

void loop() {
	M5.Lcd.fillScreen(BLACK);
	M5.Lcd.setCursor(0, 0);
	
	for (int i = 0; i < 10; i++) {
		M5.Lcd.print("Hello ");
		M5.Lcd.println("World");
		delay(100);
	}
	delay(100);
}

キーワード


Button

#include <M5Core2.h>

void setup() {
	M5.begin();
}

void loop() {
	M5.update();
	
	if (M5.BtnA.wasPressed()) {
		M5.Lcd.print("A");
	}
	
	if (M5.BtnB.wasPressed()) {
		M5.Lcd.print("B");
	}
	
	if (M5.BtnC.wasPressed()) {
		M5.Lcd.print("C");
	}
}

キーワード

IMU(加速度センサジャイロセンサ)

#include <M5Core2.h>

float accX = 0.0F;
float accY = 0.0F;
float accZ = 0.0F;

float gyroX = 0.0F;
float gyroY = 0.0F;
float gyroZ = 0.0F;

void setup() {
	M5.begin();
	M5.IMU.Init();
}

void loop() {
	M5.Lcd.fillScreen(BLACK);
	M5.Lcd.setCursor(0, 0);
	
	M5.IMU.getAccelData(&accX, &accY, &accZ);
	M5.IMU.getGyroData(&gyroX, &gyroY, &gyroZ);
	
	M5.Lcd.printf("accel: %f, %f, %f\\n", accX, accY, accZ);
	M5.Lcd.printf("gyro: %f, %f, %f\\n", gyroX, gyroY, gyroZ);
	
	delay(1000);
}

キーワード