banner
ニュース センター
本当に素晴らしい体験を得るために、当社の幅広い世界クラスの製品とサービスからお選びください。

Raspberry Pi Pico でブザーを使用して音楽を再生する方法

May 28, 2023

安価な圧電ブザーを使用すると、アラームを設定したり、曲全体を再生したりできます。

ターンを失ったときにビープ音を鳴らすゲーム、目を覚ます目覚まし時計、または 8 ビット音楽を再生する単なるかわいいディスプレイを構築する場合でも、低コストのピエゾ ブザーは Raspberry Pi Pico の重要な部分になります。プロジェクト。 非常に安価なブザーは、1 個あたり 1 ドル以下で見つかることもよくありますが、MicroPython でプログラムするのは非常に簡単で、音符を生成するために周波数を変えることもできます。

圧電ブザーにはアクティブとパッシブの 2 種類があります。 アクティブ ブザーは、マイクロコントローラーを使用せずに電源に接続しただけの場合にノイズを発生しますが、パッシブ ブザーはノイズを発生しません。 この種のプロジェクトでは、より幅広いサウンドを提供するパッシブ ブザーが好まれますが、テストでは両方とも機能しました。

以下では、Raspberry Pi Pico を圧電ブザーに配線し、MicroPython でプログラムして短い曲を再生する方法を示します。

これ以上に簡単なことはありません。 ブザーのグランド ピンを Pico の GND ピンに接続し、正のブザー ピンを Pico の標準 GPIO ピン (この場合は GP15) に接続します。 当社のパッシブ ブザーにはピンにマイナスまたはプラスのラベルがなく、どちらかをいずれかの Pico ピンに接続しても動作しました。

1. まずマシン ライブラリからピンと PWM をインポートし、utime ライブラリからスリープをインポートします。

2.PWMの初期化(別名パルス幅変調) をピン 15 に入力し、可変ブザーに割り当てます。

3. freq プロパティをブザーに割り当てます。 10 ~ 12,000 の範囲の数値を選択する必要があります。 数値が大きいほど高音になります。 500にしてみます。

4.Duty_u16 プロパティを設定するブザーオブジェクトの1000まで 。 これにより、ブザーが可能な限り大きく鳴ります。 値が低いほど静かになり、0 はまったく音がありません。 これらのブザーがどれほど静かであるかを考えると、最大音量はまったく大きくありません。

5.1秒の遅延を設定しますその後デューティを0に設定します音が止まるように。 これを行わないと、プログラムの実行が終了した後でもノイズが鳴り続けます。

この簡単なテストの最終コードは次のようになります。

さまざまな周波数を使用できるため、さまざまな音符を作成できます。 オンライン上には音符周波数のリストがいくつかあり、その多くは Github にある Brett Hagman の Arduino トーン ライブラリに遡ります。 これらの値を使用して、コードの早い段階で任意の曲を再生するために使用できるリストを作成します。

1.必要なライブラリをインポートするそしてピン15のPWMを初期化します

2.「notes」という辞書を作成する次の値を使用します。

3.リストを作成します (別名配列) のメモあなたの歌のために。 音楽の一時停止を表すには文字 P を使用します。 各メモは引用符で囲む必要があります。

この有名なリフのノートを共有してくれたこのスレッドの人々に感謝します。

4.プレイトーンという関数を作成します。任意の周波数を取得し、最大音量で再生します。

5.bequiet という関数を作成します。これは、duty_u16 を 0 に変更することでブザーを鳴らさないようにします。

6.playsong という関数を作成します。これを使用して、ノートの配列を反復処理し、それぞれを再生するか、P が表示されたときに一時停止します。

ここで何が起こっているのかを説明します。 まず、mysong 配列内のすべての値を反復処理する for ループを作成します。 値が P に等しい場合は静かになるようにトリガーされ、そうでない場合はプレイトーンがトリガーされます。 プレイトーンには周波数の数値が必要なため、トーン リストから各ノートの番号を取得する必要があることに注意してください。 playtone(mysong[i]) だけを実行すると、必要な整数である周波数 659 ではなく、文字列「E5」を再生しようとするため、失敗します。

トーンまたは一時停止ごとに、システムは 0.3 秒間のスリープ状態を維持します。 テンポを速くしたい場合は、その時間を短くすることができます。 テンポを遅くしたい場合は、テンポを上げてください。