
M5Stackの開発環境を準備する
身の回りにある情報をセンサーで取得して、それをUnity上に表現するというデモを作っていきたいと思います。本当はAWSなどを使うと楽ができるのですが、デモがやりやすいようにローカル環境だけで動くものにしようと思います。
今回はM5Stackの開発環境を準備して、簡単な動作確認を行うところまでをやりたいと思います。
M5Stackについて
センサーデータはM5Stackで取得してPCに送るようにしようと思います。M5Stackの中でもタッチパネルを採用しているCore2というモデルを使います。
M5Stackを使う理由は、一般的にPCには直接センサーを追加することはできませんが、M5Stackであれば市販のセンサーを接続して、プログラムからデータを取得することができます。
他にもArduino UnoやRaspberry Piのようなセンサーを使いやすいものもありますが、M5Stackは小さな画面も付いていて、単独でも動作確認がやりやすいと思います。
個人的には組み込み系はあまりやったことがないので、Raspberry Piの方がとっつきやすいのですが、使ってないM5Stack Core2を活用したいというのもあります。
最終的にM5Stack上で動作するプログラムはセンサーのデータを取得して、PCに送る必要があります。
M5Stackの開発環境の準備
M5Stack上のプログラムの開発環境としては、UIFlowというScratchみたいにGUIでプログラムするツールや、Arduino-IDEなどがありますが使いやすいとは言えないので、Visual Studio Code(以下VS Code)にPlatformIOというIDEの拡張入れたものを使います。
まず、VS Codeをインストールします。
次に、拡張機能(Extension)を選択して、PlatformIOで検索すると蟻?みたなロゴがでてくるので、インストール。


PlatformIOの拡張機能のインストール後、VS Codeの再起動が必要でした。
PlatformIOでプロジェクトを作る
下の図の番号の順番でPlatformIOのHome画面で `New Project`で新しくプロジェクトを作ります。

プロジェクト名は任意、BoardはM5Stack Core2を選択、FrameworkはArduinoを選択。
Locationはデフォルトでもいいけど、他の制作物とセットでGithubで管理したいので、作ったプロジェクトの下にUnityIoTEdgeというフォルダを作って指定しました。

M5Core2のライブラリを追加
プロジェクトを作るときに、M5Stack Core2を選択していても、別途ライブラリは追加する必要があります。PlatformIOのLibrariesから、「M5Core2」を選択してAdd Projectしてください。
最初、ここでM5Stackを追加して実機にUploadしても何も動かないので、焦りました。

追加する先のプロジェクトを選択

サンプルの実行
先程追加したM5Core2ライブラリにはサンプルが含まれています。下の図の番号の順番で選択していくと、たくさんのサンプルが確認できます。
ここでは、Basic/displayというやつを試してみます。displayとかで検索すればでてきます。

display.inoというファイル名でサンプルコードが見れるので、全部コピーして、プロジェクトのmain.cppに貼り付けます。

下の方にPlatformIOのツールボタンがあるので、ビルド。ビルドに成功したらUploadでデバイスに作ったプログラムをインストール。
M5Stack Core2は事前にUSBで開発しているPCと接続しておく必要があります。

ビルドと、M5Stack Core2への送信がうまくいくと、下の動画のようなアプリが実行できます。
以上です。
次はサーバーにデータを送るところをやってみたいと思います。