概要
この実験の目的は、ブザーを制御し、アルトのド(523Hz)からトレブルのド(1047Hz)までの**8種類の異なる音階**を生成することです [1]。各音階は0.5秒間鳴らします [1]。
🛠️ 必要な部品
このプロジェクトを進めるために、以下の部品を準備してください [1]。
- RobotLinking Uno board : 1個
- USB data cable : 1本
- Passive Buzzer (パッシブブザー) : 1個
- Jumper wires : 数本
- Breadboard : 1個
実験原理
ブザーの原理は、**PWM(パルス幅変調)**を使用して音声を生成し、ブザーを駆動することで空気を振動させ、音を出すことです [2]。
振動周波数を適切に変更することで、異なる音階を生成できます [2]。例えば、523Hzのパルス波を送るとアルトのドが生成され、587Hzのパルスはミッドレンジのレを生成し、659Hzはミッドレンジのミを生成できます [2]。
**注意点**:Arduinoの analogWrite() 関数は周波数が固定(500Hz)されているため、異なる音階を出力するために使用することはできません [2]。
⚙️ 実践
1. 回路の組み立て
以下の接続手順に従って回路を組み立てます。
- ブザーの配線:**赤線(プラス側)**をArduinoボードの**ピン8**に接続します [3]。
- ブザーの配線:**黒線(マイナス側)**を**GND**に接続します [3]。
(ここに回路図の画像または図の記述を挿入)
2. プログラムの作成と書き込み
プログラム(公式ウェブサイトまたはCDのサンプルコード)を作成し、ボードに書き込みます [4]。
プログラムのロジック(コードの抜粋は含まれていませんが、解説があります)[3, 4]:
- **L04〜L05**: アルトのド、レ、ミ、ソ、ラ、シ、トレブルのドの**8つのオクターブ周波数**が定義されます。これらの周波数は
pitches.hファイルに定義され、配列melodyに格納されます [3]。 - **L06**: 各音階の応答時間(0.5秒)を表す変数
durationが定義され、500ミリ秒に設定されます [4]。 - **L13〜L19**: ブザーがアルトのド(523Hz)からトレブルのド(1047Hz)までの8つの異なる音階をそれぞれ0.5秒鳴らすための処理が行われます [4]。
- **L22**: 2秒ごとに内容がリプレイされます [4]。
3. コンパイルと書き込み
- プログラムをコンパイルします [4]。
- プログラムをRobotLinking Unoボードに書き込みます [4]。
✅ 確認
プログラムを書き込んだ後、ブザーが8種類の音階を順番に鳴らすことを確認してください [1, 4]。
💡 次のステップ
このサンプルを基に、いくつかのLEDを追加してプログラムを修正し、音を鳴らすと同時にLEDライトを制御して変化させることで、さらに応用的なプログラムにすることができます [5]。
例として、救急車のサイレンをシミュレートしてみてください [5]。ヒント:ブザーがアルトのド(523Hz)とアルトのファ(698Hz)をそれぞれ約0.8秒間連続して鳴らすようにすると、救急車のサイレンをシミュレートできます [5]。
