[[2005/C4/課題2左]]
 task main()
 {
	SetSensor(SENSOR_1,SENSOR_TOUCH);
	SetSensor(SENSOR_3,SENSOR_TOUCH);
	SetSensor(SENSOR_1,SENSOR_TOUCH);   //常に壁に触れている方のセンサー
	SetSensor(SENSOR_3,SENSOR_TOUCH);   //方向転換の時に使用するセンサー
	OnFwd(OUT_A+OUT_C);
	until((SENSOR_1 == 0) && (SENSOR_3 == 0));
	until((SENSOR_1 == 0) && (SENSOR_3 == 0));   
	Off(OUT_A);
	while (true)
	{
		if ((SENSOR_1 == 0) && (SENSOR_3 == 0))
		if ((SENSOR_1 == 0) && (SENSOR_3 == 0))   //どちらのセンサーも壁に触れていない場合
		{
		  Off(OUT_A);
		  OnFwd(OUT_C);
		  OnFwd(OUT_C);壁にセンサーが触れるまで近付く
		  until((SENSOR_1 == 1) && (SENSOR_3 == 0));
		}
		if ((SENSOR_1 == 1) && (SENSOR_3 == 0))
		if ((SENSOR_1 == 1) && (SENSOR_3 == 0))   //常に壁に触れている方のセンサーだけが壁に触れている場合
		{
		  Off(OUT_C);
		  OnFwd(OUT_A);
		  OnFwd(OUT_A);壁から離れる
		}
		if ((SENSOR_1 == 1) && (SENSOR_3 == 1))
		if ((SENSOR_1 == 1) && (SENSOR_3 == 1))   //両方のセンサーが壁に触れた場合(方向転換)
		{  
		  OnRev(OUT_A+OUT_C);
		  OnRev(OUT_A+OUT_C);   //下がって、
		  Wait(83);
		  Off(OUT_C);
		  OnFwd(OUT_A);
		  OnFwd(OUT_A);   //方向転換
		  Wait(210);
		}
	}
 }
**このプログラムについて [#d4e9cab6]
このプログラムはもう一つのプログラムを一分くらいで改良して作った。壁から離れると壁に近付いて壁にセンサーが触れるとまた壁から離れるという動きを繰り返しながら進んで行く。もう一つのプログラムより机を一周するスピードは遅いが、プログラム自体を作るのは数倍簡単だった。
#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS