初心者向け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」がいいと思います。
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では初めてで、勉強していきます。
M5stack core2を使用し始めたばかりの者です。
M5core2と加速度センサAdxl355を用いて地震計を作りたいのですが、知識がほぼゼロに近いです。何かおすすめの参考書などあればお教えください。
何卒よろしくお願い致します。
サリエリの隣人様
M5Stackの基礎はみんなのM5Stack入門を購入する方が多いようです。
電子工作の基礎知識も得たいというのであれば、ADXL355を使う場合は恐らくI2C通信というのを使うので電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版という本も具体的なI2Cの使い方を学ぶのに適していると思います。
早急かつご丁寧な回答ありがとうございます!
言葉足らずだったにもかかわらずI2C通信のことまで考慮してくださり感謝します。
みんなのM5stack入門に関しては、先ほど購入しました。
電子工作の方に関しては所属ゼミにあったと思うのでそちらを先に探してみます。
もしかしたら今後もご質問させて頂くことがあるかもしれません。
そのときはお手数かとおもいますが、何卒よろしくお願い致します!
M5stack core2にmicro SDカードを正しく挿入しているにもかかわらず、起動時に「SDCard Find Failed」と出てきます。
このケースの解決法をお教えいただけると幸いです。
ちなみに、Elecomの64GBのmicroSDカードを使っています。
64GBは恐らく初期状態はexFATなのでそのままでは使えません。
FAT32という形式でフォーマットしなおす必要があります。(フォーマットするソフトは自分で探してください。私はLinuxでフォーマットしました。)
あとは相性もあるので、使えない場合もあります。私の場合はSandiskUltraの赤か白、KIOXIAの32GBを利用しています。
ご回答ありがとうございます!
SandiskUltraもしくは、KIOXIAの32GBをまず探してみます。
無ければ、いまあるSDカードをLinuxでフォーマットして試してみます!
M5Core2のモニターに、XYZの3方向の重力加速度をグラフにして表示したいと考えているのですが、使用すべきプログラムのコードが見当もつきません。
加えて、Ambientなどの外部のサービスは使わない条件で探しています。
モニターへのグラフ表示に関係するコードなどあればお教えください。
何卒よろしくお願い致します!
結構難しくて、私は断念しました。ラズパイ+Influxdb+Grafanaで実現しています。
グラフ表示で参考になるのはLovyanGFXのexamples/Standard/Graphでしょうか。
頑張ってください。
自分も数値のグラフ化に参考になる本やサイトを探しているともしかして今やろうとしてること結構難しいんじゃないかと気が付きました。(汗)
参考になるものを教えて頂けるだけでも非常に助かります。
本当にありがとうございます!頑張ります。
先日M5Core2のモニターに重力加速度のグラフを映すにはどうすれば良いかお聞きしたのですが、その後グラフ化について調べていると、「#define GRAPH」や「graph.pushSprite(GRAPH_X,GRAPH_Y);」等のコードを見つけました。
もしかするとこのコードで解決するのではないかと考えているのですが、このコードに関して詳しくない為、分かる範囲でこれはどのようなコードなのかを教えて頂きたいです。
何度も質問して本当に申し訳ありません。何卒よろしくお願いいたします!
そこから先は自分で動かして、調べて、、、という風にしないとこれからも質問続きになってしまいます。(ちなみに自分も知らないので答えるために調べることになります。)
作る楽しさはここからだとおもうので頑張ってください(‘ω’)
返信ありがとうございます!仰る通りだと思います(汗)
これからはトライアンドエラーで頑張っていきたいと思います!
いつか自作ロボットを作りたいと思い。とっかかりとしてM5stackの存在を知ったので、M5stack Core2を購入しました。
こちらのサイトが上位検索で出てきたので、拝見させていただき、Hello Worldまで実行してみることができました。
わかりやすい解説で助かりました。ありがとうございます。
はじめまして。こちらのグログを拝見してM5について勉強させていただいている学生です。
Core2を2台使って通信をしたいです。
具体的には、2台A、Bを使ってAのボタンを押したときにBで映像を表示させたいです。
プログラミングはArduinoでしています。
A、Bのどちらかをルータとしたいです。
Core2とCoreで少しコードが変わるようで、Core2の連携方法が調べてみても全く分かりません。ご教授いただけますと幸いです。
コメントありがとうございます。
ただ、具体的な回答はできませんのでご了承ください。
M5Stackは中身はESP32なので「ESP32」と合わせて検索すると出てきますよ。
ルーターとしたい場合は「WiFi APモード」
通信は下記の3つのうちどれかです。
・TCP
・UDP
・ESP-NOW
通信は難しいかもしれませんが頑張ってください。