Lesson5.ブザーの音程を自在にコントロール!

概要

この実験の目的は、ブザーを制御し、アルトのド(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. コンパイルと書き込み

  1. プログラムをコンパイルします [4]。
  2. プログラムをRobotLinking Unoボードに書き込みます [4]。

✅ 確認

プログラムを書き込んだ後、ブザーが8種類の音階を順番に鳴らすことを確認してください [1, 4]。

💡 次のステップ

このサンプルを基に、いくつかのLEDを追加してプログラムを修正し、音を鳴らすと同時にLEDライトを制御して変化させることで、さらに応用的なプログラムにすることができます [5]。

例として、救急車のサイレンをシミュレートしてみてください [5]。ヒント:ブザーがアルトのド(523Hz)とアルトのファ(698Hz)をそれぞれ約0.8秒間連続して鳴らすようにすると、救急車のサイレンをシミュレートできます [5]。