[[2005/B1]]

左を書くプログラム
 task main(){
	OnRev(OUT_B);//ペンを上げる
	OnFwd(OUT_B);//ペンを下げる
	Wait(30);
	Off(OUT_B);
	Wait(30);
	OnFwd(OUT_A+OUT_C);//直線を進む
	Wait(250);
	Off(OUT_A+OUT_C);
	OnRev(OUT_B);//ペンを上げる
	Wait(30);
	Off(OUT_B);
	Wait(30);
	OnRev(OUT_A+OUT_C);//直線を戻る
	Wait(100);//三分の一ぐらいまで
	OnFwd(OUT_A);//直角に曲がる
	Wait(90);
	OnRev(OUT_A+OUT_C);//曲線の始めの点にいく
	Wait(90);
	Off(OUT_A+OUT_C);
	OnFwd(OUT_B);//ペンを下げる
	Wait(30);
	Off(OUT_B);
	Wait(30);
	repeat(18){//曲線部分を書く
		OnFwd(OUT_A+OUT_C);
		Wait(20);
		Off(OUT_C);
		Wait(3);
	}
	OnRev(OUT_B);//ペンを上げる
	Wait(30);
	Off(OUT_B);
	repeat(7){//曲線部分を途中まで戻る
		OnRev(OUT_A+OUT_C);
		Wait(20);
		Off(OUT_A);
		Wait(3);
	}
	Off(OUT_A+OUT_C);
	OnFwd(OUT_A);OnRev(OUT_C);//直角に曲がる
	Wait(90);
	Off(OUT_A+OUT_C);
//ここから工の部分
 //ここから工の部分
	OnFwd(OUT_B);//ペンを下げる
	Wait(30);
	Off(OUT_B);
	OnFwd(OUT_A+OUT_C);//直線を進む
	Wait(100);
	Off(OUT_A+OUT_C);
	OnRev(OUT_B);//ペンを上げる
	Wait(30);
	Off(OUT_A);
	OnRev(OUT_A+OUT_C);//直線を戻る
	Wait(50);//半分ぐらいまで
	OnFwd(OUT_C);//直角に曲がる
	Wait(90);
	Off(OUT_A+OUT_C);
	OnFwd(OUT_B);//ペンを下げる
	Wait(30);
	Off(OUT_B);
	OnFwd(OUT_A+OUT_C);//直線を進む
	Wait(30);
	Off(OUT_A+OUT_C);
	OnRev(OUT_B);//ペンを上げる
	Wait(30);
	Off(OUT_B);
	OnRev(OUT_C);OnFwd(OUT_A);//直角に曲がる
	Wait(90);
	OnRev(OUT_A+OUT_C);//最後の直線の始まりの部分に行く
	Wait(70);
	Off(OUT_A+OUT_C);
	OnFwd(OUT_B);//ペンを下げる
	Wait(30);
	Off(OUT_B);
	OnFwd(OUT_A+OUT_C);//直線を進む
	Wait(140);
	Off(OUT_A+OUT_C);
 }
-関数やマクロを使ってもう少しプログラムを整理してみよう。 -- [[まいける(TA)]] &new{2005-12-02 (金) 17:01:18};

#comment

机の壁に沿って進むプログラム
 task main()
 {
	SetSensor(SENSOR_1,SENSOR_TOUCH);	//タッチセンサーだと宣言
	SetSensor(SENSOR_2,SENSOR_TOUCH);
	while(true)
	{
		
		while(SENSOR_1 == 1){		//センサー1がONならば以下の行動を繰り返す
				OnRev(OUT_A);
				OnRev(OUT_C);
				Wait(1);
				Off(OUT_A);
				Wait(1);
			}
		
		if(SENSOR_1==0){	//もしセンサー1がOFFならば以下の行動をする
			Off(OUT_C);
			OnRev(OUT_A);
		}
		if(SENSOR_2==1){	//もしセンサー2がONならば以下の行動をする
			OnFwd(OUT_A);
			OnRev(OUT_C);
			Wait(150);
			Off(OUT_C);
			OnRev(OUT_A);
		}
	}
 }


ライントレースするプログラム(センサー*1モーター*2
 #define THRESHOLD 40   //明るさ
 task main ()
 {
    SetSensor(SENSOR_2, SENSOR_LIGHT);
    while (true) {
        if (SENSOR_2 < THRESHOLD) {   // 黒線上にいるとき
            OnRev(OUT_A);
            Off(OUT_C);
        } else {                      // 黒線から外れたとき
            Off(OUT_A);
            OnRev(OUT_C);
        }
    }
 }

ライントレースするプログラム(センサー*2モーター*2
 #define light 42 //明るさ
 task main ()
 {
	SetSensor(SENSOR_1,SENSOR_LIGHT);
	SetSensor(SENSOR_3,SENSOR_LIGHT);
	
	while (true){
		if(SENSOR_1 > light){
			OnRev(OUT_A);
		}
		else{
			OnFwd(OUT_A);
		}
		if(SENSOR_3 > light){
			OnRev(OUT_C);
		}
		else{
			OnFwd(OUT_C);
		}
	}
 }


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