M5Stack UI Flow Remote Function を試す

 M5Stack UI Flow に Remote Function というのがあって面白そうだったので試してみました。Remote Function はスマートフォンなどのブラウザから M5Stack を操作するための UI を提供するもので、下記ツイートで紹介されていました。

UI Flow の環境

 UI Flow の環境設定については以前この記事にも書きましたので参照いただければと思います。

blog.akanumahiroaki.com

 今回は UI Flow のバージョンについては 2018/09/29 時点で最新だった v0.7 を使用しています。

使用方法

 Remote Function は UI Flow のメニューの一番下に配置されています。

f:id:akanuma-hiroaki:20180929202857p:plain

 Remote Function のブロックは下記のようなものが用意されています。

 一つ目のブロックは、 M5Stack の LCD に Remote UI の URL の QR コードを表示するためのものです。

 二つ目のブロックは Remote UI にボタンを表示し、押された時の動作を設定するものです。

 三つ目のブロックは Remote UI にラベルを表示するためのものです。

f:id:akanuma-hiroaki:20180929203442p:plain

 今回は Remote UI でボタンが押されたら変数のステータスを切り替えて M5Stack の LCD に表示するものを作ってみます。実際は LED 等を組み合わせて点灯の状態を切り替えたりするイメージです。

 M5Stack 側の表示は下記のようにしてみました。画面下部の STAUTS: の右側の TEXT 部分にステータスが True/False で表示されます。画面中央部には Remote UI アクセス用の QR コードが表示されます。

f:id:akanuma-hiroaki:20180929204547p:plain

 ブロックは下記のように構成しました。 QR コードを表示した後、 Remote UI に Change Status ボタンを配置します。ボタンが押されたら status 変数の中身を切り替えて、 M5Stack の LCD の表示に反映します。最後に Remote UI にも status 変数の中身を表示するラベルを配置します。

f:id:akanuma-hiroaki:20180929204748p:plain

動作確認

 上記のブロックを M5Stack で実行すると、下記のような画面が表示されます。

f:id:akanuma-hiroaki:20180929212426j:plain

 この QR コードをスマートフォン等で読み取って Remote UI にアクセスします。私が試した限りでは上記 QR コードはうまく読み取れなかったのですが、 Remote UI にアクセスするための QR コードは UI Flow の右上のボタンをクリックすることでも表示できます。(下記画像は読み取れないように加工してあります。)

f:id:akanuma-hiroaki:20180929211736p:plain

 QR コードを読み取って Remote UI にアクセスすると下記のような画面が表示されます。ボタンやラベルの色はランダムに決まっているようです。

f:id:akanuma-hiroaki:20180929212605p:plain:w300

 Change Status ボタンをタップすると、 M5Stack の LCD の STATUS 表示が切り替わります。 Remote UI 側はリロードするとその時の status 変数の内容が反映されますが、試した限りではリアルタイムでは反映されませんでした。

まとめ

 全て自前でリモートのUIの環境を用意しようと思うと、サーバを用意したり、スマートフォンアプリもしくはWebのUIを実装するなどかなり手間がかかると思いますが、こんなに簡単にリモートのUIが使えるのはすごいですね。もちろん凝ったUIは作れませんが、シンプルなUIでも十分なケースは多いですし、プロトタイピングやイベント等での一時利用にはすごく便利だと思います。 UI Flow 自体は v0.7 でもまだファイルが保存できなかったり、まだまだ足りてない部分も多いと思いますが、今後のアップデートに期待したいです。