見出し画像

Atom Mate for toio ビジュアルプログラミング ③BLE通信(ボタン)編

➁座標編のプログラミングをして気づいたこと、それはトイオとAtom Matrix間で何やらデータのやり取りしているということです。調べましたら「BLE通信」と呼ばれていました。物理的に繋がっていなくても制御できるのはこの通信のおかげのようです。

開発者様の解説動画(51:40)より。toioとM5Stackとの通信手段が図解されております。


Atom Matrixから命令できるなら、トイオからもできそうですよね。トイオには底面にボタンが付いており、トイオ本体を押すと底面のボタンが押されてカチッという音が聞こえます。UIFLowでボタンが押されたがどうか判定できれば、命令を送ることも可能ではないかと考えました。

サンプルプログラムを参考に、ボタンを押されたかどうかを判定させようとしましたが、、素人の浅知恵では全く役に立ちませんでした。そこで思い切ってXで質問してみましたら、心優しいユーザー様よりお返事を頂きました。しかも判定されているか調べてくださり、感激しました。J様、本当にありがとうございました。

toioのボタンの状態を読み込んでみると、Noneと表示されています。

返信してくださった9月11日時点では、残念ながらトイオの底面ボタンが押されたかどうかは判定できませんでした。M5Stack社様から調べてみますと直々にコメントを下さったので、近いうちに修正されることを願います。

そして10日後、早速修正していただきました。ありがとうございます。UIFlowには、BLE通信を可視化できるターミナルと呼ばれる画面があります。下記のようにプログラミングをすると数値を確認できました。0が押されていない状態、ボタンが押されると128に変わりますのでこの数値を利用してifブロックを使うと命令を出すキューになりそうですね。言ってみるものですね、ちゃんと修正してもらえて嬉しかったです。

試しにトイオのボタンを押してAtom MatrixのLEDを光らせてみました。押すタイミングによって光らない時もありますが、大体は反応してくれました。これはほかにも使えそうです。

トイオから送られてきたデータを”button"という変数にして判定しています。最初0の時は赤い点、buttonが128になったら緑色に点灯させます。ちゃんと動作しました。

【今回の作業で気づいたこと】
J様のご指南のおかげで、UIFLowのtoioタブにはReadブロックがあり、様々なデータが読み込めるようになっていることが分かりました。ボタン以外にも、バッテリー残量や姿勢角などが分かるのは凄いですよね。これらの数値が検知できるようになれば、センサーとしての働きが生まれ、簡単なオート制御が出来るかと思います。どんな動きにするか、あとはアイディア勝負ですね。


【おまけ】
2年ほど前にトイオのボタンを利用したゲームを作りましたのでご紹介いたします。こちらは、トイオ公式のビジュアルプログラミングツール、toioDoで作ったゲームです。ハロウィンな雰囲気をお楽しみください。


今年もはやくも10月になりました。のこり3か月、ビジュアルプログラミングでとことん楽しみたいです。最後まで読んでくださりありがとうございました ('ω')ノ


この記事が気に入ったらサポートをしてみませんか?