体験講習会のおまけとしてSpikePrimeのライントレースについて掲載している。

これはあくまでお試し的なもので、ゆっくり動かす分には問題ないが、早くしようとするといろいろと問題があることが分かってきた。(っていうか最初から分かっていた。だけど、子供たちにとっての分かりやすさを重視した簡素なプログラムである…と一生懸命言い訳するw)

↓これだ!カラーセンサーで白か黒かで判定し、それを基にロボットの動きを制御している。「「

これでは、トゥルーカラー(24bit:16,777,216色)の中のSpikePrimeが判定できる9色(ピンク、青、水、緑、黄、赤、白、黒、色なし)の中の2色しか判定に使っていないので、不確実なこと甚だしい。一般的にカラーは反射光の諧調に比べて数倍の時間がかかるので、反応が遅れがちになってしまうと言われる。

本当かどうか確かめるために、1000回演算して1回あたりの時間を調べてみた。
検証に使ったのは以下の簡単なプログラムである。

まず、変数を初期化して中身のないループを1000回繰り返すのに要した時間は0.1234だった。
これは何回繰り返しても同様だった。
次に、反射光を計測して、その値を変数に格納するものは平均1.095。
最後に、色を格納するものは平均1.098だった。

この結果を見ると、反射光と色をそれぞれ1000回計測して差が0.003秒なので、実際にはほとんど差がないとみていい。

予想は大外れである。(トホホ…)

次に考えたのは条件分岐の仕方である。
分岐が多い方が速いのか、分岐の中に分岐を入れて減らした方が速いのか。
結果は以下の通り。

分岐4回は0.338、3回は0.308となった。
分岐回数は減らした方が速くなるようである。
ちなみにリピートを10倍して10000回にしたら、ほぼ10倍の時間になったので、モーターの加速減速に時間を取られているということもなさそうである。

さて、組み合わせてみよう!
反射光でのライントレースで、上記と同じ検証を行った。
結果は以下の通り。

あれれ?変わんないじゃん!

そう!実行速度は同じになった。
しかし、反射光の方が圧倒的に有利だ。なぜか!2階調ではなく、0~100の100階調で調整できるからだ。

みんな、面倒くさがらずに反射光でライントレースしよう!
そうすれば、会場がどんな環境でも簡単に調節できるぞ!

次はPCなしで明るさを調べることができる簡単なプログラムを紹介します。