2005/C3/しかた

タッチセンサで机の周りを這うプログラムです。

#define RUN 100			//走らせる間隔
#define CHEAK 50			//チェックする間隔
#define PUSH1 50			//壁に当たってるときの間隔
#define PUSH2 50			//↑その2

void run()			//走らせる
{
	OnFwd(OUT_A+OUT_C);
	Wait(RUN);
}
void check(int x )		//壁を這っているかチェックする
{
	OnFwd(OUT_A);		//右折させる
	Wait(CHEAK);
	
	if(x == 1)		//壁に当たれば、元に戻す
	{
		OnRev(OUT_A);
		Wait(CHEAK);
	}	
}
void push()			//正面の壁にぶつかったなら
{
	OnRev(OUT_A+OUT_C);	//下がって
	Wait(PUSH1);
	OnFwd(OUT_C);		//左折する
	Wait(PUSH2);
}
task main()
{
	SetSensor(SENSOR_1,SENSOR_TOUCH);
	while(true)
	{
		if(SENSOR_1 == 0)//押されていなければ
		{
			run();
			check(SENSOR_1);
		}
		else		//押されていれば
		{
			push();
		}
	}
	Off(OUT_A+OUT_C);	//←意味なし
}

感想

ノーコメントで。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-13 (月) 18:43:58 (4937d)