PlatformIO+M5Stackを使ってみた


先日購入したM5Stack FIREですが、最近気になっていたクロスプラットフォームのIDE「PlatfomIO」をこのM5Stackで試してみることにしました。

PlatformIOはMicrosoftのエディタVisual Studio Codeのアドオンとして利用できる、クロスプラットフォームの開発環境です。
ここで、クロスプラットフォームというのはWindows/Mac/Linuxというだけでなく、Arduinoを初めとした様々な開発環境に対してもクロスプラットフォームになっています。
PlatformIOだけで、Arduinoの開発もmbedの開発も(PlatformIOでサポートされているボードならば)行えます。

とりあえずインストールしてみました。
参考にしたのは以下のページです。

PlatformIO IDE for VSCode でESP32のプログラム開発

Arduinoと違ってサンプルがインストールされないようなので、インターネットからPlatformIO対応のプロジェクトを探して、まずはビルドさせてみました。

試してみたのは以下のソフトです。
ネットラジオやゲームやオシロ、Webサーバ、天気予報、WiFiモニタなどM5Stackでできることを一まとめにしたアプリケーションです。

botofancalin/M5Stack-MultiApp-Advanced: A M5Stack firmware made on PlatformIO

ZIPファイルとしてダウンロードし、解凍してフォルダをPlatformIOから開けば準備OKです。
ビルドはウインドウ左下のチェックマーク、M5Stackへの転送はその隣の矢印マークをクリックします。

無事、動作が確認できたので、今度は自分でもプロジェクトを作ってみました。

新規のプロジェクトで、開発ボードを選択するのですが、現時点で507種ものボードがサポートされています。
そして、M5Stack FIREもその中に含まれています。(Huge update for ESP32 dev/platform: Debug, PSRAM, Embedding Binary Data – Announcements – PlatformIO Community

プロジェクト作成時にボードとしてM5Stack FIREを指定すれば、ツールチェインは適切に自動選択されます。
さらに、M5Stack用のArduinoライブラリがPlatformIOにも用意されているので、それをインストールします。

M5Stack by Zibin, M5Stack · Libraries · PlatformIO

インストールは、PlatformIOのLibrariesアイコンをクリックし、検索窓にM5Stackと入れればライブラリが見つかるので、クリックします。

すると、ライブラリの詳細とインストールボタンが出てきますので、インストールすれば完了です。

このライブラリを自分のプロジェクトで使用するには、platform.iniファイル(プロジェクト作成時に自動で生成されます)に以下の記述を追加します。

lib_deps =
     # Using library Id
     1851

     # Using library Name
     M5Stack

     # Depend on specific version
     M5Stack@0.2.2

     # Semantic Versioning Rules
     M5Stack@^0.2.2
     M5Stack@~0.2.2
     M5Stack@>=0.2.2

今回は、以前Arduino用に作成したブロック崩しを移植してみました。
LCDが縦横逆ですが、解像度自体は変わりませんので、LCD、サウンド、ボタン周りの修正で済みました。
(2018/8/14追記:画面が縦横逆なのは修正しました)

コードは以下にアップロードしてあります。

boochow/breakout-m5stack

PlatformIO、なかなか良いです。何といってもエディタがVS Codeなのが良いですね。
デバッグ機能は有償らしいですが、そのうちどんなものか調べてみようと思います。

コメント