はじめに
この記事は、ロボットトイの「toio」を使った開発に利用可能な「開発者向けマット(仮)」を、ビジュアルプログラミングでの開発で試してみた話の記事の第二弾です。
ちなみに、「開発者向けマット(仮)+ビジュアルプログラミング」を試した第一弾の記事は以下になります。
●#toio の開発者向けマット(仮)をビジュアルプログラミングで使ってみる( #GWアドベントカレンダー 5/2 ) #おうちでロボット開発 - Qiita
https://qiita.com/youtoy/items/cb018dd44bf3e533e42b
やったこと
今回試したものが動いている時の様子は、↓こんな感じです。
2台の toio のうちの 1台を開発者向けマット上に置くと、もう1台の toio がマットの中心をはさんで対称となる位置に移動する(+向きもマットに置いた toio と真反対に向くよう動く)、というものになります。
#toio の開発者向けマット(仮)を使ったマス目の指定を、ビジュアルプログラミングで試した!
— you (@youtoy) May 9, 2020
内容は簡単で、
2台のうちの片方の、今いるマス目の位置と向きを使い、もう1台のほうに -1 をかけ合わせたマス目の位置・向きを 2秒ごとに指定する、というもの。
#おうちでロボット開発 #toiotomo pic.twitter.com/JqaL5VRh39
仕組み
今回も第一弾の記事と同様に、toio 2台と同時接続できるほうのバージョンのビジュアルプログラミング環境を使っています。
プログラムの内容はシンプルで、流れは以下のとおりです。
片方の toio が置かれた(開発者マット上の)マスの位置を示す「行と列」を取得して、それに -1 をかけ算した数字にして、もう 1台の toio の位置指定に使います。
また、その際に一方の toio の向きも取得して、マス目の位置の処理と同じように -1 をかけ算した数字にして、もう 1台の toio の向き指定に使います。
そして、一方の toio を置いてから、もう1台の toio が移動するのにある程度時間が必要になりそうなので、上記の処理を 2秒ごとに行うようにしました。
これだけで、冒頭にのせた動画のような仕組みを作ることができます。
開発者向けマット(仮)の補足
開発者向けマットでは、今回使ったマス目の指定以外に、もっと細かい位置を指定できる絶対位置座標の x と y の値を使う、ということもできます。
そのあたりの話は以下の記事で書いていますので、よろしければ参照ください。
●#toio の目標指定付きモーター制御の仕様を確認してみる( #GWアドベントカレンダー 5/3 ) #おうちでロボット開発 - Qiita
https://qiita.com/youtoy/items/6620385a0f77e22ac6fd
また、今回使った専用マットは以下のキャンペーンで入手したものですが、後日スイッチサイエンスさんで販売される予定があるようです。
●スイッチサイエンス「toio」取り扱い開始記念~「toio」ではじめよう、おうちでロボット開発キャンペーン~ – スイッチサイエンス マガジン
まとめ
今回のような簡単なプログラムで、2台の toio を連動させるのが実現できるのは、すごく便利で良いなと感じました。
またビジュアルプログラミングの開発だと、加えた変更が随時反映されるので試行錯誤がすごくやりやすいのも良いです(今回の記事の内容だと、マス目を指定したらどんなスピードや軌跡で移動するかを、動かして試して確認していきました)。
開発者向けマットにある仕組みで「絶対位置座標とマス目」は、今回や過去の記事で使ってみましたが、「簡易カード」という試せてない仕組みが残っているため、それも試せればと思っています。
やってみたこと(後から追加)
こんな内容も後からやってみました。
#toio の開発者向けマット(仮)の絶対位置座標を指定する動き等を 5パターン作って、
— you (@youtoy) May 12, 2020
その 5パターンをランダムに組み合わせて動き続ける、というプログラムを作ってみた。
ちなみに、ビジュアルプログラミングで作ってます。#おうちでロボット開発 #toiotomo pic.twitter.com/BwNHJALPyy
先ほどの #toio の開発者向けマット(仮)を活用して色々な動きをさせた動画、作ったプログラムはこんな感じです。#おうちでロボット開発 #toiotomo pic.twitter.com/L6S2yS3ivF
— you (@youtoy) May 12, 2020