課題2 ライントレースをするロボット

ロボット本体

ライントレースが主な内容なので、特に工夫されている所はありません。

あえていうなら、ライントレースをなるべく正確に行うために、車軸近くにセンサーを取り付けました。

あと、ロボットは左右対称になっています。

robo1.JPG robo2.JPG

コース

コースは、比較的シンプルな造りになっています。

course.JPG ロボットは左回りにライントレースをするようになっています。

ライントレース方法

figure1.jpg figure2.jpg

脱出方法

figure3.jpg

プログラム

#define THRESHOLD 48
task main()
{
	long fTime=0,time=0;
	bool escape=false;

	SetSensor(SENSOR_1,SENSOR_LIGHT);
	SetSensorLight(IN_1);//光センサーを設定
	
	fTime = CurrentTick(); //時間取得
		
	while(true)
	{
		time = CurrentTick() - fTime;
		
		if(time >= 65000) //timeが65秒を超えたとき
		{
			if(SENSOR_1 >= THRESHOLD) //白
			{
				while(SENSOR_1 >= THRESHOLD) //黒い線を見つけるまで、繰り返し
				{
					OnFwd(OUT_C,50);
					Off(OUT_A);
				}
			}
		
			while(SENSOR_1 < THRESHOLD) //黒い線の外側に移動
			{
				OnFwd(OUT_AC,70);
				Off(OUT_AC);
			}
			escape = true;
						
		}
		if(escape == false) //脱出しない場合
		{
			if(SENSOR_1 < THRESHOLD) //黒
			{ 
				OnFwd(OUT_A,45);
				Off(OUT_C);
			}
			else if(SENSOR_1 >= THRESHOLD) //白		
			{
				OnFwd(OUT_C,45);
				Off(OUT_A);
			}
		}
		else if(escape == true) //脱出の時
		{
			if(SENSOR_1 < THRESHOLD) //黒
			{ 
				OnFwd(OUT_C,45);
				Off(OUT_A);
			}
			else if(SENSOR_1 >= THRESHOLD) //白		
			{
				OnFwd(OUT_A,45);
				Off(OUT_C);
			}
		}
	}

	
	Off(OUT_AC);

} 

感想

ライントレースは簡単だと思っていたが、難しく、大変だった。

脱出方法を考えるのが意外と難しかった。

時間によって脱出する方法は、失敗する時もあったので、もっとよい脱出方法を考えられればよかった。

もっと早く、正確にトレースできるようにしたいと思った。


添付ファイル: filerobo2.JPG 292件 [詳細] filerobo1.JPG 336件 [詳細] filefigure3.jpg 282件 [詳細] filefigure2.jpg 267件 [詳細] filefigure1.jpg 296件 [詳細] filecourse.JPG 325件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-08-22 (水) 00:32:44