初心者向けM5Stack Core2の始め方(ArduinoIDE編)
M5Stack Core2が発売されてから少し経ちました。TwitterでもCore2からM5Stackを始めるという方も増えてきているようです。Core2ならではの手順もあるので、「Hello World」の表示と工場出荷時に戻すまでの手順を紹介します。
もくじ(Index)M5Stack関連の目次へ戻る
M5Stack Core2を動かすために必要なもの
ハードウェア
用意するハードウェアは2つだけです。
①PC
Windows、Mac、Linuxで使うことができます。USBで接続するのでUSB端子が必要です。
②M5Stack Core2
M5Stack Core2と付属のUSB Type-Cケーブルを用意します。
ソフトウェア
今回の記事ではArduinoIDEで使う方法を説明するので下記のものを用意します。
①Arduino IDE
https://www.arduino.cc/en/software から、ArduinoIDEをダウンロードします。2020/11/13時点ではVersion 1.8.13が最新です。
Windowsで初心者の方は 「Windows Win7 and newer」がいいと思います。
HPが開いたら下にスクロールする。 自分のダウンロードしたいものを選択
ArduinoIDEのインストール(arduino-1.8.X-windows.exe)
ArduinoIDEのインストーラーを起動して、画面の指示に従ってセットアップします。特にオプションを変える必要はありません。
②デバイスドライバ(CP210X Driver)
最近のWindowsでは標準のドライバがあるので不要かもしれません。M5Stack Core2を接続してみて認識されない場合はダウンロードしてインストールしてみてください。
下記のリンクを開き、「CP2104 Driver」をダウンロードします。
https://m5stack.com/pages/download
COMポートの確認
プログラムをコンパイルするときにCOMポートの名前を設定する必要があります。
M5Stack Core2をPCに接続し、「スタートボタン」の上で右クリック→「デバイスマネージャー」を開いて、ポート名を確認します。下記の画像だと「COM10」というのがポート名になるので覚えておきます。


AdruinoIDEの設定
インストールが終わったら、ArduinoIDEを起動して設定を行います。

設定の手順
画面ごとに説明していきます。
①起動画面
AdruinoIDEを起動するとスケッチの画面が開きます。

②環境設定する
(1)「ファイル」→「環境設定」をクリックして環境設定の画面を開きます。

(2)「追加のボードマネージャーのURL」の右にあるボタンをクリックします。

(3)URLの入力
ダイアログが開くので下記のURLを入力してOKをクリックします。
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
★補足★
このURLはM5Stack公式が出しているもので、2020/11現在Arduino-esp32 1.0.4をベースにM5Stack製品の設定を追加しています。他のArduinoIDEのインストール説明だと下記の2つの場合もありますが、ボードで「M5Stack」が出ない(検索できない)ので注意してください。「esp32」を検索します。
- https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
→ Arduino-esp32のボードマネージャーURL - https://dl.espressif.com/dl/package_esp32_index.json
→ 古いので使わない方がいいです。
④M5Stackのボードを追加する
ボードマネージャを開いて設定します。
(1)ボードマネージャを開く
「ツール」→「ボード…」→「ボードマネージャ…」と選択します。

(2)ボードマネージャ
ボードマネージャが開いたら「m5stack」と入力すると、下のウィンドウに「M5Stack」という名前のものが出るので、「インストール」をクリックします。

★ダウンロードできない時★
サーバーが中国にあるため、回線状態が悪くダウンロードできないことがよくあります。その場合は下記の対処をしてみてください。
- 別回線で試してみる。
スマホのテザリングを利用して携帯の回線だとダウンロードできる場合もあります。(通信料には注意してください。) - 時間帯を変えてみる。
朝早い時間帯だとダウンロードできたりするようです。 - arduino-esp32のURLに変えてみる。
手順②に戻り、追加のボードURLに下記のURLを設定して「esp32」というボードを検索します。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
→ この場合、後述の⑥で選択するボードは【M5Stack】ビルド時のボード・オプションの選び方(ArduinoIDE,VSCode+PIO)を参照して選びます。
⑤M5Stack Core2ライブラリのインストール
次にM5Stack Core2のライブラリをインストールします。(ライブラリ名は「M5Core2」)
(1)「ライブラリを管理」を開く
「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理…」の順に選択します。

(2)ライブラリマネージャ
ライブラリマネージャの画面が開くので、「m5core2」と入力し検索結果に出てきた「M5Core2 by M5Stack」 という名前のライブラリを選択して「インストール」をクリックします。

⑥ボードの設定
(1)ボードの設定
「ツール」→「ボード」→「M5Stack Arduino」→「M5Stack-Core2」の順番で選択します。

(2)COMポートの設定
M5Stack-Core2を選択後、は下記のようにパラメータが設定されています。シリアルポートが選択されていないので事前に確認した「COM?」(画像ではCOM10)を選択します。

Hello Worldを実行する
環境の設定が終わったので次はM5Stack Core2にスケッチを書き込んで、「Hello World」と表示させてみましょう。
スケッチの作成
下記のように入力してスケッチを作成し、保存します。スケッチ名は任意です。
●M5Core2_HelloWorld.ino
#include <M5Core2.h>
void setup() {
M5.begin(true, true, true, true);
M5.Lcd.setTextSize(3);
M5.Lcd.print("Hello World");
}
void loop() {
}
M5Stack Core2に書き込む
M5Stack Core2が接続されているのを確認して、「スケッチ」→「マイコンボードに書き込む」を選択すると、コンパイルしてからM5Stackにプログラムが書き込まれます。

動作確認
正常に完了すると、自動的に先どうして下記の写真のようにHelloWorldという文字が表示されます。

工場出荷状態への戻し方
工場出荷時はFactoryTestのスケッチが書き込まれています。戻す方法は3通りです。
①EasyLoaderを使う(Windows、MacOSのみ)
下記のリンクのEasyLoaderという項目から、ファイルをダウンロードして実行します。COMポートを選んで「Burn」を押してください。
https://docs.m5stack.com/#/en/core/core2?id=easyloader
②M5Burnerで書き込む(Core2FactoryTest)
Core2FactoryTestの「Download」を押してプログラムをダウンロード→「Burn」を押して書き込みで復帰できます。

③スケッチからビルドする
FactoryTestのスケッチは下記のGitHubのリンクにあります。ダウンロードしてCore2_Factory_test.inoをコンパイルし書き込みを行うと戻ります。
https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Core/M5Core2/Arduino
トラブルシューティング
いくつか初心者がハマりそうな点を書いておきます。
M5Stack-Core2のボードを選べない
①追加のボードマネージャのURLを確認してください。
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
②もし、arduino-esp32の方を使用したいのであれば、ほぼ同じスペックの「M5Stack-Fire」を選びます。
終わりに
最近M5Stack Core2からM5Stack製品にデビューする方も増えてきたようなので、最初のステップを実行するまでをまとめました。何か分からないことがあれば、コメントやTwitterで連絡ください。
M5Stackの世界を楽しんでいきましょう。
#includeの行が見えない気がします。
むとう様
ご指摘ありがとうございますm(_ _)m
修正しました。
M5StackCoew2入門者です。(PICはMPLABXでそこそこ経験があります)
わかりやすいご説明の記事をありがとうございます。
Core2の場合、前バージョン(Basic?)とのライブラリやボードマネージャの選択があまりよくわかっていません。ライブラリの互換性がどこまであるのか?もです。
さて、基本のお尋ねです。COれ2用ボードマネージャの選択ですが
1、M5StackCore2との事ですが、M5StackCoreESPは? Basic用でしょうか?
2,Core2の必須ライブラリはM5Core2だけで基本はOKでしょうか?M5STackは不要?
3,上記2のライブラリには、-master と付いたものと無いものがありるようですが、
違いは何でしょうか?
初心者の質問ですがよろしくお願いします。
VividHobby様
コメントありがとうございます。M5Stackの仕様変更もあり、確かに分かりづらい点です。別途分かりやすいように説明できるかどうか検討してみます。
●1の回答
・M5StackCore-ESP32は「Flashが4MB」のBasic、Gray用です。
・M5Stack-Fireは「Flashが16MB」のBasic、Gray、Go、Fire用です。
FireはPSRAMを「Enabled」、Basic,Gray,GoはPSRAMを「Disabled」にします。
補足1、Flashの見分け方はありません。らびやんランチャー等をインストールし自分でFlashの容量をチェックする必要があります。
補足2、サイズ大きいスケッチを使わないのであれば、M5StackCore-ESP32を選択しても問題なく動きます。
●2の回答
M5Stack.hは不要です。M5Stack.hは旧Core用、M5Core2.hはCore2用となります。両方includeしてしまうとエラーが発生します。
●3の回答
ライブラリをGitHubからZipファイルをダウンロードしてインストールすると「-master」という名前が付きます。ダウンロードしたZipの名前がライブラリ名になってしまいます。(GitHubのmasterブランチからダウンロードしたという意味です。)
→恐らくバージョンが違いますが、同じライブラリなので2つ存在することはできません。ご自身で使う方を選び削除する必要があります。
★初心者であれば、なるべくZipでのインストールは止めた方が混乱は減りますが、最新バージョンでないと動かないソースもあるので、この辺りはVividHobbyさんの理解が必要です。
言葉だけで説明しようとすると難しいですね(;^_^A
別途記事作ってみます。
分からないことがあれば質問してください。
もんごんた様へ
素人質問にもかかわらず早々のご回答、しかも素人に解りやすく解説いただき、ありがとうございました。
LovyanGFXはESP32で使用したことがありましたが、M5Stackでは初めてで、勉強していきます。