[[2005/A6/課題5]]

[[戻る>2005/A6]]

* 演奏するロボットと曲に合わせて踊るロボットのプログラム [#a6e5d4d5]
#ref(2005/A6/課題5/animal.jpeg,200%,center)
**こいぬのマーチ [#e8c84f54]
 // 製作日:12月2日
 // 製作者:ジョニー
 // ちょっとした手違いで、今現在はまだ曲は仮のものです。
 
 #define Do  523
 #define Re  587
 #define Mi  659
 #define Fa  698
 #define Sol 784
 #define Ra  880
 
 task play_music()   // 音楽を演奏するタスク
  {
    while (true)
     {
       PlayTone(Mi,40); Wait(40);  
       PlayTone(Do,20); Wait(40);  
       PlayTone(Mi,40); Wait(40);  
       PlayTone(Do,20); Wait(40);
 
       PlayTone(Mi,40); Wait(40);
       PlayTone(Sol,15); Wait(40);
       PlayTone(Sol,50); Wait(80);
 
       PlayTone(Fa,40); Wait(40);
       PlayTone(Re,15); Wait(40);
       PlayTone(Re,40); Wait(80);
 
       PlayTone(Mi,40); Wait(40);
       PlayTone(Do,15); Wait(40);
       PlayTone(Do,40); Wait(85);
 
       PlayTone(Mi,40); Wait(40);
       PlayTone(Do,20); Wait(40);
       PlayTone(Mi,40); Wait(40);
       PlayTone(Do,20); Wait(40);
 
       PlayTone(Mi,40); Wait(40);
       PlayTone(Sol,15); Wait(40);
       PlayTone(Sol,50); Wait(80);
 
       PlayTone(Fa,40); Wait(40);
       PlayTone(Re,15); Wait(40);
       PlayTone(Re,15); Wait(40);
       PlayTone(Re,40); Wait(40);
       PlayTone(Do,40); Wait(40);
       PlayTone(Mi,40); Wait(40);
       PlayTone(Do,40); Wait(90);
       
       PlayTone(Fa,80); Wait(90);
       PlayTone(Ra,80); Wait(90);
       PlayTone(Sol,80); Wait(90);
       PlayTone(Mi,80); Wait(90);
       
       PlayTone(Fa,40); Wait(40);
       PlayTone(Re,15); Wait(40);
       PlayTone(Re,15); Wait(40);
       PlayTone(Re,40); Wait(40);
       PlayTone(Do,40); Wait(40);
       PlayTone(Mi,40); Wait(40);
       PlayTone(Sol,40); Wait(80);
       
       PlayTone(Fa,80); Wait(90);
       PlayTone(Ra,80); Wait(90);
       PlayTone(Sol,80); Wait(90);
       PlayTone(Mi,80); Wait(90);
       
       PlayTone(Fa,40); Wait(40);
       PlayTone(Re,15); Wait(40);
       PlayTone(Re,15); Wait(40);
       PlayTone(Re,40); Wait(40);
       PlayTone(Do,40); Wait(40);
       PlayTone(Mi,40); Wait(40);
       PlayTone(Do,60); Wait(100);
   }
 }

**演奏、指揮をするロボットのプログラム [#w189ebf3]
&ref(2005/A6/課題5/cat.jpeg,100%,left); &ref(2005/A6/課題5/rat.jpeg,100%,right);
 // 製作日:1月6日
 // 製作者:A6員(主にA6L)
 // ネコ型ロボットと、ネズミ型ロボットの二つを製作しました。
 
 #define music_time 2400
 
 task main()
  {    
    ClearTimer(0);             // Timer(0)をリセットする
    start play_music;          // 演奏を開始
   
    while(Timer(0) <= music_time)
     {
       OnFwd(OUT_A + OUT_C);   // 尻尾、ねずちゅーが右に動く
       SendMessage(1);         // Message(1)を送る
       Wait(150);              // 1.5秒間待つ
      
       OnRev(OUT_A + OUT_C);   // 尻尾、ねずちゅーが左に動く 
       Wait(150);              // 1.5秒間待つ       
 
       OnFwd(OUT_A + OUT_C);   // 尻尾、ねずちゅーが右に動く
       SendMessage(2);         // Message(2)を送る
       Wait(150);              // 1.5秒間待つ
      
       OnRev(OUT_A + OUT_C);   // 尻尾、ねずちゅーが左に動く 
       Wait(150);              // 1.5秒間待つ
     }
   
    SendMessage(3);            // Message(3)を送る
    stop play_music ;          // 演奏を停止
    Float(OUT_A+OUT_B);        // 動きも停止
  }

** 曲に合わせて踊るロボットのプログラム [#o160fdd7]
#ref(2005/A6/課題5/dog.jpeg,100%,center);
 // 製作日:1月6日
 // 製作者:A6員(主にA6R)
 // 犬型のロボットを作るのにかなり時間が掛かってしまった。
 
 #define first OnRev(OUT_A+OUT_B);OnFwd(OUT_C);
 #define second OnFwd(OUT_A+OUT_B);OnRev(OUT_C);
 #define fin Float(OUT_A+OUT_B+OUT_C);
 
 task main()
  {
    while (true)
     {
        ClearMessage();                 // Message() を 0 に設定
        until (Message() != 0);         // Message() に 0 以外の値が入るまで待つ
        
        if ( Message() == 1 ) first;    // 1 を受信したときには右に回りながら前足・後ろ足が上がる
        if ( Message() == 2 ) second;   // 2 を受信したときには左に回りながら前足・後ろ足が下がる
        if ( Message() == 3 ) fin;      // 3 を受信したときには止まる
     }
  }

#comment


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