
引き続き、M5Stack Core2を使ってチャーハンを輝かせるべく、プログラムを書いていきます。
加速度センサ値の読み取り、LED(NeoPixel)の制御、音源の再生ときたので、あとは組み合わせればほぼほぼOKなのですが、ゆくゆく必要になるであろう、ボタンの制御を今回は実装していこうと思います。
前回までのあらすじ
加速度センサ編
NeoPixel編
音源再生編
M5Stack Core2にはタッチディスプレイが付いているので、ここにボタンを表示することにします。
ひとまず、押すたびに押した回数を再描画するボタンを作ってみましょう。
ソースコード
#include <M5Core2.h> ButtonColors offColor = {BLACK, WHITE, WHITE}; ButtonColors onColor = {BLACK, RED, RED}; int count = 0; char buffer[10]; Button button(80, 65, 160, 90, false, "", offColor, onColor); void setup() { M5.begin(); button.addHandler(handleButtonTouch, E_TOUCH); button.addHandler(handleButtonRelease, E_RELEASE); sprintf(buffer, "%d", count); button.setLabel(buffer); M5.Buttons.draw(); } void loop() { M5.update(); } void handleButtonTouch(Event & e) { count += 1; } void handleButtonRelease(Event & e) { sprintf(buffer, "%d", count); button.setLabel(buffer); M5.Buttons.draw(); }
ボタンに表示される文字の差し替え方が全然わからなかったので、ソースコードを読みながらなんとか実装しました。
DEMO

押すたびに数字が増えます。
リポジトリ
いよいよ、次回はこれまでのプログラムを組み合わせて、傾けるとLEDが輝き、スピーカーから音が出る仕組み(更にタッチパネルでON・OFFできる)を作っていこうと思います。