前回と同じ「線をたどる」を、センサーの使い方だけ変えてやり直します。色モードから反射光モードへ。切り替える理由と、ひとつだけ増える作業の話です。
色の名前をやめて、明るさの数字で読む
前回の色モードでは、センサーが「白」「黒」と色の名前で答えてくれました。反射光モードは答えません。返ってくるのは 0〜100 の数字だけです。
切り替えるいちばんの理由は、銀色です。レスキューラインのコースには、救助ゾーンの入口に銀色のテープが貼ってあります。ところが色モードでは、銀色を「白」と答えてしまいます。床の白と区別がつきません。
反射光なら数字で返ってくるので、銀色は白よりさらに大きな値になります。走りながら「ここが入口だ」と気づけます。
理由はもう2つあります。色モードは少し遅く、線のふちのような「あいだ」で「白でも黒でもない」と答えることがあります。反射光なら、どちらも起きません。
そのかわり、作業が1つ増えます。白と黒の境目を、自分で決めることです。
白と黒を測って、しきい値を決める
やることは3つです。
| やること | |
|---|---|
| 1 | 白い床の上にセンサーを置いて、数字をメモする |
| 2 | 黒い線の上に置いて、数字をメモする |
| 3 | そのちょうど真ん中を境目にする |
この境目をしきい値といいます。しきい値より大きければ白、小さければ黒として扱います。
図の 85 と 15 は例です。自分で測った数字を使ってください。隣の席の子の数字を写しても、自分のロボットは動きません。
教室が変われば、数字も変わる
反射光の数字は、まわりの明るさで動きます。窓際と部屋の奥でもちがいます。
ですから大会の会場では、必ず測り直します。これを忘れると、教室では動いたのに本番で動かない、ということが起きます。
プログラムの形は、前回のまま
4つの分かれ道も、「もし」の入れ子も、前回とまったく同じです。変わるのは、白か黒かをどう判定するかの部分だけです。
| 白黒の判定 | |
|---|---|
| 前回(色モード) | 色が黒なら |
| 今回(反射光モード) | 数字がしきい値より小さければ |
実際に組んだプログラムがこちらです。
4つめの「黒・黒」も、前回と同じく空けたままにします。交差点なのか、太い線なのか、ゴールの印なのか、ひとつに決まらないからです。
1つ足すたびに、走らせる
作る順番を決めてあります。
| 作るもの | |
|---|---|
| 1 | まっすぐ進む、だけ |
| 2 | 左が黒なら左へ曲がる、を足す |
| 3 | 右が黒なら右へ曲がる、を足す |
| 4 | 「黒・黒」の場所を作る |
1つ足すたびに走らせます。まとめて作ると、どこが悪いのかわからなくなります。
走るときは反射光、人をさがすときは色モード
では、反射光だけで全部こなせるかというと、そうはいきません。
救助ゾーンで助ける人は緑です。ところが緑は、反射光で測ると黒とほとんど同じ数字になります。どちらも光をあまり返さないからです。しきい値をどこに置いても、この2つは分けられません。
そこで、場面によって使い分けます。
| 場面 | 使う読み方 | 見つけたいもの |
|---|---|---|
| 線をたどっているあいだ | 反射光 | 黒い線、そして銀色のテープ |
| 救助ゾーンで人をさがす | 色モード | 緑の人 |
1台のロボットが、場面に応じてセンサーの使い方を切り替えます。部品を足すのではなく、読み方を変えるだけです。
その色モードが、中で何をしているのか。次はそこを開けます。
ロボカップジュニア2027 に向けて、レスキュー(災害救助)とサッカーの2種目に取り組みます。プログラミングと電子工作の経験は問いません。