9月19日(日) ほのちゃんの幼稚園最後の運動会の日である。ほのが通っている幼稚園では年長児がリレーや組み立て体操といった運動会の華となる種目を行う。妻はビデオカメラを肩にさげ,私はデジカメを片手に,こうしろうはカメラに白黒のフィルムをセットして,家から徒歩2,3分の幼稚園に向かった。こうしろうの場合は,妹の記念写真を撮りに行くというより,高校の写真部の活動の一環のようだ。

 毎年,組み立て体操になると,子供の成長ぶりに涙ぐむお母さんを見かける。初めての子供だと,お父さんでもジーンときて目頭を熱くする。10年前の私もそうだったかもしれない。さすがに3人目となると,のん気なもので時折どこにいるのか見失ったりする。それでも無事に終わってほっとした。

 9月20日(月) 敬老の日(9月15日)は毎年こうしろうの誕生日だったはずなのに,秋分の日の近くに移動してしまった。16才になった兄こうしろうより,一カ月間だけ四つ年下で,ただいま成長期真っ盛りのかずは数カ月前に買ったランニングシューズが「小さくて痛い」といって妻と買い物に出かけた。センサーのプログラムはどう書くのか気になっていた私は,ひとりでRoboDesignerで遊び始めた。

 右側がタッチセンサー。突き出しているバネが障害物にぶつかると曲がり,左右どちらかのナットに触れて電流が流れ,何かにぶつかったと判断する。MindStormsのようにブロックに覆われていないので,センサーの仕組みがよくわかる。左側はIRセンサーだ。この二つのセンサーがロボットの進行方向に付いている。  まず,タッチセンサーを使うプログラムを作ってみる。

 loopとendタイルでプログラム全体を括ってあるので,前進と後退を延々と繰り返す。portと書いてあるタイルがCN1につながったタッチセンサーをチェックする。タッチセンサーが何かにぶつかっていれば1を返すので,= 1という条件がyesの場合,左右のモーターを2秒間後退(Bwd)させる。noのときはそのまま前進(Fwd)する。nopというタイルは,それ自身は何もせず他のタイルを連結するために使う。黒い線が,ちゃんとつながるようにnopタイルを配置するのだ。

 ちょっと見えにくいかもしれないが,左端のスイッチがON/OFFの切り替えで,真ん中のスイッチがモード切替スイッチだ。Rがプログラム実行,Dがダウンロード,Fがファームウェアダウンロードだ。ダウンロード/実行でスイッチを切り替えなくてはいけないところが,少し面倒に感じられる。

 多少慣れてくると,あらが見えてくるのが人の常である。プログラムが最後に保存された後で,変更されたかどうかをチェックしていないのか,プログラムを閉じようとするたびに「セーブするか?」と聞いてくるのが面倒に思われる。また,プログラムタイルの削除は選択してDeleteキーで実行できるが,ハードウェア設定でドラッグ&ドロップしたセンサーのタイルは(170話参照),プロパティでUn-useに設定しなければならないなどと操作方法に統一性が欠けている点が,少し残念に感じられた。

 「センサーやってみとるがけ」と,なぜか私の足より大きい26.5cmのシューズを買ってきたかずが話しかけてくる。かずの足は私より一回り小さいはずなのに,親思いで大き目のシューズを買ってきたのかと一瞬思ったが,そうではなく,甲高なので26cmでも小さく感じたらしい。

 こんどは,IRセンサーを使うプログラムを作成した。CN3につないだIRセンサーが50以下の値を返したら,何かに近づいて暗くなったと判断してロボットを後退させる。しきい値を使う方法はMindStormsと同じだ。

 ロボットがタンスに近づきバックし始めたときは,「おお!」とかずも声をあげたが,その後もずっと暗いと感じるのか,後退を続けてしまう。PDFファイルの説明書に「懐中電灯などを使って動作を確認してみましょう」と書いてあったので,逃げていくロボットをかずが懐中電灯を持って追いかけると,やっと明るくなったと判断してくれたのかロボットは前進をはじめた。

 IRセンサーに赤外線ダイオードを取り付けて,アクティブセンサーにすると動きが違うのかなと興味は尽きない。RoboDesignerシリーズ,しばらく続きそうだ。