基礎とモーター部分の構造は元々のものと同じ。タイヤは左右2つずつだと回転時に若干のロスが生じるため1つずつにしてキャスターを後ろに付けた。車輪の間隔が広くてもその場で旋回すれば急なカーブも曲がれるのであえて間隔は狭くしなかった。缶を移動させるためのハサミにモーターを使うとロボットの前が重くなってしまうので、回転しても飛び出さないように返しを付けた。ハサミの重さでセンサーが少し下を向いていたのでハサミを上からも固定し、正面を向くようにした。†このプログラムはラインの左側の境界線を沿うプログラムで、主に黒と判断すれば左へ、白だと判断すれば右へ曲がるようにしてライントレースをする。簡単なプログラムにしたかったため、「基本的にはライントレース、交差点の時は別のプログラム」というようにした。悩んだのは「交差点の判別をタイマーと変数のどちらを使うか」という点です。この時自分はタイマーを使っている人が多かったので、あえて変数を選んだのですが、判別できるときとできないときが場合によってできてしまいました。確実に判別するため、タイマーを使うことにしました。正確に素早くコースを回らせるため、その位置で停止するプログラムは一切入れないようにして、スピードをアップさせた。始めの交差点は曲がらなければいけないのでスタートしてから9秒は交差点を判断せずに左折する。RIGHT;缶を感知したら機体の後ろへ移動させる。置いて旋回」という流れにする。//ハサミが長いため、缶を出すために少し長い距離を後退するので、黒になるまで回転するプログラムにしてもセンサーがライン上に行かない。ClearTimer(0);ここでタイマーをリセットしないと9秒になったときにタイマーが0.25秒以上になってしまうので、交差点だと判断し、こちらの意図とは違う動きをしてしまう。交差点とカーブの識別はタイマーを使い、黒と判断した時から次に白と判断するまでの時間を計る。微調節しながらこの境界線の時間を計った結果、0.25秒を境界にすると交差点とカーブを正しく判断することができた。}交差点は4つなので交差点のプログラムを4回繰り返す。このプログラムではセンサーが黒だと判断している時間を計り、直角のカーブのときに黒だと判断している時間と普通のカーブのときに黒だと判断している時間で別れるように時間を設定。}}缶を感知して旋回し、元の位置に戻した後再び旋回するときに、すぐ「until」を使うと缶を置くため後退したときにライン上にいた場合などで思った位置まで旋回できないので、初めは「Wait」を使って旋回し、感知させたいところに近づいたら「until」を使うようにした。缶が軽いため初めはタッチセンサーが反応しなかったので、先生のアドバイスを貰い、てこの原理を使って小さな力でも押せるように改良した。プログラムを見直して問題点を改善し、微調整。初めは変数でやっていたがうまくいかなかったので、タイマーを使用し、確実性を上げた。タッチセンサーの位置をはじめより高くして、てこの原理を使って小さい力でも反応するようにした。†プログラムを作り始めたときはすごく難しく感じたが、完成したプログラムはとてもシンプルな構造になった。特定のコースを回れるプログラムなので、プログラムの拡張性という点ではもう少し改善できると感じた。思ったように動かすのに微調整が何度も必要で、根気の作業だと思った。交差点判断のプログラムは難しく今回はタイマーを使ったが、機会があれば今度は変数を使ってやってみたい。