IchigoJamで段ボールロボットをプログラムで動かす「ソビーゴ こどもロボットプログラミング」を動画レビュー

ロボットにIchigoJam(イチゴジャム)で命令を出すワイズインテグレーションの「ソビーゴ こどもロボットプログラミング」をレビュー。

これまでの【EdTech通信】はこちら

ソビーゴ こどもロボットプログラミング 基本情報

今回ご紹介するのはワイズインテグレーションさんから販売されている「ソビーゴ こどもロボットプログラミング」。価格は税込み19224円。このロボット、見た目は段ボール製で紙工作感満載ですが……。

背面には「IchigoJam(イチゴジャム)」という小さなコンピューター(パソコン)が搭載されています。これでプログラムを組んで、ロボットを動かせます。

また、製品サイトやパッケージには次の3つの特長が掲載されています。

※なお、今回は2番目のセンサーの取り付けには触れず、最後の「ダンス」の部分に挑戦しています。

腕を動かす

それではロボットを動かしてみましょう。

PWM3,50

と打ち込んでEnterキーを押します。すると左腕が前方向に回転します。

PWMは回転のコマンド、3は左腕につないでいるモーターの番号、50は回転の大きさを表しており、前方向最大に回ります。50を240にすれば、後ろ方向最大に回ります。50と240の中間の値である145を入力すれば、腕が中央の位置に戻ります。

それでは、こんどは右腕を動かしてみましょう。右腕のモーターの番号は4なので、

PWM4,50

と打ち込んでEnterキーを押します。すると右腕は後ろ方向に回転。

左腕のときは回転の大きさを50と指定すると前方向に回りましたが、右腕では後ろ方向に回りました。これは左右でモーターのプラスとマイナスの向き(つまり腕を振るときの前後の向き)が逆になるからです。

それでは、こんどは両腕を互い違いに振るプログラムを組んでみましょう。腕に送る回転の大きさの数値は50, 240, 145となります。したがってプログラムは、

10 PWM3,50:PWM4,50
20 PWM3,240:PWM4,240
30 PWM3,145:PWM4,145

となりそうです。しかしこれだけでは動きません。ロボットに複数の動きを指示するときは、各動作の間をどれだけ空けるかの時間指定が必要だからです。

IchigoJamの場合時間指定のコマンドはWAITとなり、このコマンドの後ろに数値で時間を指定します。

1単位が60分の1なので、WAIT60と指定してあげればちょうど1秒になります。これを先ほどのプログラムに組み込めば、

10 PWM3,50:PWM4,50
20 WAIT60
30 PWM3,240:PWM4,240
40 WAIT60
30 PWM3,145:PWM4,145

となり、ロボットが狙い通り動いてくれます。

ロボットを走らせる

こんどはロボットを走らせてみましょう。タイヤを動かすコマンドはOUTで、この後ろの方向を表す数値を指定します。たとえば前方向の回転は33なので、

OUT33

と打ち込んでEnterキーを押すと、タイヤは前方向に回転します。

回転を止めるにはOUT0と打ち込みEnterキーを押します。

こんどは後ろ方向に回転させてみましょう。指定する数値は18です。

これらの数値はどのように決まっているのでしょうか? 実はIchigoJamでは前後左右の進行方向に対して個別に数値が決まっており、進みたい方向や速さによってこれらを組み合わせていきます。

たとえば前に進める場合は、左タイヤの前進を表す1と、右タイヤの前進を表す32を足し、33となります。これらを組み合わせることで回転動作も指定できます。たとえば左タイヤの前進である1のみをOUTの後ろに指定すればロボットは右回転で進みます。

左タイヤの前進である1と、右タイヤの後退である16を足した17をOUTの後ろに指定すればロボットは速い右回転で進みます。(別の言い方をすれば回転の半径が小さくなります)

正方形の上を走らせる

それではロボットが正方形の上を腕を振りながら走るプログラムを作ってみましょう。ただしIchigoJamの中には「90度回転させる」というプログラムはありません。どのくらいの時間回転させたらちょうど90度になるかを何度か実験して確認します。

そうすると1つの角を曲がるプログラムの構造は「直進 → (次の動作までの時間指定) → 回転→ (次の動作までの時間指定)」となるので、たとえば

10 OUT33
20 WAIT150
30 OUT17
40 WAIT67

となり、これを4回繰り返せば正方形の上を走るプログラムの完成となります。ただしせっかく繰り返しがあるなら条件分岐を使って行を減らしましょう。

10 A=0
20 OUT33
30 WAIT150
40 OUT17
50 WAIT67
60 A=A+1
70 IF A<4 GOTO20 ELSE OUT0

さらに腕を振る命令を組み込み、以下のようなプログラムが完成しました。

10 A=0
20 OUT33
30 PWM3, 50:PWM4, 50
40 WAIT50
50 PWM3, 240:PWM4,240
60 WAIT50
70 PWM3, 145:PWM4,145
80 WAIT50
90 OUT17
100 WAIT67
110 A=A+1
120 IF A<4 GOTO20 ELSE OUT0

このプログラムを2体のロボットに入力し一緒に動かしてみました。目標はダンスを踊らせることですが、はたしてダンスに見えるでしょうか?結果は動画でご確認ください。

製品の特長の検証

それでは製品の特長を検証してみましょう。

以上、「ソビーゴ こどもロボットプログラミング」でした!

この記事が気に入ったら「いいね!」をクリック!プログラミング教育・STEM教育などの情報をお届けします!

これまでの【EdTech通信】はこちら

EdTech通信 - バレッド(VALED PRESS)

© Valed.press