2005/A1

ダンサーロボット

PA0_0053.JPG

作成者 コンパス harada そるとと

メッセージを受信して曲に合わせて踊るプログラム

//制作 harada
//使用楽曲「Take me home, country road.」
//(Bill Danoff,Taffy Nivert & John Denver)
#define Do  523             //音色の定義
#define Re  587
#define Mi  659
#define Fa  698
#define So  784
#define Ra  880
#define Si  988
#define Do1  1047
#define Re1  1175
#define Mi1  1319

/*
 PlayTone(Do,35); Wait(40);            //コピペ用テンプレ
 PlayTone(Re,35); Wait(40);
 PlayTone(Mi,35); Wait(40);
 PlayTone(Fa,35); Wait(40);
 PlayTone(So,35); Wait(40);
 PlayTone(Ra,35); Wait(40);
 PlayTone(Si,35); Wait(40);
 */
 task move()                         //腕の操作用ルーチン
 {
 OnFwd(OUT_A);Wait(40);
 Float(OUT_A);Wait(20);
 OnRev(OUT_A);Wait(20);
 Float(OUT_A);
 }

task play_music()            //音楽演奏ルーチン
 {
 start move;               //タスクmoveを起動し、腕を動かす
 PlayTone(So,35); Wait(40);       //Country road
 PlayTone(Ra,35); Wait(40);
 PlayTone(Si,175); Wait(200);
 
 start move;
 PlayTone(Si,35); Wait(40);       //take me home
 PlayTone(Ra,35); Wait(40);
 PlayTone(So,70); Wait(80);
 PlayTone(Ra,105); Wait(200);

 start move;
 PlayTone(Si,35); Wait(40);       //To the place
 PlayTone(Ra,35); Wait(40);
 PlayTone(So,140); Wait(200);

 start move;
 PlayTone(Si,35); Wait(40);       //I belong
 PlayTone(Re1,35); Wait(40);
 PlayTone(Mi1,140); Wait(200);

 start move;
 PlayTone(Mi1,35); Wait(40);      //West Virginia
 PlayTone(Si,35); Wait(40);
 PlayTone(Re1,70); Wait(80);
 PlayTone(Si,105); Wait(200);

 start move;
 PlayTone(Si,35); Wait(40);      //mountain momma
 PlayTone(Ra,35); Wait(40);
 PlayTone(So,70); Wait(40);
 PlayTone(Ra,70); Wait(80);
 PlayTone(Si,105); Wait(200);

 start move;
 PlayTone(Si,35); Wait(40);      //Take me home
 PlayTone(Ra,35); Wait(40);
 PlayTone(So,70); Wait(80);
 PlayTone(So,105); Wait(140);
 
 start move;
 PlayTone(So,35); Wait(40);      //country road
 PlayTone(Ra,35); Wait(40);
 PlayTone(So,140); Wait(200);
 }

task main()                      //メインルーチン
{
 while (true)
 {
  ClearMessage();                 // Message() を 0 に設定        
  until (Message() != 0)          // Message() に 0 以外の値が入るまで待つ
  if ( Message() == 1 ) {               // 1 を受信したときには音楽を流して踊る。
  start play_music
  }
 }
}

感想(解説)

初めてサブルーチンを使いました。(harada)

踊っているように見せるため、カブのような仕掛けで手を動かせるように作りました。 (コンパス)



添付ファイル: filePA0_0053.JPG 168件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-16 (木) 13:02:40 (4932d)