2005/C2/どみ

壁に沿って動くロボット

task main() {
	SetSensor(SENSOR_1,SENSOR_TOUCH);	//右センサ
	SetSensor(SENSOR_3,SENSOR_TOUCH);	//左センサ

	while (true) {
		if (SENSOR_3 == 1) {
			if (SENSOR_1 == 1) {		//壁にぶつかったとき
				OnRev(OUT_A+OUT_C);
				Wait(5);
				OnFwd(OUT_C);
				Wait(185);
				Off(OUT_C);
				OnFwd(OUT_A);
				Wait(100);
				Off(OUT_A);
				OnFwd(OUT_C);
				Wait(60);
				Off(OUT_C);
			} else {			//壁に触れているとき
				OnFwd(OUT_A+OUT_C);
			}
		} else {				//壁から離れたとき
			Off(OUT_C);
			OnFwd(OUT_A);
		}
	}
}

ロボットについて

解説書にあったダブルバンパーの右側を延長したものを使用。壁に沿って走るときは、延長した右バンパーで壁を検知し、壁への衝突は左バンパーで検知する。延長したバンパーは、長すぎると回転時に引っかかるため、調整に苦労した。

プログラムについて

衝突後、机の下で90度左回転し、右→左と曲げることで壁に寄せ、次の直進にちゃんと移行できるようにした。ただ、無駄に重くなった気もする。

コメントをお願いします



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-16 (金) 18:28:03