課題3
#contents
*課題内容 [#ob7e69df]
 懐中電灯の光を追いかけて進むロボットを製作し、以下の中から2種類以上のプログラムを作成せよ。
 
 光源を見失った時には曲を演奏しながらぐるっと旋回して光源を探す
 光源を見失った時には明るさに比例した周波数の音を出しながら旋回して光源を探す
 光源を見失っていないときにはある曲を演奏し、見失った時には別の曲を演奏しながら光源を探す
 上記のいずれかに『光源に近づき過ぎると停止する』という機能を追加する
 ただし支給されているモータ、光センサ、タッチセンサはいくつ使ってもよい。


*プログラム1 [#ud194d51]
 #define top OnFwd(OUT_A+OUT_C);   
 #define right OnRev(OUT_C);OnFwd(OUT_A);   
 #define left OnRev(OUT_A);OnFwd(OUT_C);  
 #define minus 15                               
 #define Do  523
 #define Re  587
 #define Mi  659
 #define Fa  698
 #define So 784
 #define La    880	
 #define Si   988
 #define So_ 392
 
 int light_max;   
 int time_max;  
 
 task main()
  {
    SetSensor(SENSOR_2,SENSOR_LIGHT);   
      light_max=SENSOR_2;                      
      time_max=Timer(0);                      
    ClearTimer(0);                      
     while(Timer(0)<=14)                 
    {
        right;                     
       if(SENSOR_2>light_max)                
      {
         ClearTimer(1);              
         light_max =SENSOR_2 ;               
      }
       else                            
      {
         light_max = light_max;                     
         time_max =Timer(1);              
      }
    }
    ClearTimer(1);                       
     while(Timer(1)<= time_max)                
    {
      left;
    }                         
     while(true)
    {
       if(SENSOR_2>= light_max-minus)         
      {
        top;
        PlayTone(Mi,25); Wait(35); 
     PlayTone(Mi,25); Wait(50); 
     PlayTone(Mi,25); Wait(50); 
     PlayTone(Do,25); Wait(30); 
     PlayTone(Mi,40); Wait(45); 
     PlayTone(So,50); Wait(100);
     PlayTone(So_,50); Wait(100);
      }                 
       if(SENSOR_2< light_max-minus)          
      {
        right;                   
          ClearTimer(2);               
       until((SENSOR_2>= light_max-minus)||(Timer(2)==5));  
         }
       if(SENSOR_2< light_max-minus)         
         {
          left;                   
          until(SENSOR_2>= light_max-minus);  
         }
   }
 }

*反省点 [#j2ca8008]
 センサー2個でやろうとして、結局できなくて1個でやってしまった。
#comment

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