[[2005/C3/しかた]]

モーター1つのライントレースロボットです。 

 #define A 40				//明るさの基準
 #define B 40				//走る時間の基準
 #define C 10				//トレース時間の基準1
 #define D 10				//トレース時間の基準2
 
 void run()					//走る関数
 {
	OnFwd(OUT_A);
	Wait(B);
	OnRev(OUT_A);
	Wait(B);
 }
 void trace(int x)			//トレース関数
 {
	repeat(D){
		OnFwd(OUT_A);
		Wait(C);
		if(x < A)	return;
	}
	repeat(D*2){
		OnRev(OUT_A);
		Wait(C);
		if(x < A)	return;
	}
 }
 task main()
 {
	SetSensor(SENSOR_1,SENSOR_LIGHT);
 	
	while(true)					//無限ループ
	{
		if(SENSOR_1 < A)			//線の上なら
		{
			run();
		}
		else						//線の上でないなら
		{
			trace(SENSOR_1);		
		}
	}
	Off(OUT_A+OUT_C);				//意味なし
 }	
#ref(lego.jpg)


感想
 ロボット苦労しました…



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