[[2004/B5/音楽が流れるロボット]]

曲はヘンデルの「水上の音楽」より「ホルンパイプ」です。そのころサークルで演奏していた曲なのでフレーズの階名を覚えていたために、プログラミングは比較的楽でした。
 #define C 262
 #define C0 277
 #define D 294
 #define D0 311
 #define E 330
 #define F 349
 #define F0 370
 #define G 392
 #define G0 415
 #define A 440
 #define A0 466
 #define B 494
 #define C1 523
 #define C01 554
 #define D1 587
 #define D01 622 
 #define E1 659
 #define F1 698
 #define F01 740 
 #define G1 784 
 #define G01 831
 #define A1 880
 #define A01 932
 #define B1 988 
 #define C2 1047
 #define C02 1109
 #define D2 1175
 #define D02 1245
 #define E2 1319 
 #define F2 1397
 #define F02 1480 
 #define G2 1568
 #define G02 1661 
 #define A2 1760
 #define A02 1895
 #define B2 1976
  task play_music()
 { 
  while(true)
  { 
  PlayTone(A,30);Wait(40);
  PlayTone(D1,30);Wait(40);
  PlayTone(E1,30);Wait(40);
  PlayTone(F01,15);Wait(20);
  PlayTone(D1,30);Wait(40);
  PlayTone(E1,15);Wait(20);
  PlayTone(F01,15);Wait(20);
  PlayTone(D1,15);Wait(20);
  PlayTone(E1,15);Wait(20);
  PlayTone(A1,30);Wait(40);
  PlayTone(E1,15);Wait(20);
  PlayTone(F01,15);Wait(20);
  PlayTone(E1,10);Wait(10);
  PlayTone(D1,10);Wait(10);
  PlayTone(E1,15);Wait(20);
  PlayTone(A1,30);Wait(40);
  PlayTone(E1,15);Wait(20);
  PlayTone(F01,15);Wait(20);
  PlayTone(E1,10);Wait(10);
  PlayTone(D1,10);Wait(10);
  PlayTone(E1,15);Wait(20);
  PlayTone(A,30);Wait(40);
  PlayTone(A1,15);Wait(20);
  PlayTone(A1,15);Wait(20);
  PlayTone(A1,15);Wait(20);
  PlayTone(A1,30);Wait(40);
  PlayTone(G1,10);Wait(10);
  PlayTone(F01,10);Wait(10);
  PlayTone(G1,15);Wait(20);
  PlayTone(G1,15);Wait(20);
  PlayTone(G1,15);Wait(20);
  PlayTone(G1,15);Wait(20);
  PlayTone(G1,45);Wait(50);
  PlayTone(A1,15);Wait(20);
  PlayTone(F01,15);Wait(20);
  PlayTone(E1,15);Wait(20);
  PlayTone(F01,15);Wait(20);
  PlayTone(G1,15);Wait(20);
  PlayTone(E1,45);Wait(50);
  PlayTone(D1,15);Wait(20);
  PlayTone(D1,45);Wait(50);
    }
 }
 task main()
 {
      SetSensor(SENSOR_1, SENSOR_TOUCH);
 
     start play_music ;    // 演奏を開始
     OnFwd(OUT_A+OUT_B);   // 前進
     until (SENSOR_1 == 1);
     stop play_music ;     // 演奏を停止
     Off(OUT_A+OUT_B);     // 動きも停止
 }


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS