Mira
さて、これはなんでしょう?
中から音楽が聞こえてくるわ。
ちっちゃな蓄音機!
仮の実装だけどね。ボトルキャップに入れています。
ATtiny85というマイクロコンピュータを使って電子オルゴールを作ってみたの。
蓋の裏に付いているのが圧電ブザーという音を出す部品です。
中の黒い箱みたいのがマイコンのATtiny85。
動作を安定させるために電解コンデンサ(左手前の円柱型の部品)を付けて、スイッチ(コンデンサの奥)で電源をONOFFできる。
これの面白いところは小さいところと、自分で好きな音を入れられるところね。
音の高さと速さを自由にプログラムできるの。
だから自分で簡単な曲を作曲しても面白いわね。
〇プログラム ↓
// Akogare
int melody[] = {
330,440,523, 659,523,440, 587,494,392, 523,494,440,330,
440,494,523, 330,523,330, 494,294,494,294, 440,262,165,220, //音階の周波数
};
int durations[] = {
16,16,16, 8,16,16, 8,16,16, 16,16,16,8, //13
16,16,8,16,16,16, 16,16,16,16, 16,16,16,8, //14 音符の長さ
};
void setup() {
}
void loop() {
for(int note = 0; note < 27; note++){ //音符の合計
int noteDuration = 5000 / durations[note]; //数字が長いほどゆっくり
tone(3, melody[note], noteDuration); //D3ピンから出力
int note_hazama = noteDuration * 1.05; /*音を出している時にマイコンが待機する長さ。ここでは「音符×1.05」なので、音と音の間にわずかな「間」があるわ。*/
delay(note_hazama);
}
delay(0); //リピート時の尻尾と頭の「間」の長さ
}
※ 2021.1.4.修正(『[』と『]』が表示されてなかったの。)
・リピート
void loop内にプログラムを書けば、繰り返し音楽が流れる。
void setup内にプログラムを書けば、一度だけ流れて止まる。
・和音
和音は基本的に一つのブザーでは出せないわ。
それっぽくする方法はいくつかあって、
・複数の周波数の間をとる。
・短い装飾音を入れて和音っぽくする。
・複数の周波数を短く繰り返す(これはやったことないから疑わしいわ)。
どうしても和音を出す必要がある場合には、ブザーを複数使えばできる。
試聴はこちら↓
ケースの中身の様子と配線図については別の記事で紹介します。
↓ こちらの記事
miraluna.hatenablog.com
ふたを開くとメロディが流れるTiny蓄音機については ←こちら
ATtiny85にスケッチを書き込む方法については ←ここから
8pin ATtiny書込みシールドの記事は ←ここから