演奏ロボットのプログラム

#define Do  523  //周波数を定義
#define Re  587
#define Mi  659
#define Fa  698
#define So  784
#define Ra  880
#define Si  988
#define hDo  1047
#define dSo  392
#define dSi  494
#define sSo  831

task play_music_A()   // 音楽を演奏するタスク
{
   while (true)
   {

     PlayTone(Re,45);Wait(50);  //曲は FF9のOP
     PlayTone(Mi,15);Wait(20);  //音をならす時間よりも
     PlayTone(Fa,30);Wait(35);  //待機時間を長くすることで
     PlayTone(So,30);Wait(35);  //音がつながらないようにしている
     PlayTone(Ra,90);Wait(95);
     PlayTone(Si,15);Wait(20);
     PlayTone(hDo,15);Wait(20);
     PlayTone(Si,30);Wait(35);
     PlayTone(Ra,30);Wait(35);
     PlayTone(So,45);Wait(50);
     PlayTone(Ra,15);Wait(20);
     PlayTone(Fa,30);Wait(35);
     PlayTone(Mi,30);Wait(35);
     PlayTone(Re,60);Wait(65);

     PlayTone(Re,45);Wait(50);
     PlayTone(Mi,15);Wait(20);
     PlayTone(Fa,30);Wait(35);
     PlayTone(So,30);Wait(35);
     PlayTone(Ra,90);Wait(95);
     PlayTone(Si,15);Wait(20);
     PlayTone(hDo,15);Wait(20);
     PlayTone(Si,30);Wait(35);
     PlayTone(Ra,30);Wait(35);
     PlayTone(Ra,30);Wait(35);
     PlayTone(sSo,30);Wait(35);
     PlayTone(Ra,90);Wait(120);
     
    
   }
}


task play_music_B()   // 音楽を演奏するタスク
{
   while (true)
   {

     PlayTone(dSo,15);Wait(20);  //曲はスピッツの空も飛べるはず
     PlayTone(Do,15);Wait(20);
     PlayTone(Re,15);Wait(20);
     PlayTone(Mi,30);Wait(35);
     PlayTone(Mi,30);Wait(35);
     PlayTone(Re,15);Wait(20);
     PlayTone(Mi,15);Wait(20);
     PlayTone(Fa,30);Wait(35);
     PlayTone(Mi,45);Wait(50);
     PlayTone(Do,15);Wait(20);
     PlayTone(Do,60);Wait(65);
     
     PlayTone(Ra,30);Wait(35);
     PlayTone(Ra,30);Wait(35);
     PlayTone(dSi,15);Wait(20);
     PlayTone(Do,15);Wait(20);
     PlayTone(Re,15);Wait(20);
     PlayTone(Ra,15);Wait(20);
     PlayTone(Ra,15);Wait(20);
     PlayTone(So,15);Wait(20);
     PlayTone(Mi,15);Wait(20);
     PlayTone(So,30);Wait(35);
     
     PlayTone(Fa,15);Wait(20);
     PlayTone(Fa,15);Wait(20);
     PlayTone(So,15);Wait(20);
     PlayTone(Ra,45);Wait(50);
     PlayTone(Re,15);Wait(20);
     PlayTone(Re,45);Wait(50);
     PlayTone(dSo,15);Wait(20);
    
   }
}

task main()
{
   SetSensor(SENSOR_1,SENSOR_TOUCH); 

   start play_music_A ;    // 演奏を開始
   OnFwd(OUT_A);   // 前進

   until (SENSOR_1 == 1);            // タッチセンサーが押されるまで待つ

   stop play_music_A ;     // 演奏を停止
   start play_music_B ;    // 演奏を開始
   OnRev(OUT_A);   // 後進

}
conveyer.jpg

コメント

   写真はタッチセンサーを取り付ける前のもの。
   ロボット本体にはあまり工夫がいらなかったけれど、
   モーターを一つしか使ってはいけないというところが今までとは違ったので、
   ちょっと考えどころでした。
   精密さが求められているわけではなかったので、
   タイヤではなく、兼ねてからやってみたかったキャタピラを採用。
   一方プログラムの方については、「空も飛べるはず」はもっと長くするはずだったので、
   少し早めのテンポで演奏させてみました。
   時間があったら、もっと切りの良いところまで書きたかったなあ〜。
  
   あと、この時は使わなかったけれども、
  (後にロボコンのマシンで使用してもらっちゃいました。笑)
   ドラクエのレベルUPの音を作って、
   RCXからエンドレスで流して遊んでみたり。
   すっごい勢いでレベル上がりました。。。うちの子。
 
 おまけ---ドラゴンクエスト Lv.up 効果音---
 
 
   #define Fa  698
   #define So  784
   #define fMi  622
   
 task play_music()
  {
     while (true)
      {
 
     PlayTone(Fa,10);Wait(14);
     PlayTone(Fa,10);Wait(14);
     PlayTone(Fa,10);Wait(14);
     PlayTone(Fa,12);Wait(28);
     PlayTone(fMi,12);Wait(28);
     PlayTone(So,12);Wait(28);
     PlayTone(Fa,45);Wait(60);
       
      
      }
 }
   
   task main()
   {
 
       start play_music ;
 }

戻る


添付ファイル: fileconveyer.jpg 146件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-03-05 (土) 22:13:22 (5284d)