M5StickC Plus とUIFlowでプログラミング(5) - 反復(繰り返し)
電池残量をラベルに表示してみる
今度は、M5StickC Plusの内蔵電池の残量をラベルに表示してみましょう。中央エリアの「ハードウェア」にM5StickC Plusが備えているセンサなどのハードウェアにアクセスできるブロックがまとまっています。今回は「Power」の中の「Get battery percentage」 をプログラミングエリアに追加してください。(4) の記事で作った「Hello,World!.m5f」で使用した
「ラベル( label0 )に ("Hello M5") を表示」ブロックの中の「("Hello M5")」の代わりにこのブロックをはめます。
できたら転送して確かめて見ましょう。表示されましたか?
ただし、これには重大な欠陥があります。それは、「Setup」ブロックから始まって、「ラベル( label0 )に (Get battery percentage) を表示」ブロックを実行してラベルに表示したら、プログラムが終了してしまうということです。バッテリーの残量は使えば減りますし、充電すれば増えるはずですが、プログラムは1回通りしか走らないので、プログラムを転送したときに1回バッテリー残量を表示して、ずっとそのときの数字を表示したままになってしまっているのです。これをなんとかする(更新させる)には、「イベント」の中にある「ずっと」ブロックを使用します。
「ずっと」ブロックは「ずっと」ブロックの中にある処理を順に実行していって終わりまでくると「ずっと」ブロックの先頭の処理に戻って、文字通り「ずっと」実行してくれます。
修正後のプログラムはこのようになります。
これは、プログラムの基本の一つ「反復(繰り返し)」です。「( 1 ) [秒] 停止」ブロック を挟んでいるのは、(4)でも述べた通り、そのままだと、「反復」が非常に速いペースで繰り返されてしまうので、1秒毎に表示するようにしているからです。バッテリー残量はそれほど頻繁に変わらないので、更新間隔を下げてあげてもよいでしょう。必要に応じて、2秒とか、10秒などにでも変更するとよいです。
更新間隔を10秒に変更して、「ハードウェア」から「スピーカー」を使用した例です。「ずっと」ブロックの中に「スピーカーを鳴らす」ブロックがあるので更新するたびに音が鳴ります
この記事が気に入ったらサポートをしてみませんか?