[[2006a/A4]]


*何となくプログラム [#e9e47f7e]

*明るいところを探すプログラム [#acaaa788]
 task main(){
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 int max=0,maxtime=0;
 ClearTimer(0);
     while(FastTimer(0)<=460){
           if(max<=SENSOR_1){
               max=SENSOR_1;
               maxtime=FastTimer(0);
                           }
           OnFwd(OUT_A);
           OnRev(OUT_C);
                             }
           ClearTimer(1);
           Off(OUT_A+OUT_C);
           Wait(30);
           maxtime=460-maxtime;
           OnRev(OUT_A);
           OnFwd(OUT_C);
           maxtime=maxtime-FastTimer(1);
           Wait(maxtime);
           Off(OUT_A+OUT_C);
            }


**光源を追いかけるプログラム [#jabd1c4e]
- まだ音を出せませんが、我ながらなかなかのものかと
 // programing :Taro horikawa
 
 #define S1 SENSOR_1
 #define S2 SENSOR_2
 #define S3 SENSOR_3
 #define C 43
 #define F_L OnFwd(OUT_A)
 #define F_R OnFwd(OUT_C)
 #define R_L OnRev(OUT_A)
 #define R_R OnRev(OUT_C)
 
 #define DO 523
 #define RE 587
 #define MI 659
 #define FA 698
 #define SO 784
 
 task music1(){
    while(true){
    
                        }
                    }
                   
  task music2(){
    while(true){
   
                   }
                    }
 
 task main(){
              SetPower(OUT_A,10);
              SetPower(OUT_C,10);
 SetSensor(S1,SENSOR_LIGHT);
 SetSensor(S3,SENSOR_LIGHT);
 int Lmax=0,Rmax=0,Cmax=0,Ltime=0,Rtime=0,Ctime=0;
 Wait(70);
      ClearTimer(0);
      while(FastTimer(0)<=430){
       
          if(Lmax<=S1){
                Lmax=S1;
                Ltime=FastTimer(0);
                             }
                             
          if(Rmax<=S3){
                Rmax=S3;
                Rtime=FastTimer(0);
                             }
           OnFwd(OUT_A);
           OnRev(OUT_C);
       
                                           }
           Off(OUT_A+OUT_C);
           Wait(30);
       Ctime=430 - (Rtime+Ltime)/2;
           OnFwd(OUT_C);
           OnRev(OUT_A);
           Wait(Ctime);
           Off(OUT_A+OUT_C);
           Cmax=(Lmax+Rmax)/2;
           
      while(true){
 
 if(S1>Cmax-13 || S3>Cmax-13){
     
         if((S1<=S3+5) && (S1>=S3-5)){
              SetPower(OUT_A,10);
              SetPower(OUT_C,10);
                                                     }
         if(S1<=S3-6){
          Off(OUT_C);
             Wait(5);
              SetPower(OUT_A,10);
              SetPower(OUT_C,3);
         Lmax=S1;
         Rmax=S3;
                           }
         if(S3<=S1-6){
          Off(OUT_A);
             Wait(5);
              SetPower(OUT_A,3);
              SetPower(OUT_C,10);
         Lmax=S1;
         Rmax=S3;
                           }
                                  
                                             
             F_R;
             F_L;
             
                                             }
             
          if(S1<=Cmax-13 && S3<=Cmax-13){
     
              SetPower(OUT_A,10);
              SetPower(OUT_C,10);
              
                if(Lmax>=Rmax){
   until((S1<=S3+6) && (S1>=S3-6) && (S1>Cmax-13 || S3>Cmax-13)){
                           F_R;R_L;
                                                                                                }
                                       }
                if(Lmax<Rmax){
   until((S1<=S3+6) && (S1>=S3-6) && (S1>Cmax-13 || S3>Cmax-13)){
                           F_L;R_R;
                                                                                              }
                                       }
                                       
                                    }
      
                      }
      
 
                }

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