♪目次♪
#contents
*課題3の内容 [#g992e50a]
+光を感知しその光源を追っかける。その際
 ゴジラのテーマ曲を流す。
+次に光源を見失った場合、車体を回転させ
 光を探す。その時はピンクパンサーの曲を流す。
+以上、追撃、探索で2つの曲を使い分けて光を追いかけるロボット
*ロボットの説明 [#vaaa2fc1]
 今回は、ロボットの前に光センサーを2つ、しかも前向きに設置
 これで光源の光を探知する。
*光を追いかけるプログラム (試作) 作成者:ガリ[#efab6ddb]

 task main(){
 SetSensor(SENSOR_1,SENSOR_LIGHT);     //センサー1を光センサーと定義
 SetSensor(SENSOR_2,SENSOR_LIGHT);     //センサー2を光センサーと定義
 while(true)
 {if(SENSOR_1>43){OnRev(OUT_A);until(SENSOR_1<43);Off(OUT_A);};
              //光が左からあたったとき、右の車輪を動かし、車体を右に
 if(SENSOR_2>43){OnFwd(OUT_C);until(SENSOR_2<43);Off(OUT_C);};};
              //光が右からあたったとき、左の車輪を動かし、車体を左に
 }

 ☆試作の段階ではうまく光りに反応してくれる時とそうでない
 時があったので、光センサーの値をいろいろと変えてみると
 幾分よい具合になった。
*光を追いかけるプログラム (完成版) 作成者:ガリ[#d646a718]
 task main(){
 SetSensor(SENSOR_1,SENSOR_LIGHT);     //センサー1を光センサーと定義
 SetSensor(SENSOR_2,SENSOR_LIGHT);     //センサー2を光センサーと定義
 while(true)
 {if(SENSOR_1>55){OnRev(OUT_A);until(SENSOR_1<43);Off(OUT_A);};
             //光が左からあたったとき、右の車輪を動かし、車体を右に
 if(SENSOR_2>55){OnFwd(OUT_C);until(SENSOR_2<43);Off(OUT_C);};};
             //光が右からあたったとき、左の車輪を動かし、車体を左に
 }

*プログラム(♪ゴジラ) 作成者:ガリ[#u93d437d]
 #define Sol 196        
 #define Ra   220
 #define Si    247
 #define Do  262   //音の定義
 task main()   // 音楽を演奏するタスク
 {
    while (true)
    {
        PlayTone(Do,20); Wait(25);  // Wait の時間の方を少し長くして
        PlayTone(Si,20); Wait(25);  // 同じ音を続けて鳴らす場合にも
        PlayTone(Ra,40); Wait(45);  // 一つの音にならないようにしている
        
        PlayTone(Do,20); Wait(25);
        PlayTone(Si,20); Wait(25);
        PlayTone(Ra,40); Wait(45);
        
        PlayTone(Do,20); Wait(25);
        PlayTone(Si,20); Wait(25);
        PlayTone(Ra,20); Wait(25);
        PlayTone(Sol,20); Wait(25);
        PlayTone(Ra,20); Wait(25);
        PlayTone(Si,20); Wait(25);
        PlayTone(Do,20); Wait(25);
        PlayTone(Si,20); Wait(25);
        PlayTone(Ra,40); Wait(45);
         }
 }               

*工夫した点(♪ゴジラ) [#s1059386]
ゴジラのテーマらしく音の定義を低めの音に設定して迫力をだした!!

*プログラム(♪ピンクパンサーのテーマ)試作  作成者:ガリ[#a514820b]
 #define Sol  831
 #define Ra   880
 #define Si   988
 #define Do   1047
 #define Mi   1319
 #define Fa   1397
 #define Raa  1976
 #define Soll 1661   //音の定義
 task main()
  {
   while (true)
   {
       PlayTone(Sol,20); Wait(25);
       PlayTone(Ra,20); Wait(50);
       PlayTone(Si,20); Wait(25);
       PlayTone(Do,20); Wait(50);
       PlayTone(Sol,20); Wait(25);
       PlayTone(Ra,20); Wait(35);
       PlayTone(Si,20); Wait(25);
       PlayTone(Do,20); Wait(35);
       PlayTone(Fa,20); Wait(25);
       PlayTone(Mi,20); Wait(35);
       PlayTone(Do,20); Wait(25);
       PlayTone(Mi,20); Wait(35);
       PlayTone(Raa,20); Wait(25);
       PlayTone(Soll,80); Wait(90);
        }
 }                

*プログラム(♪ピンク)改善点 [#baaa2175]
USBを使えない状況でつくったので音の長さや音程が確認できず、オンチなプログラムとなった。その後高いAの音を改善し、音の長さを改善し完成版となった。

*プログラム(♪ピンクパンサーのテーマ)完成版   作成者:ガリ[#k1632f18]
 #define Sol  831
 #define Ra   880
 #define Si   988
 #define Do   1047
 #define Mi   1319
 #define Fa   1397
 #define Raa  1760
 #define Soll 1661     //音の定義
 task main()
 {
  while (true)
  {
      PlayTone(Sol,20); Wait(25);
      PlayTone(Ra,20); Wait(100);
      PlayTone(Si,20); Wait(25);
      PlayTone(Do,20); Wait(100);
      PlayTone(Sol,20); Wait(25);
      PlayTone(Ra,20); Wait(35);
      PlayTone(Si,20); Wait(25);
      PlayTone(Do,20); Wait(35);
      PlayTone(Fa,20); Wait(25);
      PlayTone(Mi,20); Wait(35);
      PlayTone(Do,20); Wait(25);
      PlayTone(Mi,20); Wait(35);
      PlayTone(Raa,20); Wait(25);
      PlayTone(Soll,80); Wait(120);
      }
      }               

*プログラム(曲を分けて明るい方へ進む)  作成者:ガリ[#e278f086]
 #define Sol 196
 #define Ra   220
 #define Si    247
 #define Do  262
 #define Sola  831
 #define Raa   880
 #define Sia   988 
 #define Doa   1047
 #define Mia   1319
 #define Faa   1397
 #define Raaa  1760
 #define Solla 1661    //音の定義
 task play_music2()                    
 {
      while(true)
      {
       PlayTone(Do,20); Wait(25);  // Wait の時間の方を少し長くして
       PlayTone(Si,20); Wait(25);  // 同じ音を続けて鳴らす場合にも
       PlayTone(Ra,40); Wait(45);  // 一つの音にならないようにしている
       PlayTone(Do,20); Wait(25);
       PlayTone(Si,20); Wait(25);
       PlayTone(Ra,40); Wait(45);       
       PlayTone(Do,20); Wait(25);
       PlayTone(Si,20); Wait(25);
       PlayTone(Ra,20); Wait(25);
       PlayTone(Sol,20); Wait(25);
       PlayTone(Ra,20); Wait(25);
       PlayTone(Si,20); Wait(25);
       PlayTone(Do,20); Wait(25);
       PlayTone(Si,20); Wait(25);
       PlayTone(Ra,40); Wait(45);    
                 }
 } 
 
 task play_music1()               //仕事:音楽を演奏する             
 {
   while (true)
   {
     PlayTone(Sola,20); Wait(25);
     PlayTone(Raa,20); Wait(100);
     PlayTone(Sia,20); Wait(25);
     PlayTone(Doa,20); Wait(100);
     PlayTone(Sola,20); Wait(25);
     PlayTone(Raa,20); Wait(35);
     PlayTone(Sia,20); Wait(25);
     PlayTone(Doa,20); Wait(35);
     PlayTone(Faa,20); Wait(25);
     PlayTone(Mia,20); Wait(35);
     PlayTone(Doa,20); Wait(25);
     PlayTone(Mia,20); Wait(35);
     PlayTone(Raaa,20); Wait(25);
     PlayTone(Solla,80); Wait(120);     //音の定義
      }
 } 
 int Light=0;
 int turn_time=90; 
 task main()
 {
  SetSensor(SENSOR_1,SENSOR_LIGHT);   //ライトセンサーを左右にセットする
  ClearTimer(0);
  while(Timer(0)<=turn_time)
     {
        if(SENSOR_1>Light)
          {
              Light=SENSOR_1;    //センサー1が反応
          }
          
       OnFwd(OUT_A);        //Aのモーターを前に
       OnRev(OUT_C);        //Bのモーターを後ろに(車体を回転させる)
     }
     
   OnFwd(OUT_A);
   OnRev(OUT_C);
   start play_music1;        //センサー1が反応するまで曲を流す          
   until(SENSOR_1<Light);
  while(true)
     {
        if(SENSOR_1<Light)       //センサー1反応
          {
              OnFwd(OUT_A);     //Aのモーターを前へ
                         OnRev(OUT_C);    //Cのモーターを後ろへ
      stop play_music1;           //1つ目の曲を止める    
      start play_music2;            //2つ目の曲を流す
           until(SENSOR_1>=Light);
          }
       else
          {
              OnFwd(OUT_A+OUT_C);
         stop play_music2;       //2つ目の曲を止める
           start play_music1;           //センサー1の値をきるまで1の曲を流す
           until(SENSOR_1<Light);
          }  
     }
 }                         

*工夫したところ [#p4ed4ed0]
今回、一番見せたかったのはやはり音楽で、少し個性的な音楽を選んだ。時間を費やした分、自分なりにはとても出来がいいと思う。
*苦労したところ [#j95fd5f6]
光センサーに関するプログラミングがとても難しく、なかなか、思ったとおりに動いてくれなかった。自分の知識だけではできない所もあったので、友達から聞いたりして理解した。
*反省点 [#g77d3e49]
動きはゆっくりだけどうまく動いた(笑)
光を追いかけるプログラムがよくなかったのかな(;&#65515;д&#65513;)
音楽をならすのはとてもよくできたと思う!!
曲によって音の高さを変えたところはよっかた♪懐中電灯とか光源の準備が出来なかった。あとメンバーが減ってしまったのが残念。。、

*感想 [#lb4436b8]
今回は、自宅でプログラムを作ったりがんばった!!どんどんレベルがあがってきて、正直パソコンをいじれない自分にとってはキツくなってきた。。。次はいよいよロボコン!!
今まで学んできたことを使って、いいロボットを作りたいと思う!!みんながんばろーぜ!!
*次回へ向けて [#ad3f6ba9]
曲を鳴らす事はロボコンとは直接関係は無いけど、光センサー
のプログラミングは必須! 是非とも使いこなせるようにしたい。
*ロボゼミ仲間からのコメント [#bdb30c22]
気軽に書いて!!
#comment


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