2006a/B1/課題3右

★光を追う&歌いだすロボット★

  • 6/30 みんなで曲を決めようとしたけど三人とも趣味が違うので全くまとまらない…(:;)しじみさんは‘君が代’にしたいらしいです。なんだか愛国心が非常に強いらしくてビックリしました(>△<)
  • 7/7 今日は七夕!!ってことで、夜は晴れるといいですね。((なんか曇りらしいですが・・・。

光を探してぐるぐる回る(課題1)光を見つけたら違う曲を演奏しながら追いかける!(課題2)(担当 高木) 

#define Do  523  //この音階がベース。ド
#define Re  587  //レ
#define Mi  659  //ミ 
#define Fa  698  //ファ
#define Sol 784  //ソ
#define La  880  //ラ
#define Ce  988  //シ
#define Do2  1047  //[2]は、1オクターブ高くなるの意。高いド
#define Re2  1175  //高いレ
#define Mi2  1319  //高いミ
#define La3  932  //[3]は、シャープ。 #ラ     
#define Re3  622  //#レ    
#define go_light OnFwd(OUT_A+OUT_C);  //光を見つけてから前に進みます。
#define turn_left OnRev(OUT_A);OnFwd(OUT_C);  //光を探すために旋回します。
task play_music()  //1曲目、「くまのプーさん」です
{
   while (true)
   {
       PlayTone(Mi,30); Wait(35);
       PlayTone(Re,20); Wait(20);
       PlayTone(Mi,35); Wait(45);
       PlayTone(Re,40); Wait(80);
        
       PlayTone(Mi,30); Wait(35);
       PlayTone(Re,20); Wait(20);
       PlayTone(Mi,35); Wait(45);
       PlayTone(Re,40); Wait(80);
        
       PlayTone(Do,30); Wait(35);
       PlayTone(Do,15); Wait(15);
       PlayTone(La3,30); Wait(35);
       PlayTone(La3,15); Wait(15);
       PlayTone(La,30); Wait(35);
       PlayTone(La,15); Wait(15);
       PlayTone(Sol,30); Wait(35);
       PlayTone(Sol,15); Wait(15);
       PlayTone(Fa,30); Wait(35);
       PlayTone(Fa,15); Wait(15);
       PlayTone(Mi,30); Wait(35);
       PlayTone(Mi,15); Wait(15);
       PlayTone(Re,30); Wait(35);
       PlayTone(Re,15); Wait(15);
       PlayTone(Re3,25); Wait(30);

        
        
        
        
        
        
        Wait(20);
    }
}
task play_music2()  //2曲目、おなじみ「チューリップの歌」です
{
   while (SENSOR_1 >50)
   {
       PlayTone(Do,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Mi,50); Wait(55);

       PlayTone(Do,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Mi,50); Wait(55);

       PlayTone(Sol,25);Wait(30);
       PlayTone(Mi,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Do,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Mi,25); Wait(30);
       PlayTone(Re,50); Wait(60);

       PlayTone(Do,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Mi,50); Wait(55);

       PlayTone(Do,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Mi,50); Wait(55);

       PlayTone(Sol,25);Wait(30);
       PlayTone(Mi,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Do,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Mi,25); Wait(30);
       PlayTone(Do,50); Wait(60);

       PlayTone(Sol,25); Wait(30);
       PlayTone(Sol,25); Wait(30);
       PlayTone(Mi,25); Wait(30);
       PlayTone(Sol,25); Wait(30);
       PlayTone(La,25); Wait(30);
       PlayTone(La,25); Wait(30);
       PlayTone(Sol,50); Wait(60);

       PlayTone(Mi,25); Wait(30);
       PlayTone(Mi,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Re,25); Wait(30);
       PlayTone(Do,75); Wait(80);
       Wait(20);
   }
}

task main ()  //ここから動作に入ります
  {
  SetSensor(SENSOR_1,SENSOR_LIGHT);  //光センサーの定義をして
  while(true)
   {
          stop play_music2;  //ここは繰り返しのための仕掛け。ここから光を探すプログラムが始まります
       start play_music;  //プーさんが演奏されます
     while (SENSOR_1 <40)
     {
       turn_left;  //光を探して旋回しています
     }
          stop play_music;  //ここから、光を見つけた場合のプロフラムです
       start play_music2;  //チューリップが演奏されます
     while (SENSOR_1 >45)
     {
     go_light;  //光に向けて突進します

     }
    }
   }

工夫した点

  • 車体については、かなりコンパクトにして無駄を少なくすることによって動きに無駄をなくした。
  • プログラムについては、defineを多く使用して簡略化に努めた。最初、曲がダブッって流れてしまい、“おかしいな?”なんて思っていたが、 defineの定義をなおしたら上手くいった。
  • プログラムについての課題は最後なのでできる限り無駄をなくそうと努力した。そのため音楽を作るときやロボットの動きのプログラムを入力するときもそのままだらだら打つわけではなく定義などを多用した。おそらくロボコンではこの定義を如何にうまく使えるかに勝負がかかっていると思う。

苦労した点および反省点

  • 今回苦労した点といったらなんと言っても「曲作り」ですネ。“チューリップ”は全然難しいことは無かったのですが、問題は“くまのプーさん”です。楽譜が見つからず、鍵盤も持ち合わせていない僕(タッキー)はプログラムで大体の音感と勘を頼りに、作っては失敗を繰り返してようやく出来上がり!っテ感じです。苦労しただけあって出来上がりもなかなかのものになりました♪でもその前にグループの中で曲目の案が多くあがりすぎてしまい、どれにしようかすごく迷いました(>△<)そのことで少しケンカもしてしまいました…。一応元通りの仲に戻ることができました。
  • 苦労しました〜〜〜orz また、プログラムでwhileの位置関係がとても厄介でしたっ!!
  • 前回もそうだったけれどもプログラムに関しては毎回複数人でやる事はなく一人にやらせる場合が多いので次の課題では一人が作業をやればできるっていう事はまずあり得ないので隣の班とも協力してチームワークをあわせて課題に挑戦したい
  • 次回からは、今回の反省点を生かして次のロボコンでは全員の力をあわせて細かく会議し、困ったことがあったら相談し合って、成功し    単位が欲しい!

コメントお願いします

  • お疲れ様。ロボコンがんばってください。 -- ゆき(TA)? 2006-07-20 (木) 10:55:22

 


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-08-01 (火) 16:55:00