「sphero Edu」で遊んでみた。イマイチな感じ。 | 「藍染 迅(超時空伝説研究所改め)」の部屋

「藍染 迅(超時空伝説研究所改め)」の部屋

小説家ワナビーの「藍染 迅(あいぞめ じん)」です。

書籍化・商業化を目指し、各種コンテストに挑戦しながら、カクヨム、小説家になろう、エブリスタ、アルファポリスなどに作品を投稿しています。

代表作は異世界ファンタジー「「飯屋のせがれ、魔術師になる。」。

サンプルプログラムをコピペしながら、簡単なプログラムを書いてみた。

5秒ごとに往復するという動作をメインに、「障害物にぶつかったら、反対方向に走り出す」というルーチンを入れてみた。あとはついでに、効果音音符とかLED点滅キラキラとか。

イメージ 1

JavaScriptコードにすると、こうなる。


async function onCollision() {
await delay(0);
stopRoll();
await Sound.ScienceFiction.WarningAlarm.play(false);
await strobe({ r: 255, g: 0, b: 30 }, 0.2, 10);
setMainLed({ r: 109, g: 255, b: 113 });
await delay(3);
setHeading(getHeading() + 180);
await delay(1);
setSpeed(100);
}
registerEvent(EventType.onCollision, onCollision);

async function startProgram() {
await Sound.ScienceFiction.Data.play(true);
setMainLed({ r: 109, g: 255, b: 113 });
while (true) {
await roll(getHeading(), 100, 5);
stopRoll();
await Sound.EightBit.LevelComplete.play(true);
await delay(1);
setHeading(getHeading() + 180);
await strobe({ r: 160, g: 255, b: 122 }, 0.2, 10);
await delay(0.025);
}
}

「BB-8」と「BB-9E」で動作テストをしてみたが、結果はイマイチ。
どうも動作が安定しない

コードにバグがあるのかと、いろいろ手直ししてみたが、結局のところ「衝突ハッを検知する加速度センサーの問題だということが分かった。タラー
結構な勢いで壁や家具にぶつかっても、「衝突」と認識されないことが多い。

そうなると、決められたパターンで走らせるというプログラムしか、安定して運用できないことになる。
つまらないねえ。ダウン

ところで、「sphero Edu」はiPhone、iPad、Android端末、Windows 10、Chromeなど、さまざまな環境で提供されている。なので、PC上でも走らせることができた。グッ
コーディングには、ちょっと便利かも。ヘルプとかを読みながら作業ができるし。

意外と手厚いのが、効果音音符の種類、こんなに使い分けないだろうってくらい、さまざまな音声を使用することができる。日本語をしゃべらせることもできるが、音声はすべて使用端末上で再生される。
ロボット自体が喋ってくれないのは、ちょっと寂しいね。

さて、この先何をさせたもんだろうか? ダンスに見えるルーチンでもデザインしてみようか?
カーブを描いて走らせたりするには、ちょっと工夫(=計算?)が必要だろうな。