本記事の内容を動画でも解説しています! 併せてご覧ください。
注
本稿ではM5Stack本体、M5Stack用3G拡張ボードといったハードウェア費用の他、「SORACOM Air for セルラー」や「SORACOM Beam」といったSORACOMの各種サービス費用が必要となります。各サービスの料金表をご確認の上、かかる費用についてご留意ください。
M5Stackとは?
M5Stackは複数のモデルが販売されてますが、今回は一番の基本モデルである「Basic」を中心に紹介していきます。
中身はマイコン(ESP32)を中心に、ボタン(3つ)、スピーカー、320×240サイズのTFTカラー液晶ディスプレイ、さらにはSDカードスロットが搭載されています。また、Basicの機能に加えて9軸IMU(加速度、ジャイロ、磁気センサー)を搭載した「Grey」というモデルもありますが、コンセプトとして共通しているのは「ケースに入っている」ということです。
また、M5Stackは側面に出ているGroveコネクタに挿せるセンサーモジュールや、M5Stackと同じ形状をした拡張ボードを「積み上げる」ことで、ハンダ付けをすることなく機能を拡張していくことができます。Groveコネクタに挿せるセンサーモジュールには温湿度・気圧センサーや、非接触温度センサーといったものが販売されています。また、拡張ボードにはGPSやリチウムバッテリーなどがあり、本稿で紹介しているM5Stack用 3G拡張ボードもこの仲間です。
注
動作環境確認はBasicおよびGreyの2モデルで行っております。
M5Stackの開発環境
M5Stackは、主に以下2種類の開発環境が準備されています。
- Arduino IDE
- M5Flow(MicroPython)
Arduino IDEは、「Arduino Uno」といったマイコン向けの開発環境ですが、M5Stack用のボード定義を追加することで利用することができます。また、M5FlowはWebブラウザもしくはデスクトップアプリ上で動くグラフィカルな開発環境です。内部的にはMicroPythonで動くようになっています。
M5Flowを用いた開発にはM5Stack内のファームウェアをM5Flowに対応したものに更新する必要がありますが、書き換えをするためのツール(M5Burner)が公式から公開されているため、最小限の手間で開発環境を選べるとことも特徴的です。
本稿ではM5Stackのファームウェアの書き換えがなくとも開発が可能な、Arduino IDEを用いていきます。
Arduino IDEを用いた開発環境のセットアップ
Arduino IDEを用いた開発環境は、PCに以下のソフトウェアやドライバをインストールします(Windows、macOS共に対応)。
-
Arduino IDE
- ESP32用ボード定義
- M5Stack用ライブラリ
- CP210X Driver(仮想シリアルポートドライバ)
Arduino IDEのインストール
Arduino IDEはArduinoのサイトからダウンロードし、インストールを行います。
注
Windowsの場合はWindows Installer版、Windows app版の2つがありますが、Windows Installer版での動作を確認しています。
ESP32用ボード定義のインストール
M5StackはマイコンにESP32を使用しています。Arduino IDEは標準ではESP32の開発環境が入っていませんが、環境設定から追加することができるため、その設定を行います。
まず、Arduino IDEのメニューから[ファイル]>[環境設定]で表示されるダイアログ上で追加のボードマネージャのURLに、以下のURLを記載します。
Arduino IDEのメニューから[ツール]>[ボード: ...]>[ボードマネージャ]で表示されるダイアログ上でesp32 by Espressif Systems
をインストールします(esp32
で検索すると見つけやすいです)。
M5Stack用ライブラリ
M5Stack用のライブラリをインストールします。
Arduino IDEのメニューから[ツール]>[ライブラリを管理]で表示されるダイアログ上でM5Stack by M5Stack
をインストールします(m5stack
で検索すると見つけやすいです)。
CP210X Driver(仮想シリアルポートドライバ)
M5Stackへスケッチ(Arduino IDEではプログラムを「スケッチ」と称しています)を転送したり、M5Stackのデバッグ出力を受け取ったりするための仮想シリアルポートドライバをインストールします。
M5Stack公式サイトのDownloadページのCP210X Driverをお使いのOSに合わせてダウンロード、インストールします。
注
Arduino IDEの書き込みの際、macOSの方で「シリアルポートが見つからない」旨のエラーが発生した場合は、仮想シリアルポートドライバをこちらからダウンロードしてインストールした後、macOSの[システム環境設定]>[セキュリティとプライバシー]で「システムソフトウェアの読み込みがブロックされました」に許可を与えてください。
Hello world
準備が整ったところで、定番の「Hello World」を動かしてみましょう!
M5StackとPCをUSB Type-Cで接続します。自動的にM5Stackの電源が入り、ロゴと共にサウンドが再生されますが、これは出荷時検査用のスケッチである「FactoryTest」です。この中身を「HelloWorld」に書き換えたいと思います。
まず、Arduino IDEのメニューから[ツール]>[ボード: ...]で、M5Stack-Core-ESP32
を選択します。
Arduino IDEのメニューから[ツール]>[シリアルポート: ...]で、M5Stackが接続されているポートを選択します。
Arduino IDEのメニューから[ファイル]>[スケッチ例]>[M5Stack]>[Basics]>[HelloWorld]を選択します。
最後に、Arduino IDEで「書き込み」を行います。
書き込みが正常に完了すれば自動的に再起動して書き込まれたスケッチが実行され、以下のように液晶ディスプレイへ「Hello World」と表示されます。
トラブルシュート
[ボード: ...]で「M5Stack-Core-ESP32」が一覧に表示されない
Arduino IDEで、ESP32用ボード定義をインストールしてください。
シリアルポートでM5Stackが接続されているポートが見当たらない
CP210X Driverをインストールしてください(OSの再起動が必要になるケースもあります)。
スケッチ例が見当たらない
- M5Stack用ライブラリをインストールしてください。
-
ボード定義
M5Stack-Core-ESP32
を選択してから、再度スケッチ例を確認してください(対応していないボードのスケッチ例は「互換性なし」というスケッチ例になっています)。