ちゃんとプログラミングするためにスペックを調べてみる。(スイッチサイエンスのサイトの確認)
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がわかりません、じゃ役に立たないけど)
#includefloat 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); }