M5Unified入門 その2 BASIC / GRAY / M5GO / FIRE / CORE2 / CORE2 for AWS

概要

前回は全体的な機能を確認しましたが、CoreとCore2系のボードでの使い方の確認をしてみたいと思います。細かい制御方法は前回のページにまとめたいと思います。

機能一覧

NAMEBASICGRAYM5GOFIRECORE2CORE2 for AWS
MCUESP32ESP32ESP32ESP32ESP32ESP32
FLASH16MB16MB16MB16MB16MB16MB
PSRAM8MB8MB8MB
BATTERY110mAh110mAh500mAh500mAh390mAh500mAh
LCDサイズ2インチ2インチ2インチ2インチ2インチ2インチ
LCD縦240240240240240240
LCD横320320320320320320
TOUCH
LED11
RGB LED101010
MICADCADCADCADC
SPKDACDACDACDACI2SI2S
BUTTON333333
IMU
PMU
USB CHIPCP2104 / CH9102CP2104 / CH9102CP2104 / CH9102CH9102CP2104 / CH9102CP2104 / CH9102
RTC
IR
バイブ
SD
PortA
(21, 22)

(21, 22)

(21, 22)

(21, 22)

(32, 33)

(32, 33)
PortB
(26, 36)

(26, 36)

(26, 36)
PortC
(17, 16)

(17, 16)

(14, 13)

上記がざっくりした機能差になります。

シリーズ名

BASICとGRAY、M5GO、FIREをCore(Core1)、CORE2とCORE2 for AWSがCore2と呼ばれることが多いです。Core1の特徴としては物理ボタンが3つついていて、Core2はタッチパネルに変更されており、仮想ボタンと呼ばれています。細かい差は機能別に解説していきます。

MCU

Core1もCore2も無印ESP32を搭載しており、差はありません。Core3から新しいMCUに変わって少し高速化しています。

FLASH

すべて16MBですが、初期モデルのBASICなどでは4MBです。とはいえあまり現存していないはずですのですべての16MB前提で問題はないはずです。M5StickCやATOM系の小さいボードは4MB搭載なので注意してください。

PSRAM

PSRAMはSPI接続の外部メモリで、FIREとCore2世代のボードにのみ搭載しています。容量が8MBになっていますが、実際に使えるのは4MBまでとなります。SPI接続のため、本体メモリよりはアクセス速度がかなり遅くなります。とはいえ、メモリ量が増えるとできる幅が広がります。無効にすることでCore1とCore2のすべてのボードで共通プログラムを動かすことなども可能です。

BATTERY

微妙に搭載量が違いますが、すべてのボードでバッテリーを搭載しています。M5GOとFIRE、Core2 for AWSはGroveポートが3つあつベースを搭載しているので、バッテリー量も大きいです。

LCDサイズ/LCD縦/LCD横

すべて共通の2インチで縦240ドットの横320ドットになります。画面制御はすべて共通化することが可能です。世代によって若干明るさや綺麗さが変わりますが、概ね最近のものを使う限りはあまり差はありません。

TOUCH

タッチパネルはCore2とCore2 for AWSのみ搭載しています。Core2とCore2 for AWSは色が違うますが、画面部分はまったく同じハードウエアで、下につけているボトム違いになります。Core2 for AWSはセキュリティーのための特殊チップを搭載しているのですが、AWS用途以外ではそのチップを使わないため、別売りのM5GO Bottom2を付け替えることでバッテリーやポートを増設することができます。

M5GO Bottom2 - M5Stack Core2用バッテリーボトム
M5Stack Core2用に設計されたボトムパーツです。6軸ジャイロ/加速度センサー(MPU6886)、デジタルマイク(SPM1423)、500 mAhリポバッテリーを内蔵しています。

LED

こちらもCore2とCore2 for AWSは緑のLEDを搭載しており、任意に光らせることが可能です。

RGB LED

M5GOとFIRE、Core2 for AWSはバッテリーが多いのとGroveポートが多いほかにRGB LEDを搭載しています。左右にバー状に5個あり全部で10個になります。普通にGPIOに接続されていますのでFastLEDなどで制御可能です。

MIC

M5GOとFIRE、Core2、Core2 for AWSはマイクを搭載しています。ただしアナログ接続のマイクであり音質はそれほどよくありません。

SPK

すべてのボードでスピーカーを搭載しています。Core1世代はアナログ接続でノイズが多く、あまり音質がよくありません。Core2世代はI2S接続なのでかなり音質が向上しています。M5Unifiedでは接続方式の違いは意識する必要ありませんので、同じように利用することが可能です。

BUTTON

Core1世代は物理ボタンが3個、Core2世代はタッチパネルでの仮想ボタンが3個です。M5Unifiedを使う限り同じように制御が可能です。ただしボタンのみでタッチパネルを使わない場合には物理ボタンがあったほうが操作性は高いです。

IMU

加速度センサーとジャイロセンサーになります。BASICのみ搭載しておらず、その他のCore系ボードはすべて搭載しています。古い製品によっては方向がわかるコンパスを搭載しているモデルもあるのですが、本体の中にマグネットが入っている関係で精度がでず、ないものとして扱ったほうがよいと思います。こちらもいろいろなセンサーがあるのですが、M5Unifiedを使う限り同じように制御が可能です。

PMU

電源管理のICです。Core2系のみ◯になっていますが、厳密にはBASICにも初期型を除き簡易的なのが入っています。Core1世代は起動時の初期化のみ必要なので、起動してからは制御する必要がありませんが、バッテリー残量などの取得では利用します。Core2世代はPMUのAXP192に振動モーターや緑LEDが接続されているので、制御をする必要があります。

USB CHIP

こちらも世代によって使われているUSBシリアルチップが異なります。これはドライバの問題であり、認識していたら気にする必要はありません。スペック的にはすべて同一のものになります。M5StickCやATOMには若干違うスペックのものがありますので注意が必要です。

RTC

リアルタイムクロックと呼ばれる時計機能です。Core2世代のもののみ搭載しています。この機能を搭載していると電源オフの状態でも時刻を保存可能です。ただし時計合わせはWi-Fi経由のNTPを使うことが多いので、Wi-Fiに接続できる環境であればRTCは必須ではありません。

IR

赤外線送信機能です。Core1とCore2のボードはすべて搭載していません。ユニットを利用して増設する必要があります。

バイブ

Core2とCore2 for AWSは振動モーターが内蔵されており、バイブレーションをすることが可能です。Core2シリーズのみの機能なのであまり使われていることは少ないです。

SD

Core1とCore2のボードはすべて搭載されています。明示的にマウントをしないと利用できないので注意しましょう。

PortA(赤)

I2CのGroveポートになります。赤いポートで、ユニットなどを接続するときには同じく赤いものしか接続できないので注意しましょう。

M5Stack用WS1850S搭載 RFID 2ユニット
無線周波数の認証が可能なユニットです。WS1850Sを内蔵しており、動作周波数は13.56 MHzです。カードの読み込み/書き込み/認識/記録や、RFカードのエンコーディング、認証など様々な機能を備えています。

Core1シリーズとCore2シリーズでは接続方法が異なります。Core1シリーズではボードの中で利用しているI2Cと同じものがPortAに出ています。そのためI2C以外の用途でこのポートを利用しようとした場合には内蔵I2Cに接続されている電源管理やIMUにも接続できなくなります。

Core2では内蔵と外部に出力するPortAを別のGPIOに分離してあります。これはPortAにI2C以外の機材を接続してしまった場合、Core2では電源管理のPMUを初期化しないと起動ができないためです。

この違いはあまり意識する必要はありませんが、Core1世代は本当は好ましくないですがI2Cを開放してから、他の用途で初期化することで内蔵I2Cは利用できなくなりますが他の用途で利用が可能です。Core2シリーズも同様なのですが、内蔵とは最初から分離されているので別用途での利用がし易いです。

PortB(黒)

PortBはGPIO系のGroveポートとなります。

M5Stack用赤外線送受信ユニット [U002]
赤外線発信器と受信器を搭載したM5Stack用のユニットです。本製品は赤外線リモコンとして、家電製品やその他のデバイスを操作する用途にお使いいただけます。

黒いポートで、単純なボタン系やIP送受信ユニットなどがこの黒いポートに繋がります。PortBはM5GOとFIRE、Core2 for AWSの分厚いボトムを搭載したボードにしか搭載されていませんので注意してください。

ボトムを交換することで増設も可能ですが、Core1世代とCore2世代で交換用のボトムが異なるので注意してください。

M5GO/FIRE バッテリーボトム
M5Stack BasicやGrayのボトムを、M5GOやFIREと同じボトムにアップグレードするためのパーツです。

上記のM5GO/FIRE バッテリーボトムはBASICとGRAYにPortBとCを増設するためのボトムです。

M5GO Bottom2 - M5Stack Core2用バッテリーボトム
M5Stack Core2用に設計されたボトムパーツです。6軸ジャイロ/加速度センサー(MPU6886)、デジタルマイク(SPM1423)、500 mAhリポバッテリーを内蔵しています。

上記のM5GO Bottom2はCore2をCore2 for AWS相当にするためのボトムです。ただし、セキュリティーチップは搭載されていないので完全に同じにはなりません。

M5Stack用暗号認証ユニット(ATECC608B)
ハードウェアベースのキー保存機能を備えた暗号コプロセッサです。ATECC608Bハードウェア暗号チップを搭載しており、I2Cインターフェースで接続できます。キーや証明書、データ、使用記録、セキュリティ設定などを保存できる10 KB EEPR...

セキュリティーチップはユニットでも増設は可能ですが、あまり利用はされていないようです。

PortC(青)

PortCは青いUARTでの通信用ポートです。

M5Stack用GPSユニット [U032]
GroveケーブルでM5Coreと接続することができるGPSユニットです。中科微(Zhongke Weibeidou)のナビゲーションチップAT6558と信号増幅チップMAX2659を搭載しています。56チャンネルで六つの衛星測位システムか...

シリアル通信をするポートですので、通信系のユニットとの接続に利用されることが多いです。

M5Stack UnitV2 AI カメラ(SSD202D)
Linuxが動作する高性能AIカメラモジュールです。アプリケーション、ハードウェアリソース、開発ツールが豊富で、そのままAI開発が簡単かつ効率よく行えます。

カメラ系のデバイスともPortCのUARTを使うことが多いです。純粋なユニットと違い、カメラ系のデバイスはポートの色が白い場合があるので注意してください。色がついていないポートは別の用途に利用できたり、たんに色付きがない形の実装だったりと使う前に接続先を確認してからの方が無難だと思います。

機種別の概要

BASIC

M5Stack Basic V2.6
M5Stack Basicの新しいバージョンで、ESP32を搭載したM5Stack開発キットです。対応モジュールが多く販売されており、また回路設計、ソフトウェア、外装などの設計を新しくしたことで、IoTにより親しみやすい製品になっています。

一番基本的なボードです。このボードでとりあえず動くようにすればほかはすべて上位互換なので動くはずです。PortAしかありませんので、I2Cのユニットしか使えません。目的が決まっているときには一番使いやすいボードになります。

GRAY

M5Stack Gray(9軸IMU搭載)--販売終了
M5Stack Basicに、加速度、ジャイロ、磁気を計測可能な9軸センサ、MPU6886を搭載したモデルです。M5Stackは、320 x 240 TFTカラーディスプレイ、microSDカードスロット、スピーカーを備えたコンパクトで便利...

すでに製造中止ですので、あまり考慮する必要はありません。IMUが搭載されており、標準ライブラリだとIMUの種類によりかなり個別にプログラムを書く必要がありましたがM5Unifiedではそこを意識することなく、同じ制御で動きますので非常に楽になりました。

M5GO

M5GO IoTスターターキット V2.6
6台のM5ユニット (ENV 、IR、RGB、PIR、ANGLE、 HUB)を一緒にした M5GO IOTキットです。他のM5Stack開発キット同様、ESP32を搭載しています。

IoT系のユニットとセット販売のため高価で、知名度がありません。白いFIREなのですがPSRAMを搭載していません。そしてAzureのIoT開発用に採用されているので延命していますがいつ製造中止になるかわからないぐらいのボードとなります。

FIRE

M5Stack FIRE IoT開発キット(PSRAM) V2.6
Espressif社ESP32コントローラチップを採用した、高コスト効率のWi-Fi/BluetoothデュアルモードIoTコントローラです。

PortBとPortCがあるので非常に使いやすいボードです。タッチパネルを使わないのであれば使いやすいボードだと思います。音質に拘る場合にはCore2 for AWSの方がいいです。

CORE2

M5Stack Core2 IoT開発キット--販売終了
オリジナル世代のCore機能をさらに改良した、M5Stack開発キットシリーズの第2世代のCoreデバイスです。

タッチパネルが使えて、スピーカー音質がよいボードです。ただしPortAしかありませんので、いろいろな用途に使うのであればCore2 for AWSをおすすめします。タカオさん版スタックチャンとして使う場合用途でCORE2を選択するケースが増えていると思います。

CORE2 for AWS

M5Stack Core2 for AWS - ESP32 IoT開発キット
AWS IoT EduKitのリファレンスハードウェアで、AWSを使ったIoTのアプリケーション構築において、簡単でコストパフォーマンスの良い学習が行えます。

全部入りのボードで欠点がないと思われていたのですが、タカオさん版スタックチャンにはCORE2の方がよいかもしれません。

とはいえ、CoreS3が販売されましたので徐々に主役はCoreS3世代に移行していくと思われます。

まとめ

M5Unified入門ですが、まったくM5Unifiedのコードが出てこない記事になってしまいました。その1にバイブの使い方を追記していますので、実際のコードはその1を見るようにしてください。

続編

コメント