どれ使う?プログラミング教育ツール

ロボットが床の色を判別して自動で向きを変えるプログラムを作ってみた

 ロボット掃除機ルンバで知られるアイロボット社のプログラミング学習用ロボット「Root coding robot(以下、Root)」前回に引き続きご紹介します。今回は「Root」のカラーセンサーを使って、床の色に反応して動きを変えるプログラムを作成してみましょう。

カラーセンサーを使うプログラム

 「Root」の底面にはカラーセンサーがついていて、走行中に床面の色を判定することができます。白い床に赤と青のエリアを作り、赤と青の間を行ったり来たりして動き続けるプログラムを作成します。

白い模造紙を広げた上に色画用紙でエリアを区切る
赤で囲んだところがカラーセンサー

 カラーセンサーを使うときは、白い模造紙などの上で「Root」を走らせましょう。例えばフローリングで走らせると、木の色の赤みをスキャンして赤と検知してしまいます。なお、「Root」付属のマス目状のシートを使用すると、つなぎ目から下の床の色が見えるので、色の検知がうまくいきません。

付属のマス目シート(写真右上)はカラーセンサーを使うのには向かない

 「Root」のプログラミングには、iOS、Android用のアプリか、Webブラウザーでアクセスできる「iRobot Coding」を使います。ここではWebアプリを使うので、Webブラウザーで「iRobot Coding」にアクセスしてください。Web Bluetoothの機能で「Root」と接続するため、「Google Chrome」か「Microsoft Edge」を使用します。「Safari」は非対応です。

Webアプリにアクセスしたところ。メニュー内の[Language]で[にほんご]を選び、あたらしいプロジェクトを開く

 まず、プログラムをスタートしたらまっすぐ進むようにプログラムします。ライトは緑に点灯させて通常走行らしさを演出します。

「レベル2」でプログラミング。ライトを緑に点灯させて、[そくどをセット:ひだり"*"みぎ"*"センチ/びょう]ブロックで前進させる。色は0〜255のRGB値で指定

色を判定して動きをつける

 次に、赤い色を見つけたときの動きを作ります。[いつ?"*"スキャンしたとき]というイベントブロックを使用します。

[プログラムがかいしされたとき]ブロックに続けて、[いつ?"*"スキャンしたとき]ブロックを接続。スキャンする色や「Root」のどの部分でスキャンするかを選択肢から選べる。スキャンできる色は黒、緑、赤、青の4種
赤をスキャンした時のプログラム。ライトをピカピカと赤に点灯させて、いったん10cm後退。効果音を鳴らして180度回転したら、ライトを緑に点灯して前進する。ライトと音は演出

 続けて、青い色を見つけたときの動きを作ります。プログラムの構造は赤と同じです。ライトの色と効果音が異なります。次の図はプログラムの全体で、青い色を見つけたときのプログラムが追加されています。

プログラム全体。赤を判定したら反対側を向いて進み、青を判定したらまた反対側を向いて進むので、「Root」はずっと行ったり来たりする

 このプログラムを実行したころを動画でご覧ください。

アイロボット製ロボット「Root」が床の色を判別して方向転換 - 窓の杜

 こんなふうに白いエリアの外を「Root」が判定できる色で囲っておけば、エリア外にでないように動き続けるプログラムを作成することができます。色を判定したときの動作や、色の配置を工夫するといろいろな動きをさせられそうですね。

 なお、色を検知したときにいったん後退させて白地のエリアに戻してあげないと、そのまま色を繰り返し検知し続けてしまうことがあるので気をつけてください。いろいろ試してみると、けっこう敏感に色の成分に反応する一方、小さなものの色を判定するのは得意ではないようです。初めて試すときは、今回の例のように大きなエリアを作るのがおすすめです。

 2020年度から小学校でプログラミング教育が実施されています。これに伴い家庭でも手軽にプログラミングを学習できるツールが多数登場していますが、どんなツールを使えばいいのか迷ってしまう方も多いのではないでしょうか? そこで本連載では家庭でのプログラミング教育にピッタリなお勧めツールを紹介していきたいと思います。