エレキットのプログラミングロボット『KOROBO2』を使ってプログラミングの基礎をしっかり学ぶ、全5回の「エレキット ロボットプログラミング教室」。
前回の記事(第1回~第2回)に続きまして、第3回~第4回の様子をご紹介します。
↓前回記事
第1回~第2回 プログラミングの基礎と『5S』
ライントレースとは
第3回・第4回では、KOROBO2の光センサーを使って黒い線を探しながらその上に沿って走る「ライントレース」にチャレンジします。
ライントレースは、KOROBO2搭載されている2つの光センサーで床面の色の明るさを見ることで白い地なのか黒い線なのかを見分けることでその上に沿って走るというものです。
KOROBO2の底面から見た様子。光センサーと投光用LEDがついたユニットが左右に2個ついています。
このように床面を照らして、床の色の明るさ(白か黒か)を見分けます。
例えば、右側の光センサーが黒い線を検知していたら右に回ることで、黒い線がボディの中央になるような姿勢にすることができます。
右側に黒い線があるとき
また、左側に黒い線があるときは先程と逆向きの動きで左に回ることで、黒い線がボディの中央になるような姿勢にすることができます。
左側に黒い線があるとき
そして、黒い線がボディ中央にあるときは、左右の光センサーはどちらも白を検知しているので、このときはまっすぐ前に進みます。
中央に黒い線があるとき
このようにして左右の光センサーの真下が白か黒かを見分けることで、左右に回ったり前進したりして、ラインの上をきれいにたどって進むことができます。
白は光をよく反射し、黒は光をあまり反射しない
ライントレースは「光センサーによって床の色の明るさを見分けます」と言いましたが、このしくみをより詳しく理解するには小学校の理科で習ったような「白は光をよく反射し、黒は光をあまり反射せず吸収する」という話を思い出していただくとわかりやすいと思います。
しくみを図にすると下図のようになるのですが、光センサーは床面で反射する光(投光用LEDで照らしている光が反射したもの)の明るさをセンサーで感知することで白黒を見分けます。
反射してくる光が明るければ白、光が暗ければ黒となります。
まずは黒い床を見つけたら止まる
最初からライントレースにチャレンジするのはちょっとむずかしいので、まずは「白い床の上では前進し、黒い床を見つけたら止まる」というプログラムをつくってみます。
動きは非常にシンプルですが、光センサーは感度調整を事前にちゃんとしないとうまく反応してくれないので、ここでうまく動かせるようになることが後々のライントレースにも続く大切なポイントとなっております。
KOROBO2をスタートさせて黒い四角のところで止まるようにします
ライントレースにチャレンジ!
さあ、ついにライントレースです。
ここからセンサー2個を使うことになり、プログラムがちょっと複雑になってきます。
条件分岐を入れ子にして左右の光センサーを監視します
最初は黒い線を見つけたら避けてしまうような動きをしていたものの、試行錯誤していくうちにだんだんうまく動くようになってきました。
みなさん、上達が早いです。本当にすごい。
スムーズにライントレースできています。すごい!
交差点(黒の正方形)があるコースで右や左に曲がって進む動作にもチャレンジします
次はいよいよ最終回
ついに次回は全5回のプログラミング教室の第5回、最終回となります。
最後は各々が作ったプログラムを見せ合ったり、ロボットの動きを披露したりする発表会です。
みんながどんなプログラムを披露してくれるのか、楽しみですね!