戻る

演奏するロボットと曲に合わせて踊るロボットのプログラム

center

ねずちゅーネコ

スケーターズワルツ

// 製作日:12月2日
// 製作者:AI
#define Do 523   
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define Ra 880
#define Si 988
#define Doo 1047
#define Ree 1175
task play_music()
{ 
	while(true){
		PlayTone(Mi,120);Wait(120);
		
		PlayTone(So,80);Wait(80);
		PlayTone(Ra,40); Wait(45);
		
		PlayTone(Ra,240);Wait(245);
		
		PlayTone(Fa,120);Wait(120);
		
		PlayTone(Ra,80);Wait(80);
		PlayTone(Si,40);Wait(45);
		
		PlayTone(Si,240);Wait(245);
		
		PlayTone(Ree,120);Wait(120);
		PlayTone(Doo,80);Wait(80);
		PlayTone(Mi,40);Wait(45);
		
		PlayTone(So,120);Wait(120);
		
		PlayTone(Fa,80);Wait(80);
		PlayTone(Mi,40);Wait(45);
		
		PlayTone(Mi,120);Wait(120);
		
		PlayTone(Re,120);Wait(120);
		
		PlayTone(Do,150);Wait(160);
		
		PlayTone(So,15);Wait(20);
		PlayTone(Doo,15);Wait(20);
		
		PlayTone(Ra,15);Wait(20);
		PlayTone(Doo,15);Wait(20);
		PlayTone(So,15);Wait(20);
		PlayTone(Doo,15);Wait(20);
		PlayTone(Ra,15);Wait(20);
		PlayTone(Doo,15);Wait(20);
		
		PlayTone(So,15);Wait(20);
		PlayTone(Doo,15);Wait(20);
		PlayTone(Ra,15);Wait(20);
		PlayTone(Doo,15);Wait(20);
		PlayTone(So,15);Wait(20);
		PlayTone(Doo,15);Wait(20);
		
		PlayTone(Ra,15);Wait(20);
		PlayTone(Doo,15);Wait(20);
		PlayTone(So,40);Wait(40);
		
		PlayTone(Si,30);Wait(40);
		PlayTone(Si,40);Wait(40);
		
		PlayTone(So,40);Wait(40);
		PlayTone(Si,30);Wait(40);
		PlayTone(Si,40);Wait(40);
		
		PlayTone(So,15);Wait(20);
		PlayTone(Ree,15);Wait(20);
		PlayTone(Ra,15);Wait(20);
		PlayTone(Ree,15);Wait(20);
		PlayTone(So,15);Wait(20);
		PlayTone(Ree,15);Wait(20);
		
		PlayTone(Ra,15);Wait(20);
		PlayTone(Ree,15);Wait(20);
		PlayTone(So,15);Wait(20);
		PlayTone(Ree,15);Wait(20);
		PlayTone(Ra,15);Wait(20);
		PlayTone(Ree,15);Wait(20);
		
		PlayTone(So,40);Wait(40);
		PlayTone(Doo,30);Wait(40);
		PlayTone(Doo,40);Wait(40);
		
		PlayTone(So,40);Wait(40);
		PlayTone(Doo,30);Wait(40);
		PlayTone(Doo,40);Wait(40);
	}
} 

演奏、指揮をするロボットのプログラム

left 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);        // 動きも停止
 }

曲に合わせて踊るロボットのプログラム

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 を受信したときには止まる
    }
 }

反省

・信号の送受信がうまくいかなくて時間が掛かり、苦労した。
・ねずちゅーのギアはトップシークレットのギア配置を元に、さらに最小化させた。
 苦労したがスピードも馬力もあるものが出来た。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-09 (木) 13:18:23