So-net無料ブログ作成

カエルの輪唱 [Arduino]

カエルのうたを輪唱します。
圧電サウンダを複数つけることや、波形の合成はちょっとむつかしそうだったので、1音をこまぎれにして鳴らそうと思います。「ドーー」を、「ドッ、ドッ、ドッ、ドッ」っといった感じです。

kaeru-fig.png
音程は、1オクターブ上げた方がきれいに聞こえました。(周波数を2倍にしました。)

1オクターブの中には、#や♭を含め12音あって、その周波数は2の12乗根の等比数列になっていて、1オクターブ(12音)で周波数が2倍になると信じていましたが、もっと奥が深いもののようでした。

平均律 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%B9%B3%E5%9D%87%E5%BE%8B

ソースはこんな感じです。
// カエルの歌 輪唱(12ピンに圧電サウンダ)
#define Do 262
#define Re 294
#define Mi 330
#define Fa 349
#define So 392
#define La 440
#define Ti 494

int kaeru[] = {
 Do,  0, Re,  0, Mi,  0, Fa,  0, Mi,  0, Re,  0, Do,  0,  0,  0,
 Mi,  0, Fa,  0, So,  0, La,  0, So,  0, Fa,  0, Mi,  0,  0,  0,
 Do,  0,  0,  0, Do,  0,  0,  0, Do,  0,  0,  0, Do,  0,  0,  0,
 Do, Do, Re, Re, Mi, Mi, Fa, Fa, Mi,  0, Re,  0, Do,  0,  0,  0 };

void setup() {
}

void loop() {
  int t, part, i;
  for (t = 0; t < 128; t++) {
    for(i = 0; i < 4; i++) {  // 1音を4回に分けて鳴らす
      for(part = 0; part < 4; part++) {
        tone( 12, (t/16-part+4)/4==1 ? kaeru[t-part*16]*2 : 0 , 20);
        delay(20);
        noTone(12);
      }
    }
  }
}


とりあえずの完成ということで。
タグ:カエル

カエルのうた [Arduino]

圧電サウンダをArduinoに直挿ししました。
digital 12 pin と GND につないだだけです。
kaeru-sounder.jpg
カエルのうたを鳴らします。
// カエルの歌 (12ピンに圧電サウンダ)
#define Do 262
#define Re 294
#define Mi 330
#define Fa 349
#define So 392
#define La 440
#define Ti 494

int kaeru[] = {
 Do,  0, Re,  0, Mi,  0, Fa,  0, Mi,  0, Re,  0, Do,  0,  0,  0,
 Mi,  0, Fa,  0, So,  0, La,  0, So,  0, Fa,  0, Mi,  0,  0,  0,
 Do,  0,  0,  0, Do,  0,  0,  0, Do,  0,  0,  0, Do,  0,  0,  0,
 Do, Do, Re, Re, Mi, Mi, Fa, Fa, Mi,  0, Re,  0, Do,  0,  0,  0 };

void setup() {
}

void loop() {
  for (int t = 0; t < 64; t++) {
    tone( 12, kaeru[t], 200 );
    delay(200);
    noTone(12);
  }
}


「カエルのうた」といえば、、次回は輪唱です。
タグ:カエル

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。