2005/C2/どみ

光を追いかけるロボット

光を追う者(何

キャタピラのロボットに光センサを2つつけたもの。センサは真正面を向くのではなく、少しずつ左右に開いていて、どちらが懐中電灯を捉えているかを割り出しやすくしてある。

プログラム

#define torch 30						//懐中電灯基準値
int light_l;
int light_r;

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

	while (true) {
		if ((SENSOR_1 < torch)&&(SENSOR_3 < torch)) {	//懐中電灯を見失ったとき
			if (light_l > light_r) {		//light_lが大→懐中電灯は左
				OnFwd(OUT_C);
				OnRev(OUT_A);			//左回転
			} else {				//light_rが大→懐中電灯は右
				OnFwd(OUT_A);
				OnRev(OUT_C);			//右回転
			}
		} else {					//懐中電灯を捉えているとき
			OnFwd(OUT_A+OUT_C);			//前進
			light_l = SENSOR_1;			//light_lに左センサの値を代入
			light_r = SENSOR_3;			//light_rに右センサの値を代入
		}
	}
}

左右どちらかのセンサが懐中電灯を捉えていれば前進する。前進中は、左右のセンサの値を変数light_l・light_rとして保存しており、懐中電灯を見失ったときに両者を比較し、どちらのセンサが懐中電灯を捉えていたのか判別する。それによって懐中電灯が逃げた方向へと回転するようにして、無駄なく懐中電灯を追うことができるようになっている。

コメントをお願いします



添付ファイル: filekadai4.jpg 256件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-01-30 (月) 21:29:16