見出し画像

一定時間が経過したことを知らせしてくれるロボットをつくる

はじめに

在宅勤務などで集中して作業していると、何時間も経過したのに気付かないことがあります。以前はAppleWatchの通知に気がついたときは立ち上がって歩くようにしていたのですが、すっかり慣れて無視するようになってしまいました…。ちょうど4月23日に「開発者向けマット(仮称)」のサンプル版配布を行うキャンペーンが始まり、応募したところ連休前に届いたので簡単なものをつくってみました。以下の投稿に含まれている画像のように、机の上に敷いた簡易プレイマットの限られた空間を走り回ることにより、一定時間が経過したことを教えてくれる小さなロボットです。

つくり方

用意するもの
・toio コア キューブ:1個
・M5StickC:1個
・簡易プレイマット:1枚

toio コア キューブ(以下キューブ)の単体版に付属する簡易プレイマットと、「開発者向けマット(仮称)」に含まれている12枚のマットの表面は同じ仕様で、左上の座標が(98, 142)、右下の座標が(402, 358)です。いろいろと試したところ、マットのギリギリを攻めすぎると移動中にはみ出して止まってしまうことが多かったため、1ブロック(?)分だけ余裕を持たせた範囲を移動するようにしました。

移動の際には、v2.1.0でサポートされた「目標指定付きモーター制御」を活用しています。これにより、目標となる状態(位置と向き)を指定するだけでキューブが自律的に移動してくれるため、非常に簡単に制御できます。この辺りの手軽さは絶対位置制御ならではですね。

Arduino IDE用のコードは以下の通りです。Arduino IDE v1.8.12、esp32 v1.0.4、M5StickC v0.2.0の組合せで動作確認しています。

さらなる発展

この例では単に2つの地点間を一定時間ごとに往復しているだけですが、複数目標指定付きモーター制御を活用すると複雑な動きも簡単に実現できそうです。また、IFTTTから時間指定で動かせるようにするのも良さそうです。

リファレンス

・Sony Interactive Entertainment Inc.「toio™コア キューブ 技術仕様
・M5Stack「Arduino IDE Development
・「M5StickC非公式日本語リファレンス

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