QUICK start: M5Stack core2をArduino IDEで始める
この記事はnoteで掲載した、以下の記事をZennに移行してきたものだよ。一部加筆修正あり。
この記事でやること
周辺機能が豊富なM5Stack core2、買ってすぐに色々試すことができるのが特徴だね。M5StackはArduinoボードに比べるとまだまだドキュメントが少ないけど、M5Stackはとっても魅力的なハードなので、できるだけ簡単にM5Stackを扱えるように、M5Stack core2用のプログラムをArduino IDEで作成して実行するまでをまとめているよ。
対象読者
- M5Stackに興味がある
- これからM5Stack core2を使いたい
- M5Stack core2を既に使っているけどセットアップ方法をおさらいしたい
他の選択肢
M5Stackの開発環境は、Arduino IDE以外にもいくつか選択肢があるよ。M5Stack用のプログラムを作成可能な環境は以下の通りだよ。他の環境についても記事を書いたらリンクしていくね。
- Platform IO
- UI flow 1.0/2.0
必要なもの
M5Stack core2用のプログラムを作成して実行するために必要なものは以下の通りだよ:
- M5Stack core2 ×1
- Arduino IDE
ざっと全体を見てみよう
M5Stack core2には色々な周辺機能が搭載されているから、まずは全体をざっと見てみるよ。M5Stack core2の詳細な仕様は以下を参照してね。
正面
M5Stack core2のディスプレイが搭載された面だよ。
タッチパネルディスプレイ
解像度が320×240ピクセルのタッチパネルディスプレイだよ。
タッチボタン×3
タッチパネルディスプレイの下に3つの⚪︎があって、左からボタンA、ボタンB、ボタンCだよ。
左側面
POWERボタン
M5Stack core2の電源を制御するためのボタンだよ。
- ONのとき、6秒長押しするとOFF
- OFFのとき、押すとON
USB type-C 端子
M5Stack core2とPCを接続するためのUSB端子だよ。
Grove端子 (PORT.A)
M5Stack core2に追加の周辺機能を追加するための端子だよ。PORT.AはI2C用のピンが割り当てられているよ。M5Stackでは他にもPORT.BとPORT.Cがあるけど、本体には搭載されていないので、ExtPort for Core2というモジュールでPORT.BからPORT.Eを追加するか、もちろん、自分でM-BUSからピンを引き出すのもOKだよ。
- PORT.A: I2C
- PORT.B: GPIO
- PORT.C: UART
M5Stackで使用されるPORT.A, PORT.B, PORT.Cについては、マルツさんの説明が分かりやすいから参考にしてみてね。
下側面
microSDカードスロット
microSDカードを挿すためのスロットだよ。
Power indicator LED (Green)
M5Stack core2の電源がONのときに点灯するよ。
リセットボタン
M5Stack core2をリセットするためのボタンだよ。
裏面
M-BUS
CORE2と書かれた板の裏にM-BUSと呼ばれる拡張用の端子があるよ。ここに拡張用のモジュールを接続できるようになっているよ。このCORE2と書かれた板にはIMU(ジャイロ、加速度センサー)とマイクが搭載されているので、M-BUSを使うとこの2つの機能が使えなくなる点には注意が必要だよ。
ラベル
M5Stackには搭載された周辺機能やピンマップのラベルが貼り付けられてるよ。周辺機能のIC型番やピン割り当てを知りたいときはこのラベルを参考にしてみてね。
環境構築
ドライバーインストール
M5Stack core2とPCが通信できるようにドライバーをインストールするよ。ここでインストールするドライバーはUSBの信号をUARTっていう通信方法に変換するためのICを動かすためのものだよ。ドライバーが無いとM5StackをPCに繋いでも何もできないよ。
ドライバーをダウンロードする前に確認することがあるよ。
M5Stack core2は本体のバージョンによって2種類 (CP210XもしくはCH9102) のUSB-UART変換ICが使われているから、手元のM5StackにどのICが使われているのかを確認する必要があるよ。確認方法は本体裏面ラベル(下図参照)で確認できるよ。ボクのM5StackはCH9102というICが使われていたよ。
M5Stackさんのページから、インストールするドライバーをダウンロードするよ。Driver Installationのところから使っているPCの種類と本体裏面で確認したICの種類を見て、適切なドライバーをダウンロードしてね。
ドライバーをダウンロードしたら、パッケージを開いてインストールを完了するよ。
Arduino IDEの設定
ここでは、Arduino IDEでM5Stack core2用のプログラムを作成するために必要な設定について説明するよ。Arduino IDEのインストール方法についてはここでは説明しないから、必要であればネットで調べてね。
ボードの追加
Arduino IDEでM5Stack core2を扱えるようにBoards ManagerでM5Stack core2を追加するよ。
どうしてこの作業が必要?
Arduino IDEは、元々Arduinoシリーズの開発環境だから、Arduinoが使っているAVRマイコン用のプログラムを作成したり通信したりプログラムを書き込んだりはできるけど、ESP32を使ったM5Stackをそのままでは使うことができないよ。そこで、M5Stackにはどのようなバリエーションがあって、どうやってM5Stackが使っているESP32で動くプログラムを作成したり通信したりするのかを教えてあげる必要があるよ。
Arduino IDEのメニューからPreferences→Settingsと選択して、Additional boards manager URLsという設定を探してね。設定を開いて以下のURLを追加してね。
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
URLの追加ができたら、Arduino IDEのメニューからTools→Boards:→Boards manager…を開いてね。下図のようにArduino IDEの左側にBOARDS MANAGERが表示されるよ。BOARDS MANAGERの検索バーからM5Stackを検索して、INSTALLをクリックするよ。しばらく時間がかかるから完了するまで待ってね。
ボードの選択
Arduino IDEにどのワンボードマイコン用のプログラムを作成するのかを教えてあげる必要があるよ。M5Stack core2用に作成したい!と教えてあげることで、Arduino IDEはM5Stack core2用にプログラムを作成して書き込むことができるようになるよ。
Arduino IDEのメニューからTools→Board:→M5Stack→M5Stack-Core2を選択するよ。
ライブラリの追加
Arduino IDEの設定はこれで最後だよ。Arduino IDEにM5Stack core2用のライブラリを追加するよ。
どうしてこの作業が必要?
M5StackはM5Stack core2だけではなくて他にも色々なバリエーションがあって、それぞれ搭載されている機能に差があるので、M5Stack core2用にプログラムを作成するためのライブラリ(よく使われるプログラムを集めたものだよ)を追加する必要があるよ。M5Stackを使うための複雑な処理は、ボクたちが見えないところでライブラリが全部やってくれるから、ボクたちは簡単にマイコンを動かせるんだよ。
Arduino IDEのメニューからTools→Manage libraries…を開いてね。下図のようにArduino IDEの左側にLIBRARY MANAGERが表示されるよ。 LIBRARY MANAGERの検索バーからM5Core2を検索して、INSTALLをクリックするよ。しばらく時間がかかるから完了するまで待ってね。
最初のプログラムを作成
ここでは、Arduino IDEを使ってM5Stack core2用のプログラミングを作成してスケッチをM5Stack core2に書き込み、実行するまでを説明するよ。
Step.1 スケッチ作成
Arduino IDEのメニューからFile→New Sketchと選択してね。
Step.2 ボード確認
Arduino IDEのメニューからTools→Board:を確認してM5Stack-Core2となっていることを確認してね。もし、Arduinoや他のワンボードマイコンの名前になっている時はM5Stack-Core2を選択してね。
Step.3 シリアルポート確認
Arduino IDEのメニューからTools→Portを確認してM5Stack core2が接続されたポートが選択されていることを確認してね。M5Stackが接続されたポートは(Macの場合)/dev/cu.usbserial-xxxxxxxxxxxのような名前になっているよ。もし、他のポートが選択されている時はM5Stack core2のポートを選択してね。
Step.4 コーディング
Arduino IDEのテキストエディターに以下のプログラムを書いてみてね。ここでは、各コードの説明はしないので、とにかくコピペしてみてね。
#include <M5Core2.h>
void setup(){
M5.begin();
M5.Lcd.print("Hello World");
}
void loop() {
}
Step.5 検証、書き込み、実行
作成したプログラムをM5Stackに書き込んで実行するよ。
Arduino IDEの左上に3つのアイコンが並んでいるので、→ (Upload) ボタンをクリックしてね。プログラムのコンパイルが始まって、エラーがなければ、作成されたプログラムがM5Stackにアップロードされるよ。アップロードか完了するとM5Stackは自動的にリセットされるよ。M5Stackの画面にHello Worldと表示されたかな?
まとめ
この記事では、Arduino IDEを使ってM5Stack core2用のプログラムを作成するまでの手順について説明したよ。既にArduino IDEを使ったことがあれば、
- ドライバーのインストール
- ボードとライブラリの追加
のみで、Arduinoボードと同じようにプログラミングができることが分かったと思うよ。
ここから先はArduino IDEを使って自由にプログラミングして色々面白いものを作ってみてね。面白いプログラムができたらX(Twitter)で世界中のみんなに見せてあげてね。ついでに、ボク→@nananaunoにも教えてくれると嬉しいな。
じゃあ、またね!
トラブルシューティング
この記事の手順で起こりそうなトラブルをまとめているよ。途中でつまずいた時はチェックしてみてね。
Arduino IDEでM5Stack core2が選択できない
Arduino IDEのBoard:メニューでM5Stackが選択できない場合は、Boards managerでM5Stackを正しく追加できていない可能性があるよ。👆の手順をもう一度確認してみてね。
スケッチのアップロードができない
プログラムにエラーが無いのに下図のようなエラーが出てアップロードが出来ない時は、Arduino IDEのメニューからTools→Upload speed: を115200に変更して再度試してみてね。ボクが試したときは、シリアル通信の速度が115200を超えるとM5Stack core2への書き込みができなかったよ。
Discussion