アーム

#define ARM_TIME 30

#define UP_TIME 70

task main(){

SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_TOUCH);
while(true){
  ClearMessage();
  
if(SENSOR_1<40){OnFwd(OUT_C); Wait(ARM_TIME);
   OnFwd(OUT_A); Wait(UP_TIME);Off(OUT_A+OUT_C);Wait(10);
  if(SENSOR_3==1){SendMessage(2); Wait(50);}
  else{SendMessage(1); Wait(50);} }

if(Message()==3){OnRev(OUT_A); Wait(75); 
                OnRev(OUT_C); Wait(35);Off(OUT_A+OUT_C);}
 }
}

足回り

#define line_h_l while (Timer(0) <= 260) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){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_r while (Timer(0) <= 260) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){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); }}

#define line_h_r_1 while (Timer(0) <= 200) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if*3{OnFwd(OUT_C); OnRev(OUT_A); Wait(40); }}

#define line_h_r_2 while (Timer(1) <= 70) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if*4{OnFwd(OUT_A); OnRev(OUT_C); Wait(40); }}

#define line_k_l_1 while (Timer(0) <= 200) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if*5{OnFwd(OUT_C); OnRev(OUT_A); Wait(40); }}

#define line_k_l_2 while (Timer(1) <= 70) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if*6{OnFwd(OUT_A); OnRev(OUT_C); Wait(40); }}

int i; int turn_time;

task hako_l() {

 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 while(true){
  ClearMessage();
  ClearTimer(0);
 
   Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_C); OnRev(OUT_A); Wait(200); 
   OnFwd(OUT_A+OUT_C); Wait(10);
   line_h_l; SendMessage(3); Wait(50); 
   Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_A); OnRev(OUT_C); Wait(190);  OnFwd(OUT_A+OUT_C); Wait(300);
   Off(OUT_A+OUT_C);} }

task hako_r() {

 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 while(true){
  ClearMessage();
  ClearTimer(0);
  ClearTimer(1);
 
   Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_C); OnRev(OUT_A); Wait(200); 
   OnFwd(OUT_A+OUT_C); Wait(10);
   line_h_r_1; line_h_r_2;SendMessage(3); Wait(50); 
   Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_A); OnRev(OUT_C); Wait(190);  OnFwd(OUT_A+OUT_C); Wait(300);
   Off(OUT_A+OUT_C);} }

task hako_m(){

  SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);  
 while(true){
  ClearMessage();
  ClearTimer(1);
 
   Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_C); OnRev(OUT_A); Wait(210); 
       OnFwd(OUT_A+OUT_C); Wait(150);
   line_h_r_2;SendMessage(3); Wait(50);
   Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_A); OnRev(OUT_C); Wait(190);  OnFwd(OUT_A+OUT_C); Wait(300);
   Off(OUT_A+OUT_C);} }

task kann_r() {

 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 while(true){
  ClearMessage();
  ClearTimer(0);
 
   Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_A); OnRev(OUT_C); Wait(200); 
   OnFwd(OUT_A+OUT_C); Wait(10);
   line_k_r; SendMessage(3); Wait(50);
   Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_C); OnRev(OUT_A); Wait(200);  OnFwd(OUT_A+OUT_C); Wait(450);
   Off(OUT_A+OUT_C);} }
   

task kann_l() {

 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 while(true){
  ClearMessage();
  ClearTimer(0);
 
   Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_A); OnRev(OUT_C); Wait(200); 
   OnFwd(OUT_A+OUT_C); Wait(10);
   line_k_l_1; line_k_l_2; SendMessage(3); Wait(50);
   Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_C); OnRev(OUT_A); Wait(200);  OnFwd(OUT_A+OUT_C); Wait(450);
   Off(OUT_A+OUT_C);} }
   

task kann_m() {

 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 while(true){
  ClearMessage();
  ClearTimer(1);
 
   Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_A); OnRev(OUT_C); Wait(210); 
   OnFwd(OUT_A+OUT_C); Wait(150);
    line_k_l_2; SendMessage(3); Wait(50);
   Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_C); OnRev(OUT_A); Wait(200);  OnFwd(OUT_A+OUT_C); Wait(450);
   Off(OUT_A+OUT_C);} }    
   

task main() {

 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 
 turn_time=10;
 i=0;
 
while(true){
  ClearMessage();
  ClearTimer(0);
 
 OnFwd(OUT_A+OUT_C); Wait(50); 
 if(Message()==1){
   if((i==1)||(i==3)||(i==5))
   {start hako_l;}
 
   if((i==2)||(i==4)||(i==6))
   {start hako_r;}
 
     else
     {start hako_m;}}
     
   if(Message()==2){
   if((i==1)||(i==3)||(i==5))
   {start kann_r;}
 
   if((i==2)||(i==4)||(i==6))
   {start kann_l;}
 
     else
     {start kann_m;}}
  
 else{while(Message()!=0){OnFwd(OUT_A+OUT_C); Wait(55); 
   OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_A); OnRev(OUT_C); Wait(turn_time); 
   turn_time =turn_time+10; i=i+1;
   OnFwd(OUT_A+OUT_C); Wait(55); OnRev(OUT_A+OUT_C); Wait(50);
   OnFwd(OUT_C); OnRev(OUT_A); Wait(turn_time);
   turn_time =turn_time+10; i=i+1;}
    }
  } 

}


*1 SENSOR_1<43)&&(SENSOR_2<43
*2 SENSOR_1<43)&&(SENSOR_2<43
*3 SENSOR_1<43)&&(SENSOR_2<43
*4 SENSOR_1<43)&&(SENSOR_2<43
*5 SENSOR_1<43)&&(SENSOR_2<43
*6 SENSOR_1<43)&&(SENSOR_2<43

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-02-08 (木) 14:50:25