アーム

#define ARM_TIME 30

#define UP_TIME 70

task main(){

SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_TOUCH);
 
 Off(OUT_A+OUT_C); Wait(300);
 OnFwd(OUT_C); Wait(ARM_TIME);
 OnRev(OUT_C); Wait(ARM_TIME);
 Off(OUT_A+OUT_C);
while(true){
  ClearMessage();  
  
if(SENSOR_1<37){SendMessage(4); Wait(50); Off(OUT_A+OUT_C);
   Wait(800);
   OnFwd(OUT_C); Wait(ARM_TIME);
   OnFwd(OUT_A); Wait(UP_TIME);
 if(SENSOR_3==0){SendMessage(1); Wait(50);Off(OUT_A+OUT_C);
               Wait(300); until(Message()!=0);}
 if(SENSOR_3==1){SendMessage(2); Wait(50);Off(OUT_A+OUT_C);
               Wait(300); until(Message()!=0);} }

if(Message()==3){OnRev(OUT_C); Wait(ARM_TIME+30);
                 OnRev(OUT_A);Wait(UP_TIME);
                 }
 }
}

足回り

#define line_h while (SENSOR_3==0) {if(SENSOR_2<43){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_1<43){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if*1{OnFwd(OUT_C); OnRev(OUT_A); Wait(40); }}

#define line_k while (SENSOR_3==0) {if(SENSOR_2<43){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_1<43){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if*2{OnFwd(OUT_A); OnRev(OUT_C); Wait(40); }}

int turn_time;

task main() {

 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 SetSensor(SENSOR_3,SENSOR_TOUCH);
 
 turn_time=15;

 OnFwd(OUT_A+OUT_C); Wait(300); 
 OnFwd(OUT_A); OnRev(OUT_C); Wait(45);
  OnFwd(OUT_A+OUT_C); Wait(20); 
while(true){
  ClearMessage();
  
 while(Message()==0){if(SENSOR_2<43){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_1<43){OnFwd(OUT_C); OnRev(OUT_A);        Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if((SENSOR_1<43)&&(SENSOR_2<43)){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);}}
  
  if(Message()==1){
     Off(OUT_A+OUT_C); Wait(50); 
  OnFwd(OUT_C); OnRev(OUT_A); Wait(100); 
   OnFwd(OUT_A+OUT_C); Wait(10); line_h; SendMessage(3);
    Wait(50); Float(OUT_A+OUT_C); Wait(200); 
     OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_A); 
     OnRev(OUT_C); Wait(200); OnFwd(OUT_A+OUT_C); Wait(400);
   Off(OUT_A+OUT_C);}
     
 if(Message()==2){  
     Off(OUT_A+OUT_C); Wait(50); 
  OnFwd(OUT_A); OnRev(OUT_C); Wait(100); 
  OnFwd(OUT_A+OUT_C);  Wait(10); line_k; SendMessage(3);
  Wait(50); Float(OUT_A+OUT_C); Wait(200);
  OnRev(OUT_A+OUT_C); Wait(50); OnFwd(OUT_C); 
     OnRev(OUT_A); Wait(200);  OnFwd(OUT_A+OUT_C); Wait(400);
  Off(OUT_A+OUT_C);}

if(Message()==4){ClearTimer(0);while(FastTimer(0)<=80){if(SENSOR_2<43){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_1<43){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if((SENSOR_1<43)&&(SENSOR_2<43)){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);}}OnFwd(OUT_C); OnRev(OUT_A); Wait(110); OnFwd(OUT_A+OUT_C); Wait(80);
OnFwd(OUT_A);OnRev(OUT_C);Wait(100);
OnRev(OUT_A);OnFwd(OUT_C);Wait(50);
OnFwd(OUT_A+OUT_C);Wait(300);
}
 } 

}


*1 SENSOR_1<43)&&(SENSOR_2<43
*2 SENSOR_1<43)&&(SENSOR_2<43

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-02-09 (金) 13:13:29