一般的なIoT開発ボードと比較して、M5StackのCoreS3は成熟したアプリケーション製品の最終状態に近いため、実質的に開発者は初期のハードウェア設計期間を短縮でき、機能的な面の開発に創造力を集中することができます。
CoreS3内部のメイン制御コアはESP32-S3を使用し、Wi-Fi、Bluetooth、USB-OTG、およびその他多くのペリフェラルも統合しています。また、16Mのフラッシュメモリと8MBのPSRAMの大容量メモリを搭載しています。このようなメモリの組み合わせにより、開発者は限られたメモリリソースを気にする必要がなくなり、より快適に描画ユーザーインターフェースやオーディオデータ処理を行えます。
人間とコンピュータの対話をサポートするため、情報の表示と入力作業用にM5CoreS3の前面には2インチ(約5cm)のIPS静電容量式タッチパネルが搭載されています。また、2チャンネルのマイク入力と高忠実度のスピーカ用パワーアンプを内蔵しており、録音や再生だけでなく、音声アシスタントをHome Assistantに接続し、スマートホームとの連携を実現することもできます。
6軸センサも内蔵されており、より多くの会話モードを実現できます。
タッチパネルの下には3,000万画素のカメラと近接センサが内蔵されており、顔認識やジェスチャ認識などのアプリケーションに使用できます。
CoreS3は独立したRTCクロックを内蔵しています。停電時の正確な時間計測に加え、低消費電力と設定された再起動を実現します。
側面のTypeCインターフェースは、プログラミングのダウンロードに使用されるだけでなく、USB機能開発もサポートします。キーボード、MIDIデバイス、ストレージデバイス、さらにはUSBネットワークカードなどのデバイスは、USBホストもしくはUSBペリフェラルとしてこの製品によってシミュレートできます。ほとんどのデバイスタイプには、公式Githubに既製のサンプルプログラムが用意されており、開発時間を大幅に短縮することができます。
デバイス全体の電源管理も非常に柔軟です。9~24V DCの外部電源または5V DCのType-C電源に対応しています。このデバイスには500mAhのリチウム電池が内蔵されており、独立した電源スイッチを備えています。特定のシナリオでは、開発者はこのスイッチを使用してデバイスの電源を完全にオフにし、不要な電力消費を抑えることもできます。
拡張機能に関して、CoreS3は外部拡張デバイス用に3組のGroveシステムを提供します。インターフェースの色によって、機能の割り当てが異なります。
赤色のコネクタはI2C通信プロトコルです。データ収集に関連する多くのセンサがこのインタフェースを使用する可能性があります。アドレスの異なる複数のI2Cデバイスを同じインターフェースに同時に実装することができるため、入出力リソースを効果的に節約することができます。
青色のコネクタはUARTインターフェースです。NBIoTモジュールやLoRa WANモジュールなど、C3(コマンド通信制御)を含む一部のモジュールはこのインターフェースを使用します。同時に、レベル変換用の外部RS485またはRS232モジュールを接続することもでき、さまざまなタイプの外部デバイスに対応できます。
黒色のコネクタはGPIO入出力で、デジタル信号やアナログ信号の入出力に使用し、リレー制御、照明制御、キー入力、ADC信号入力収集などの機能を実現できます。
さらに、メインコントロール下部の2 x 15ピンヘッダは、いくつかの入出力を外部に接続します。M5Stackのモジュールシリーズと組み合わせることで、積み重ねによる機能拡張が可能です。積み木を積み重ねるように、機能の異なるモジュールをレイヤごとに積み重ねるだけで、アプリケーションのハードウェアが完成します。
取り付け構造に関して、M5CoreS3のベースは、さまざまなユーザーの使用シナリオを考慮して設計されており、多くの固定方法のオプションが用意されています。ネジ穴、吊り下げ耳、スライドレール、あるいはLEGO構造部品で固定することができ、多様なシナリオでの設置に大変便利です。
まず、ソフトウェア開発環境を紹介します。CoreS3では、M5Stackが公式に開発したグラフィカルな開発プラットフォームUIFlowをはじめ、さまざまな開発手法をサポートしています。また、開発者に親しまれているArduino IDEや、正式に発売されたESP-IDFも利用できます。お客様が取り組んでいる実際のアプリケーションの複雑さに応じて選択可能で、適切なものが必ずみつかります。
以下のデモンストレーションでは、Arduino IDEによる開発方法を例に、温湿度ノードからのデータ取得を実現し、それらの読み取りと表示を実現する方法を説明します。使用するハードウェアは、CoreS3(K128)と温湿度センサUnit-ENV(U001-D) です。
まず、Arduinoの公式サイトにアクセスし、Arduino IDEをダウンロードしてインストールします。IDEを開いたら、最初のオプション設定に入り、M5Stackの開発ボードの管理URLを追加します。
https://static-cdn.m5stack.com/resource/arduino/package_m5stack_index.json
Board ManagerでM5Stackを検索して、インストールします。
Library ManagerでM5CoreS3ライブラリをインストールします。
M5Unit-ENVセンサライブラリと関連する依存ライブラリをインストールします。
Toolsメニューで開発ボードオプションをM5CoreS3に切り替えます。
次にコードを実行します。CoreS3のヘッダファイルとM5Unit-ENVのヘッダファイルをインポートし、CoreS3のbegin関数を呼び出してデバイス全体を初期化し、表示されるフォントとサイズを調整します。
温湿度センサを初期化します。
メインループで温度、湿度、および気圧の値の更新を取得し、タッチパネルに表示します。
次のステップは、プログラムのコンパイルとアップロードです。まず、CoreS3をUSBケーブルでパソコンに接続し、デバイスのリセットボタンを長押しして、ダウンロードモードに入ったことを示す緑のランプが点灯するまで待ちます。この時、IDEで対応するポートを選択し、左上のアップロードボタンをクリックし、プログラムがコンパイルされ、アップロードされるのを待ちます。アップロードが完了したら、デバイスをもう一度リセットしてください。デバイスが現在の温湿度データを読み込んだことが確認できます。
CoreS3は単なるハードウェア製品ではなく、斬新なアプリケーション開発プラットフォームでもあります。PCB図面からテスト、およびソフトウェア開発までの一般的な開発プロセスとは異なり、CoreS3は完全かつ包括的なワンストップソリューションを提供することができます。このようなイノベーションは、お客様のアイデアを素早く完成度の高い製品の形にしていく手助けとなります。
関連製品