2005/C3/しかた

モーター2つのライントレースロボットのプログラムです。

#define BLACK 45 //黒い線
#define A 10 //微少時間

task main()
{
	SetSensor(SENSOR_1, SENSOR_LIGHT);
	SetSensor(SENSOR_3, SENSOR_LIGHT);

	while(true){
		if(SENSOR_1>BLACK && SENSOR_3>BLACK){ //2つのセンサが黒い線の上ではない時
			OnFwd(OUT_A+OUT_C);
			Wait(A);
		}
		else if(SENSOR_1< BLACK){ //左側のセンサが黒い線を感知した時
			while(SENSOR_1< BLACK){ //黒い線を感知している間
				OnFwd(OUT_C); //半時計回り
				OnRev(OUT_A);
				Wait(A);
			}
		}
		else if(SENSOR_3< BLACK){ //右側のセンサが黒い線を感知した時
			while(SENSOR_3< BLACK){ //黒い線を感知している間
				OnFwd(OUT_A); //時計回り
				OnRev(OUT_C);
				Wait(A);
			}
		}
	}	
	Float(OUT_A); //意味なし
}

感想

やはりセンサ2つ、タイヤ2つはプログラムも簡単です。
このプログラムは曲がる時、いったん止まって回転します。
なのでどうしても遅くなります。でも確実なのでこれを採用しました。
以上。

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-13 (月) 18:34:56