概要
前回は全体的な機能を確認しましたが、CoreとCore2系のボードでの使い方の確認をしてみたいと思います。細かい制御方法は前回のページにまとめたいと思います。
機能一覧
NAME | BASIC | GRAY | M5GO | FIRE | CORE2 | CORE2 for AWS |
---|---|---|---|---|---|---|
MCU | ESP32 | ESP32 | ESP32 | ESP32 | ESP32 | ESP32 |
FLASH | 16MB | 16MB | 16MB | 16MB | 16MB | 16MB |
PSRAM | 8MB | 8MB | 8MB | |||
BATTERY | 110mAh | 110mAh | 500mAh | 500mAh | 390mAh | 500mAh |
LCDサイズ | 2インチ | 2インチ | 2インチ | 2インチ | 2インチ | 2インチ |
LCD縦 | 240 | 240 | 240 | 240 | 240 | 240 |
LCD横 | 320 | 320 | 320 | 320 | 320 | 320 |
TOUCH | ○ | ○ | ||||
LED | 1 | 1 | ||||
RGB LED | 10 | 10 | 10 | |||
MIC | ADC | ADC | ADC | ADC | ||
SPK | DAC | DAC | DAC | DAC | I2S | I2S |
BUTTON | 3 | 3 | 3 | 3 | 3 | 3 |
IMU | ○ | ○ | ○ | ○ | ○ | |
PMU | ○ | ○ | ||||
USB CHIP | CP2104 / CH9102 | CP2104 / CH9102 | CP2104 / CH9102 | CH9102 | CP2104 / CH9102 | CP2104 / 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を付け替えることでバッテリーやポートを増設することができます。

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ポートになります。赤いポートで、ユニットなどを接続するときには同じく赤いものしか接続できないので注意しましょう。

Core1シリーズとCore2シリーズでは接続方法が異なります。Core1シリーズではボードの中で利用しているI2Cと同じものがPortAに出ています。そのためI2C以外の用途でこのポートを利用しようとした場合には内蔵I2Cに接続されている電源管理やIMUにも接続できなくなります。
Core2では内蔵と外部に出力するPortAを別のGPIOに分離してあります。これはPortAにI2C以外の機材を接続してしまった場合、Core2では電源管理のPMUを初期化しないと起動ができないためです。
この違いはあまり意識する必要はありませんが、Core1世代は本当は好ましくないですがI2Cを開放してから、他の用途で初期化することで内蔵I2Cは利用できなくなりますが他の用途で利用が可能です。Core2シリーズも同様なのですが、内蔵とは最初から分離されているので別用途での利用がし易いです。
PortB(黒)
PortBはGPIO系のGroveポートとなります。

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

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

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

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

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

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

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

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

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

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

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

全部入りのボードで欠点がないと思われていたのですが、タカオさん版スタックチャンにはCORE2の方がよいかもしれません。
とはいえ、CoreS3が販売されましたので徐々に主役はCoreS3世代に移行していくと思われます。
まとめ
M5Unified入門ですが、まったくM5Unifiedのコードが出てこない記事になってしまいました。その1にバイブの使い方を追記していますので、実際のコードはその1を見るようにしてください。
コメント