M5stackとは?
M5stackは、我流に説明すると、小さい画面にボタン3つと、バッテリー、WiFiアンテナ、SDカードスロット、センサーを繋げる穴などがついた4,500円のマイコン(Arduinoとかの類)です。USBでPCに繋げて、Arduino IDEで、C++風のArduino言語で書かれたプログラムを書き出して、本体に小型センサーを繋げたり、WebAPIと連動させたりして、遊ぶことができます。去年あたり流行って、今年2月に日本でも買えるようになりました。
ここで、Arduinoを連発してますが、搭載しているマイコン(脳)はArduinoではなく、ESP32。
導入方法
https://docs.m5stack.com/#/en/quick_start/m5core/m5stack_core_quick_start
こちらにやさしく書かれていますが、Windows前提。
Macの方はこちらで、例によってちょっとわかっている前提。
https://github.com/m5stack/m5-docs/blob/master/docs/ja/quick_start/m5core/m5stack_core_get_started_Arduino_MacOS.md
そこで今回は、mac初心者でもスムーズに導入できるように、全ての手順を丁寧に図示していきたいと思います。
環境
今回の記事で使用するものはこちらです:
- M5Stack Basic
- MacBook Pro (MacOS High Sierra)
- Arduino IDE
Arduino IDEの他に様々な開発環境(プログラムを書くツール)が選べますが、
ここでは一番一般的な方法であるArduino IDEを採用します。
先に一言
- 電源ボタンは2回押しです。1回押しは再起動となります。
STEP 1: Arduino IDE のインストール
![スクリーンショット 2018-08-04 17.15.13.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Fdd1db92b-0fcd-4a3b-0bf4-e39c38ac405d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ea3aa0f8d9586581d9d203fe402dccc8)
ダウンロードしたzipファイルを解凍すると、Arduino IDEのアイコンが出てきます。
これをアプリケーションフォルダーにドラッグアンドドロップすると、Launchpadから選べるようにします。
![スクリーンショット 2018-08-04 17.17.16.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F7c592289-b1b5-2232-a421-e9aaa298f266.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=f41f79051685d0ae52e06abf292ee128)
Launchpadを開きます。
![スクリーンショット 2018-08-04 17.20.43.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F1989ccba-e23a-55e8-9af2-8811d09e3cef.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b126f4c49629103d245227d8ba76d259)
![スクリーンショット 2018-08-04 17.21.39.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Ff9b1d9c0-2e5a-4779-8ab4-0e9bf50b91ac.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8a5bbf4d3f4c9896beea1cf33a0623c8)
これが、Arduino IDEです。
M5stackに書き込むプログラムはここで書きます。
ただ、現時点ではまだm5stackに書き込みはできません。
STEP 2: USBドライバーをインストール
MacでM5stackを認識できるようにします。
![スクリーンショット 2018-08-04 17.50.56.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Fdd871533-265b-a249-8711-ca874df7f2d7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=9e67c147a81bfa675bd468bc1e2e50fe)
ダウンロードしたzipファイルを解凍して、でてきたものを開く。
![スクリーンショット 2018-08-04 17.51.44.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F91e266ca-242b-3e74-8758-79abcd37d9ea.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8a670e64cda17a408596e9b4b12dee12)
ダンボールのアイコン(Silicon Labs VCP Driver.pkg
)を開きます。
![スクリーンショット 2018-08-04 17.52.04.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F373533c1-badd-641b-e289-81a76d99324f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=49f382567cd398d4fb1b475de3fc1290)
画面の説明に沿ってインストールします。
![スクリーンショット 2018-08-04 17.28.01.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F0541f3e9-a972-6804-ea9c-e8946b8bf33c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3574f09e98ae4cdc5f6213a7d61abb1c)
![スクリーンショット 2018-08-04 17.28.27.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F0c71e02b-a51d-3e8c-763b-f9b8c19d60e1.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e0dae59add8a6a240d57f687de09ea64)
![スクリーンショット 2018-08-04 17.28.47.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F7ff7b9a7-ff36-3ab0-809a-42bb49be95fe.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5e6e605408b59b1add494130287bfd3d)
途中でこんな通知が来ますので、「"セキュリティ"環境設定を開く」を選びます。
![スクリーンショット 2018-08-04 17.30.44.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F21a5bf6b-001e-e538-fe1d-fcf5e0ab0394.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=71097ce2532006254f1b861403801f67)
「許可」をクリック。
(もし、通知が出なかったり、逃してしまった場合は、「環境設定」 > 「セキュリティとプライバシー」 > 「一般」タブを開けば同じ画面が出せます。)
![スクリーンショット 2018-08-04 17.30.58.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Ffd6f4539-211c-306a-61c2-bb28e4bc1e52.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=130e101e889fb92ea767a8dcb669a728)
![スクリーンショット 2018-08-04 17.53.13.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F852e7cf8-3abd-ff5d-247a-455a3cebbbd4.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=819db3598ab6084fec645c9d4643081c)
これを終えて、Arduino IDEを起動すると、M5stackをmacに繋いだときに、「ツール」 > 「シリアルポート」 のところに、「SLAB_USBtoUART」の選択肢が出現するようになったことが確認できます。
出てこない場合はUSBを上下反転して繋ぎ直してみましょう。
![スクリーンショット before after](https://qiita-user-contents.imgix.net/https%3A%2F%2Fimage.ibb.co%2FesMpve%2Fusb_beforeafter.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=fc12d011919d289eac575001cde74931)
STEP 4でもう一度触れますが、M5stackにプログラムを書き込む時は、この「SLAB_USBtoUART」を選択します。
STEP 3: Arduino Core for ESP32の導入
要は、Arduino IDEでESP32を扱えるようにすることで、M5stackに書き込みができるようになる。
https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/mac.md
に載っている、以下のコマンドをまとめてコピーします。
mkdir -p ~/Documents/Arduino/hardware/espressif && \
cd ~/Documents/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32 && \
git submodule update --init --recursive && \
cd tools && \
python get.py
![スクリーンショット 2018-08-04 17.33.51.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F08a02df0-da53-fbb0-6869-0fa8105cc441.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c3cc9f74da4ac499fca9f0286a6fb4c7)
ターミナルを開いて、貼り付けます。
![スクリーンショット 2018-08-04 17.34.29.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F8df05e13-d95a-0728-dcb6-7bae4dbd18cf.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=3b00c6e1ba8d6a6ae1e60cd2dfe42901)
実行して、成功するとこのようになります。
![スクリーンショット 2018-08-04 17.36.00.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Fb79c9014-5d54-0836-ec69-f2c03847cf32.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=f76bfd4331ddd6cd089e4f8967a03d7f)
エラーが返ってきた場合。
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
もし、このようなエラーが返ってきたら、Macの開発者用コマンドラインツールがまだインストールされていないということですので、
xcode-select --install
とターミナルに叩いてツールをインストールしてからもう一度トライしましょう。
これを終えて、Arduino IDEを再起動すると、「ツール」 > 「ボード」 のところに、「M5Stack-Core-ESP32」を含む、ESP32系の選択肢がたくさん追加されていることが確認できます。
![スクリーンショット before after](https://qiita-user-contents.imgix.net/https%3A%2F%2Fimage.ibb.co%2Fgh54Tz%2Fboard_beforeafter1.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=589678e07c5d05814d4b2587c20374f6)
STEP4でもう一度触れますが、M5stackにプログラムを書き込む時は、この「M5Stack-Core-ESP32」を選択します。
STEP 4: サンプルプログラムを動かしてみる
M5stackにプログラムを書き込む準備は整ったので、サンプルプログラムを動かしてみましょう。
まずは、Arduino IDEにサンプルプログラムのライブラリを追加してみます。
「スケッチ」>「ライブラリをインクルード」>「ラブラリを管理...」
![スクリーンショット 2018-08-04 18.04.56.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F22221eee-c278-a63e-3df1-2113d0856865.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=652eeccd006bb899040ee684703aac8f)
「M5Stack by M5Stack」をインストールします。
![スクリーンショット 2018-08-04 18.05.57.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F75d0e90b-380e-2de8-5bb8-bde818a93193.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8bd39739ed4e1605ac7af46b3ed2f832)
「ファイル」 > 「スケッチ例」 > 「M5Stack」 から好きなサンプルを選んでみましょう。
![スクリーンショット 2018-08-04 18.07.10.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F43b4b6c1-0352-13ab-fac2-38125fa6c413.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=bace91f406e97388dae8d3cea6dc881f)
では、いよいよコンパイルして書き出してみます。
最初に、macと繋げて電源をつけましょう。(電源ボタンは2回押し)
「ツール」 > 「シリアルポート」 のところが、「SLAB_USBtoUART」となっていることを確認。
出てこない場合は、USBを反転して繋げ直しましょう。
![スクリーンショット 2018-08-04 18.01.26.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Fbc710100-5318-14e8-830a-7f4262a3812e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=99501d5aaa906057372f9020bfc201c1)
「ツール」 > 「ボード」 のところが、「M5Stack-Core-ESP32」 となっていることを確認。
![スクリーンショット 2018-08-04 17.37.33.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2F5447f0fb-bab4-1784-b8d3-ce74e15c30b9.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=152cb290d3b4bfee4da2391b1f0a36ae)
コンパイルします。
![スクリーンショット 2018-08-04 18.12.52.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Fd1885c88-e916-14ac-143c-1c746a5aaf87.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=1b3d9e73c352d6702f5f8e31e4c8d01f)
書き出します。
![スクリーンショット 2018-08-04 18.13.34.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Ff60230fc-40b0-b0f1-651f-b845451a1e2c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=802de1b4e16efe76383cfad559348620)
書き出し中、下の黒い枠(コンソール)で赤い字がズラズラ出てエラーっぽいですが、エラーではありません。
![スクリーンショット 2018-08-04 18.13.56.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F225997%2Fb41c508c-f131-3c4d-7069-cce8b00b3812.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=cc375902c9dbcacd054fabbf0144ae21)
書き出しが終わると、自動的にM5stackが再起動して、プログラムが実行されます。
おめでとうございます。
無事、Hello Worldができました。
ある程度充電できたら、ケーブルを外して単体で遊ぶことができます。
最後に
いかがだったでしょうか。
ぜひ、他のサンプルをみて遊んでください。また、ネットにもいろんなサンプルが転がっているので、センサーや、Web APIなどと連携させて遊んでみてはいかがでしょうか。
まだ持ってない人は、5,000円もしないので、買いましょう。
自分は、大学のオープンキャンパスの1日前に研究室の先生からM5stackでデモを作って欲しいと言われて嘆いていました。(それまでM5stackは触ってなかった。)
自分、プログラミングは好きなのですが、環境構築は大の苦手で、公式の導入手順を読んでもよくわからずに、1時間くらい書き込むことができずに、心が折れました。(USB-TypeCでも上下を意識しないといけないと知った瞬間は殺意が芽生えましたね。)
ただ、サンプルプログラムを漁っていると、結構楽しいので研究で使ってみたいという思いが少し芽生えました。
導入で諦めちゃう人が出ると勿体無いと思ったので、初心者に極力優しい記事にまとめることを心がけましたが、今見返すとややしつこいような気がします。()
それでも、誰かのために役立てば、幸いです。