前回の記事では、M5Stackにどんな種類があるのかを紹介しました。今回はそれに引き続き、実際にM5Stackを動かすための環境構築について解説します。

特にMacの場合、公式の説明書に従っていてもうまくいかないのでM5Stackで電子工作等をする上で最も(?)大変になるのがこの環境構築だと思われます。環境構築に関しては、私も大変苦労したしたので、M5Stack初心者にもわかりやすいように経験した限りで開発環境を解説していきたいと思います。

本記事では、Macにおける環境について解説していきますが、Windowsとおおよそは同じのはずです。

開発環境構築の前に…詰まったらまずは新しい情報を検索することがポイント

M5Stackに関する全般について言えることですが、公式が頻繁に仕様を変えることがあるので、「おや?」と思ったら、すぐに検索して新しい情報を探すようにするのが良いと思われます。

どの開発環境が自分に向いているか

まず、簡単にどういう人がどの開発環境を使えば良いかを紹介します。以下、「スケッチ」というキーワードが登場しますが、これはArudinoの世界ではプログラムを指します。

それぞれの開発環境の特徴は、

Arduino IDE→導入が簡単、Arduino言語は広く使われているので他の人のスケッチが探しやすい、エディタとしては少し扱いづらい。

PlatformIO→ライブラリの管理が複雑だが、慣れているとわかりやすい、Arduino IDEと同じ理由で他の人のスケッチが探しやすい。

UIFlow→処理が抽象化されたブロックを使って直感的にプログラムが書ける環境。ブラウザ上で手軽に扱えるのが他の環境に比べて強みであり、すぐにM5Goの付属キットを使うことができる。しかし、スケッチがUIFlowのアプリケーションの一部になるのでメモリが圧迫され、本格的な開発には向かない。UIFlowで使われるMicroPythonはM5Stackで使っている人が少ないので情報が得づらい。

MaixPy IDE→Pythonを使っており、画像認識やニューラルネットの計算を得意とするM5StickVと相性が良い。自分のスケッチだけを書き込めるのでメモリを全て活用できる。UIFlowと同じ理由で情報が得づらい。

なお、UIFlowは、M5StackVの開発には使うことができませんが、それ以外のモデルであれば可能です。

以上の特徴から、目的に応じて下記のように環境をおすすめします。

  • プログラミング、開発初心者である…Arduino IDE
  • Visual Studio Codeをよく使う、慣れている本格的な開発をしたい…PlatformIO
  • お試しで使ってみたい、M5Goを買った、教育用に使いたい…UIFlow
  • 本格的にPythonを使いたい、M5StickVを使いたい…MaixPy IDE

他にM5cloudなどもありますが、既に公式にはサポートされていないようなのでここでは取り扱いません。それではそれぞれの環境について解説します。

各開発環境についての注意点

MaixPy以外のどのエディタにも共通することとして、M5Stack用のUSBドライバをインストールしなければならないので気をつけましょう。

USBドライバをインストールする画面

Arduino IDE

Aruduino IDEは、ほぼC++と同じであるArduino言語を使います。Arduino IDEはM5Stack付属の説明書にも載っているエディタで、これにM5Stack用の追加のライブラリを追加すればすぐにM5Stackを動かすことができます。ただし、説明書に記載のボードマネージャのURLのリンクが切れているので注意してください(2019年8月現在)。何と言っても導入が簡単で、すぐに動かすことができるので手間がかかりません。一方で、エディタとしての機能が乏しいのでプログラミングに慣れている人には少し不満かもしれません。

Arduino IDEの編集画面

実行するには、スケッチを書いたら、ツール→シリアル ポートで正しいシリアル を選択、左上の矢印ボタンを押すと基板に書き込みがされて実行されます。

また、外部エディタと連携するオプションも用意されています。メニュー画面より、Arduino→Preferencesを開き、「外部のエディタを使用する」をONにすることでエディタとしてVScodeを使用することもできます。

参考記事:
初心者向けM5Stackの始め方(ArduinoIDE編) | ラズパイ好きの日記
https://raspberrypi.mongonta.com/howto-start-m5stack-arduinoide/

PlatformIO

PlatfomIOはVScodeの拡張版として存在するエディタで、VSCodeがインストールされていればすぐにインストールすることができます。

Arduino言語でスケッチを書いて、USBを通じて書き込みをするという流れはArduino IDEと同じですが、このPlatfomIOだけで書き込みもできて、プロジェクトごとにライブラリ等を個別に管理するので混乱も起こりづいため、使い勝手が良いです。それなりにコードを書いてM5Stackを動かすならこれがオススメです。

さらに、多くの拡張ツールがPlatformIOを通じて簡単に利用できます。

PlatformIOのホーム画面
書き込みもボタン一つでOK

参考記事:
M5Stackの開発環境を整える – PlatformIO IDE編 – Qiita
https://qiita.com/lutecia16v/items/1c560bdd7eac7ebeaff7

UIFLow

これから紹介するUIFlowからは、言語がPythonライクな言語、MicroPythonによる開発環境になります。UIFlowはブラウザ上で動作するアプリケーションでその特徴はブロックによるコーディングができることと、とても早くM5Stack上での動作を見られるという点にあります。

子供が電子工作を始める場合などにぴったりかもしれません。

UIFlowのブロック編集の画面
直感的でわかりやすい

M5Stackの基板に書き込みをする他の環境と違って、UIFlowはまず付属のファームウェア(初期プログラム)を書き込んでからその上で動作させるので書き込みが不要で、Web上で書いたコードを1秒ほどで動作させることができます。しかし、UIFlow以外の環境と違って、ファームウェアを上書きすることができないのでスケッチは全てファームウェア上で動かすことになります。UIFlowのファームウェアには他にもたくさんの機能が入っているので本格的な開発になるとメモリが足りなくなる可能性もあります。

UIFlowのスタート画面

M5Stack公式がUIFlowをM5Goの方にお勧めしているのは、付属のモジュールをすぐに試せるようになっているからですが、M5StackシリーズならばUIFlowはM5StickV以外ならばどの機種でも使えます。

まずはM5StackにUIFlowのファームウェアを書き込むためにM5Burnerをインストールする必要があります。

M5Burnerを使ったファームウェアの書き込み

※Mac版の場合、M5BurnerをDownloadsフォルダに入れていると動かないのでApplicationsフォルダに移動しましょう。

参考記事:
M5stack(M5GO)とM5UI.Flowであそんでみた – Qiita
https://qiita.com/mashed-p/items/1ba7a3dc54e3b766c2a8

MaixPy IDE

Maixpy IDEは記事執筆時点ではあまり試せていないのですが、M5Stick、特にM5StickVを使うなら、ニューラルネットワークプロセッサを生かした画像認識を扱う方が多いようですので、ライブラリが豊富なPythonを使うことになると思います。そのためにMicroPythonを使えるMaixPyを使うことになると思います。

雰囲気はUIFlowのような感じで編集ができて、M5Stickのカメラの映像をリアルタイムにチェックすることができます。ただしUIFlowのようにインターネットを通じて実行等をすることはできません。

こちらもM5Burnerのようにファームウェアの書き込みをするためにKflash_GUIをインストールする必要があります。

Mac版ではApplicationsに移動しても起動できないのでターミナルから open /Applications/kflash_gui.app で実行します。

MaixPy IDEでカメラ画像を読み込んでいる


参考記事:
m5-docs/m5stickv_quick_start.md at master · m5stack/m5-docs
https://github.com/m5stack/m5-docs/blob/master/docs/en/quick_start/m5stickv/m5stickv_quick_start.md#kflash

macOSでM5StickVをはじめる – Qiita
https://qiita.com/mayfair/items/d1a4ad360670c61ba0fa#fn3

まとめ

以上が実際に体験してきた開発環境になります。
私は現状特にPythonで書く必要がないので、エディタとして使いやすいPlatformIOを使っています。
M5Stackの開発環境は、今後どんどん変わることが予想されます(※付属の説明書に記載のURLは既に使えなかった)。この記事を参考にしながらも、他の最新の情報を参考にしつつ、環境構築をすることをお勧めします。

この記事をシェアする