5月3日 前回からDUNKOBOTSのレベル2に挑戦しているかず,今日はプログラムを作成しロボットをテストする予定である。レベル1ではプログラム作成ボタンを押すと完成したプログラムが表示され,肩透かしを食った。今回はそんなことのないように,そーっとプログラム作成ボタンを押してみる。しかし,やはりプログラムは完成していた。

 IRタワーを経由してプログラムを赤外線でロボットに送り,MindStormsの本体RCXのRUNボタンを押す。黄色のスポンジボールをアームの先端に置いてみるが,ロボットはピクリともしない。



 「あれっ,あれ」と,ここからかずのすったもんだが始まった。



 プログラムは上記のようなイメージなのだが,まずやっかいなのがライトセンサー・ウォッチャーである。ライトセンサーは光を発し,その反射を読み取り,0~100までの範囲で値を返す。値が小さければ暗く,大きければ明るいと判断する。黄色いボールが置かれたら明るいと判断して走り出し,ボールを投げるようにbright側にコードを書いてある。当然,テストシートの白は黄色より明るいので,暗いと判断させるためにテストシートの端っこの黒い部分にライトセンサーが当たるようにロボットをおいて,黄色いボールを載せる。それでもロボットはピクリともしなかった。

 上記のプログラムでは0~30がダーク・サイド,31~100がブライト・サイドになっているが,実はこれはかずが修正した後の数値であり,当初はもう少し小さい値が暗い明るいの分岐点だった。ライトセンサーは当然,周囲の明るさに影響を受けるので調整してやる必要があるのだ。30を分岐点にするとロボットは動き出した。

 次の問題はRCXに入っている6本の電池に関係する。黄色いボールが載せられたことを感知して,前進しボールを投げても,ゴールまで届かないのである。前進する時間はOn C for 15の15,単位は1/10秒なので1.5秒である。この値も当初15ではなく10であった。電池が元気であれば,10でよかったのであろうが,現在RCXに入っている電池はかなりへたっているので,前進する時間も調整しなくてはいけなかった。



 そうこうしているうちに,ボールをゴールに投げ込めるようになった。しかし,すったんもんだは終わらない。シュートしたら,アームを戻しバックして元の位置に戻ってくるようプログラムしてあるのだが,アームを戻す前に,ライトセンサーが天井の照明の光を拾ってしまい,再度前進してボールを投げようとするのだ。

 困っているかずに「屋根でも付けるこっちゃ」と付け焼刃なアドバイスをした。



 おかげで,不恰好なロボットになってしまった。こんな代償を払っても問題は解決しなかった。天井の明かりは検知しなくなったのだが,テストシートの白色に反応してしまい,ホームポジションに戻る前に,また前進してしまうのだ。「ボールがないときに,常にライトセンサーが黒色を見ているようにすればいいんだよ。」と今度はなんとかまともなアドバイスができた。



 ボールの後ろに黒いブロックを配置したら,ロボットはプログラム通りに動作した。

 「ありがとうございました。」とかずは私から目をそらしたまま言った。「え,俺に言ったのか」と聞き直す。こうしろうは,小学校の野球部で教え込まれたおかげで,何かを教えたりすると必ず,ありがとうとかありがとうございましたという小学生であった。でも,かずは照れ屋なので6年生になってもそんな言葉がすっと出てこない時がある。

 すったもんだの末,ロボットを完成させた充実感が,かずにありがとうを言わせたのだろう。MindStormsは礼儀作法にも役立つのである。