[[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); //意味なし
 }


感想
 中途半端に関数とか使ってみました。
 与えられた引数で、カーブとかも可能なプログラムを作りたかったのですが、
 妥協しました。


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