[[2006a/B5]]
**光を追いかけるロボット [#i150c5d2]
*光源を見失った時には明るさに比例した周波数の音を出しながら旋回して光源を探すプログラム [#ea631c4d]
*光を追いかけるロボット [#i150c5d2]
**光源を見失った時には明るさに比例した周波数の音を出しながら旋回して光源を探すプログラム [#ea631c4d]

 task main ()
 {
 SetSensor (SENSOR_1, SENSOR_LIGHT);
 SetSensor (SENSOR_2, SENSOR_LIGHT);
 while (true)
 { 
   if(SENSOR_1 > SENSOR_3)   //SENSOR_1の値がSENSOR_3の値より大きい場合
   {
     OnFwd(OUT_A);
     Off(OUT_C);
       PlayTone(SENSOR_1 * 10, 3);   //SENSOR_1の値の10倍の周波数の音を出しながら右に旋回
     }
   if(SENSOR_1 < SENSOR_3)   //SENSOR_3の値がSENSOR_1の値より大きい場合
   {
     OnFwd(OUT_C);
     Off(OUT_A);
       PlayTone(SENSOR_3 * 10, 3);   //SENSOR_3の値の10倍の周波数の音を出しながら左に旋回
   }
  }
 }

** [#ged5ee8c]
**光を見失ったら、曲を演奏しながら光を探す [#dccc4295]

 #define Do  523       //----------音楽-----------
 #define Re  587
 #define Mi  659
 #define Fa  698
 #define Sol 784
 #define Ra 880
 #define Si 988
 #define Doa 1047
 #define Rea 1175
 #define Mia 1319
 #define Faa 1397
 task music()        //音楽演奏用タスク[music]を指定
 {
     while (true)          //↓演奏プログラム[高橋]
     {
         PlayTone(Mi,15); Wait(20);
         PlayTone(Sol,15); Wait(20);
         PlayTone(Doa,15); Wait(20);
         PlayTone(Doa,35); Wait(40);
         PlayTone(Doa,55); Wait(60);
         PlayTone(Mi,15); Wait(20);
         PlayTone(Sol,15); Wait(20);
         PlayTone(Doa,15); Wait(20);
         PlayTone(Doa,35); Wait(40);
         PlayTone(Doa,55); Wait(60); 
         PlayTone(Fa,15); Wait(20);
         PlayTone(Ra,15); Wait(20);
         PlayTone(Doa,15); Wait(20);
         PlayTone(Doa,35); Wait(40);
         PlayTone(Doa,55); Wait(60);
         PlayTone(Si,15); Wait(20);
         PlayTone(Ra,15); Wait(20);
         PlayTone(Si,15); Wait(20);
         PlayTone(Si,95); Wait(100);
     }
 }                 //-------音楽ここまで------
 task main ()           //--------メイン--------
 {
 SetSensor (SENSOR_1, SENSOR_LIGHT); //センサー1,2を光センサーに設定
 SetSensor (SENSOR_2, SENSOR_LIGHT);
 int music_flag = 0;    //変数(スイッチ)music_flagを作る 初期値0
 while (true)      //----↓-繰り返し-↓----
 {
   if(SENSOR_1 < 60 )    //センサー1の値が60以下のとき
   {   
   if (music_flag == 0) {   //music_flagが0ならば
     start music;       //演奏をスタートし
   music_flag = 1;       //music_flagの値を1に置き換え
   }  
  }else{          //センサー1が60以上のとき
   if (music_flag == 1) {    //music_flagが1ならば
   stop music;         //演奏をストップし
   music_flag = 0;       //music_flagの値を0に置き換え
   }   
  }  
     if(SENSOR_3 < 60 )   //センサー3の値が60以下のとき
   {   
   if (music_flag == 0) {   //music_flagが0ならば
     start music;       //演奏をスタートし
   music_flag = 1;       //music_flagの値を1に置き換え
   }  
  }else{          //センサー3が60以上のとき  
   if (music_flag == 1) {     //music_flagが1ならば
   stop music;         //演奏をストップし
   music_flag = 0;       //music_flagの値を0に置き換え
 }
  if(SENSOR_1 > SENSOR_3)  //センサー1がセンサー3より大きければ
  {
    OnFwd(OUT_A); //Aを回転
    Off(OUT_C);
    }
  if(SENSOR_1 < SENSOR_3)  //センサー3がセンサー1より大きければ
  {
    OnFwd(OUT_C); //Cを回転
    Off(OUT_A);
  }
 }  //-----↑-繰り返し-↑------
 }  //               丸岡

***分かりにくいので [#p69fa653]
#ref(フローチャート.bmp,nolink);

*コメントはこちらから↓ [#k9b1c1d4]
#comment


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