1月9日 「ロボットらしいロボットを作ってみよう」という掛け声のもと、こうしろうとかず、私の3人でロボットを作り始めた。かずが本体とバンパー型タッチセンサー、私が足まわり、こうしろうは何か変なものを作っている。あえて言うならば、フェイスマスク風タッチセンサーみたいなものである。



 この頃から我が家には新たなMindStorms問題が発生していた。こうしろうの妹「ほのちゃん」は1歳2カ月になった。つかまり立ちでテーブルの周りをつたい歩きするようになったほのちゃんは我々3人がレゴマインドストームをいじっていると、「いっしょにあそぼう」というような顔をしてやってきてはブロックを口に入れたりする。誰かに「ほの、だめ!」と叱られると、怒ってテーブルの上の部品を床に払い落とす。何にでも興味を持つようになった末娘の成長を喜ぶべきなのだろうが、かなり大変な状況下での作業を強いられる。

1月15日 この日はロボットを組み立てる。



 ご覧の通り、わやわやのロボットができてしまった。「どうしてこんなものしか作れないのだ」とこうしろうと私は絶望感に浸った。

1月16日 「基本にもどろう」とConstructPedia(コンストラクトぺディア)を読む。こうしろうではなくて私がである。コンストラクトぺディアはロボットの組み立て方や色々な部品の作成例が載っている組み立て図鑑だ。その名の通り英語版である。

 コンストラクトぺディアの「Top Secret Plan」に従いロボットを作り始めると、こうしろうとかずが寄ってきて手伝いだす。きっちりとしたロボットが出来上がった。



 かっこいい!このロボットのアームの付け根にはタッチセンサーが付いており、アームが何かに触れると、タッチセンサーがオンになる。アームのつなぎにゴム輪を使っており、クッションの役割を果たしている。レゴブロックの壊れやすいという欠点をゴム輪のクッションで解決しているあたりはさすが「Top Secret Plan」である。デザインの優れたものは、キチンと動作するはずだ。こうしろうに「左のタッチセンサーがオンになったら右に曲がり、右のタッチセンサーがオンになったら左に曲がるようプログラムを作ってみられ」と課題を出した。

1月16日 「一緒にプログラムを作ろう」と誘いに来たこうしろうに「もう、ひとりでできるよ。やってみられ」と自立を促す。「そう。じゃ、やってみる」と答えてこうしろうは試行錯誤を繰り返した。4,5回プログラムを作り直しては、RCXにダウンロードしてテストを行った。プログラムをダウンロードした後、実際にテストを行うのは、かずの役目である。ロボットは障害物にぶつかるとずーっと後退していったり、後退と前進を限りなく繰り返したりしていた。とうとう、「どうしてもうまくいかん。」と助けを求めにきた。

 「どれどれ」とプログラムを見ると、初心者が陥りやすいワナにどっぷりはまっていた。プログラム修正を繰り返すうちに、ムダなコードだらけのプログラムになっていたのである。意味のない「Wait」コマンドやペアで挿入された「Reverse Direction」などで冗長なコードを作成してしまっていた。

 「こうしろう、基本にもどろう。ムダなコードを取り除こう」と二人でプログラム修正を行った。最終的に出来上がったプログラムが下記である。

prg11.jpg (40109 バイト)

 障害物にぶつかってタッチセンサーが押された場合、「Reverse Direction A C」で双方のモーターを反転させ、「Wait 4」で0.4秒バックする。ここまでは左右どちらのタッチセンサーがオンになっても同じである。次のステップが「Reverse Direction A」と「Reverse Direction C」に分かれる。障害物に先にぶつかったアームによって回転方向を変えているのである。片方のモーターを再度、反転させ順方向に戻している。キャタピラ駆動のロボットの場合、2つのモーターを左右逆に回すと、同じ場所で回転する。「Wait 30」はグルッと回るのに必要な時間である。きちんと180度方向を変えるのではなく160度程度中途半端に回転するところがミソである。きちんと180度回転させると、同じルートを行ったり来たりするだけなので面白味がない。「Set Direction A> C>」で双方のモーターの方向を順方向に設定している。

 スイッチをいれてしばらく眺めていると、あっちで『ごっつん』、こっちで『ごっつん』しながらうろうろしている。その様子が微笑ましい。