M5StickC資料

デジタルグッズ

ちゃんとプログラミングするためにスペックを調べてみる。(スイッチサイエンスのサイトの確認)

CPU ESP32 240MHzデュアルコア Tensilica LX6 (速度は変えられる)
4MBフラッシュ
520K RAM
6軸IMU(MPU6886)
ホールセンサ(磁気)
LED赤ひとつ
IRLEDひとつ
マイク
2ボタンと1リセットボタン
80mAhバッテリー
802.11 b/g/n wifi
BLEとclassic Bluetooth
5V USB type-C 電源前提
0.96インチ 80×160ドット TFTパネル
拡張ソケット
Groveポート

ピンのレイアウト

赤LED & 赤外線送信 & ボタン A & ボタン B

ESP32 chip GPIO10 GPIO9 GPIO37 GPIO39
赤 LED LED pin
赤外線LED transmitter pin
ボタン A(でかいやつ) button pin
ボタン B(右横) button pin

TFT Screen

Resolution: 80 * 160

ESP32 chip GPIO15 GPIO13 GPIO23 GPIO18 GPIO5
TFT Screen TFT_MOSI TFT_CLK TFT_DC TFT_RST TFT_CS

GROVE用プラグ

ESP32 chip GPIO33 GPIO32 5V GND
GROVE interface SCL SDA 5V GND

マイク

ESP32 chip GPIO0 GPIO34
Microphone SCL SDA

6軸センサ & 電力管理IC

ESP32 chip GPIO22 GPIO21
6軸センサ SCL SDA
電力管理IC SCL SDA

開発環境ビルド方法
M5StickCのポートなど概要
M5StickCの詳細ドキュメント

スイッチサイエンスのブログ(転送レートの記事は古く必要ない、6軸センサーの向き、LCDの使い方、CPUクロックの下げ方は参考になりんす)

M5StickCの非公式リファレンス(開発者様、ありがとうございます)

早わかりの試み(6軸センサーサンプルプログラムに解説リンクをつけてみる。もっとも、Cがわかりません、じゃ役に立たないけど)

#include 

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.Sh200Q.Init();
  M5.Lcd.setRotation(3);
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextSize(1);
  M5.Lcd.setCursor(0, 15);
  M5.Lcd.println("  X       Y       Z");
}

void loop() {

  M5.Sh200Q.getGyroData(&gyroX,&gyroY,&gyroZ);
  M5.Sh200Q.getAccelData(&accX,&accY,&accZ);
  
  M5.Lcd.setCursor(0, 30);
  M5.Lcd.printf("%6.2f  %6.2f  %6.2f      ", gyroX, gyroY, gyroZ);
  M5.Lcd.setCursor(140, 30);
  M5.Lcd.print("o/s");
  M5.Lcd.setCursor(0, 45);
  M5.Lcd.printf(" %5.2f   %5.2f   %5.2f   ", accX, accY, accZ);
  M5.Lcd.setCursor(140, 45);
  M5.Lcd.print("G");
  delay(1000);
}

コメント