見出し画像

Atom mate for toio ビジュアルプログラミング ②座標編

①準備編によって、ATOM Mate for toioやUIFlowの基本的な使い方が理解できました。今度は実際にトイオを動かしてみたいと思います。トイオは、マットの座標を読み取って指定した座標へ移動させることができます。サンプルを見ますとUIFlowでも同じように座標を使える事が分かりました。これは嬉しい‼

下記の動画では、トイオのマット上における位置をAtom MatrixのLEDに反映させて表示しています。例えば、太陽はマットのちょうど真ん中に位置しているので、トイオが太陽に止まるとAtom MatrixのLEDも真ん中が点灯し、トイオが移動すると、Matrix LEDも同じ方向に移動します。レーダーのような働きですね。


そしてもう一つ、リモート+と呼ばれる便利な機能を見つけました。下記の動画では携帯をリモコンにしてトイオを制御しています。「Run Away」を押す度にランダムな座標へ移動します。「Go Back」で元の位置に戻るようにプログラムしました。スパイダーマンとドクターオクトパスに手伝ってもらいましょう。

リモコン画面に、Run Away = Button1 Callback(ランダムな場所に移動),  Come Back = Button2 Callback(指定された場所に強制移動)を作成 。Aボタンが押されても指定された場所に戻ります。UIFlowの画面にて簡単に設定ができました。


【今回の作業で気づいたこと】
●Atom MatrixにはLEDの所がAボタンになっており、ボタンを押した/離した際にトイオの動きを発動させることができます。しかし、Aボタンを押された時のブロック内ではループやif文が実行されませんでした。
⇒この場合は、新しい関数ブロックを作成して座標移動を設定し、Aボタンが押されたブロックにその関数ブロックを入れることで実行できました。Aボタンの中では、関数と組み合わせて繰り返しが実行されました。一方、Setupのずっとブロックの中は繰り返しやifブロックは実行されないようです。

Aボタンが押されたとき、ランダムな位置に5回繰り返してトイオが移動するプログラムの一部です。

●あとで問題発生!連続してランダムに移動させると、Atom MatrixのLED表示がなぜか消えてしまいました。Aボタンを押すと、Setupのずっとの命令が止まってしまうか待機の状態になってしまうようです。
⇒こちらに関しては、また改めて考察しようと思います。


●ここで気になった方がいらっしゃるかもしれません。巨大な水色ブロックの存在感を!このブロックのおかけでランダム移動が可能になりました。始めは扱い方が分からず戸惑ったのですが、有難いことに詳しく解説していただいたJ.Hokenさんの記事がとても参考になりましたので貼っておきます。X, Y, angleにランダムな数字を入れるとマットの上をあちこち移動できるようになりました。


【今回の作業を終えた感想】
サンプルプログラムを試しているうちに新しいブロックや機能などを発見することができました。思った通りに動かせないことが多いですが、少しずつ理解が深まっているように感じます。と言っても、あくまで初心者向けのビジュアルプログラミング環境下においてですが。

今回はAtom Matrixからトイオに移動命令を出すプログラムでした。トイオからも何か動作のキューは出せないものかと考えるようになりました。そういえば、トイオにも底面にボタンがあるのです。こちらのボタンが使えればトイオ側からも命令が出せるのではないかと思います。ではどうやってトイオのボタンが押されたかを判定すれば良いでしょうか。次回はこの辺りを調べてみようと思います。

マイナーな内容で分かりにくい文章を最後まで読んでいただき、誠にありがとうございます。またぜひお立ち寄りください。

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