カラーセンサーのモード切替にはどれだけの時間がかかるのでしょうか?
上記のようなプログラムを作って検証してみました。
まずタイマーと変数をリセットしてからループに入ります。
上のプログラムでは、まずカラーセンサーで色を読み取り、正しく読めたら変数に1を足して数えていきます。
「Col-atai」を「Col-atai+1」にする。
は、日本語としては若干変な感じですが、プログラミングで変数を使うときは基本になる考え方なので覚えておくとよいでしょう。
そのあと、反射光モードに切り替えてから明るさを読み取り、正しく読めたら変数に1を足して数えていきます。
「Ref-atai」を「Ref-atai+1」にしています。
正しく読めたら、変数に記憶した数が1ずつ増えていきます。
「kaisu」変数は、値に関係なく+1していくのでこのループが繰り返された回数を数えていることになります。これらを組み合わせると、それぞれのモードと切り替えがあるときで、「5秒間に何回読み取っているか」「どの程度、正確に読み取れるのか」が理解できます。
結果は、
カラーモード 4,781回(正解数4,781回) 秒間 約956回
反射光モード 5,253回(正解数5,253回) 秒間 約1,051回
切り替え時 126回(正解数126回) 秒間 約25回
となりました。
切り替えが入ってもすべて正解していることから、完全に切り替えが完了してから計測しているということが分かります。
証拠写真(何回やっても同じ数値でした)
「切り替えを行うには0.04秒かかる」ということなので、モード切り替えがない時のけいそく間隔に比べると桁違いの遅さですね。ロボットの走行中に切り替えを行うと、その間、正しく動作する保証がなくなるということです。
よほどのことがない限り、一旦停止してからカラーモードの切り替えを行った方がよさそうです。