●いよいよ計測モードに
プログラミング(?)を楽しんだ後は,インベスティゲータで環境の計測や調査を楽しみましょう.チュートリアル・プログラムでしっかり予習したので,準備は万端です.まずは,タッチ・センサをスイッチ代わりに使い,光センサを上に向けて部屋の明るさを計測しました.次に,光センサを床に向け,ロボットを走行させて,通り抜けた部分の床の明るさを計測させます.これらのデータを取り込んでグラフ表示することもできます(写真8).
[写真8] 計測結果
赤色が部屋の明るさを計測したもの.机の横と上,下で何ヵ所かずつ明るさをキャプチャした.また,青と緑は畳の上を走行させて明るさを計測したもの.青は畳のへりを通過しなかったときのデータであり,緑はへりを通過したときのデータである.
これで,畳のへりに沿って走るロボットをプログラムできないかと考えました.グラフから見ると,畳の表面の明るさは約50ルクス,畳のへりの明るさは約35ルクスのようです.…そう言えば,プログラムを走らせなくても,RCX単体でも計測ができるのでした!(写真9)
[写真9] RCXを使った計測
「View」ボタンを押すことにより,A,B,C,1,2,3のそれぞれの入出力データを液晶ディスプレイに表示できる.これからも,畳の表面は50ルクス前後,畳のへりは35ルクス前後という結果が出た.
●これからが本当のプログラミング
さて,プログラミングです.できればかんたんなプログラムにしたいので,畳のへりを外れるまで右に寄りがちに走るプログラムと,左に寄りがちに走るプログラムを循環させようと考えました.
まずはロボットを右寄りに前進させて,光センサが畳のへりからはみ出したら(例えば,計測した値が40ルクス以上になったら)モータの回転を左右で逆にする,そしてまたへりからはみ出したら最初に戻る,これでどうだ?
最初はどうもモータの回転が強すぎたらしく,ロボットは暴走しています.次に,モータを弱くしてみると,凹凸のある畳ではジージー言うだけでちっとも前進しません.じゃ,右輪の前進を助けるために,左輪は逆向きに回してみるか…?
…などと試行錯誤した結果,できました! 畳のへりに沿って走るロボットです(写真10).
[写真10] 畳のへりをトレースするロボット
床面のコンディションも重要な要素であることを痛感.
ところで,ゴムでできたロボットのタイヤはほこりだらけになっています.もっと部屋を掃除しておかなきゃ,と別の反省を胸に刻み込んだ(志)なのでした….
― つづく ―
[メルマガ編集担当(志)]
|