注釈

こんにちは。 Facebook の SunFounder Raspberry Pi & Arduino & ESP32 愛好者 コミュニティ へ ようこそ! 仲間 の 愛好者 と 一緒 に Raspberry Pi、 Arduino、 ESP32 を さらに 深く 探求 しましょう。

なぜ 参加 する の です か?

  • 専門的 な サポート : コミュニティ と チーム の 支援 に より、 購入 後 の 問題 や 技術的 な 課題 を 解決 できます。

  • 学習 と 共有 : ヒント や チュートリアル を 共有 し、 スキル を 向上 させましょう。

  • 限定 プレビュー : 新製品 の 発表 や 先行 情報 に いち早く アクセス できます。

  • 特別 割引 : 最新 製品 を 対象 に した 限定 割引 を 利用 できます。

  • イベント プロモーション と プレゼント : プレゼント 企画 や 祝日 キャンペーン に 参加 できます。

👉 私たち と 一緒 に 探索 と 創作 を 始める 準備 は できました か? [here] を クリック して、 今すぐ 参加 しましょう!

パッシブ ブザー

はじめに

この プロジェクト では、 異なる 周波数 で 駆動 する こと に より パッシブ ブザー に 音楽 を 再生 させる 方法 を 学びます。 パッシブ ブザー は、 アクティブ ブザー と 異なり、 音 を 出す ため に 外部 信号 を 必要 と します。


回路 図

この 回路 は、 パッシブ ブザー、 NPN トランジスタ、 そして 1kΩ 抵抗 を 使用 します。 抵抗 は 過大 な 電流 から トランジスタ を 保護 します。 トランジスタ に 接続 された GPIO ピン の 周波数 を 変化 させる こと で、 ブザー は 異なる 音 を 発生 し、 音楽 を 再生 できる よう に なります。

../_images/1.2.2_sch.png

配線 図

以下 の 手順 に 従って 回路 を 組み立てて ください:

  1. NPN トランジスタ の ベース を、 抵抗 を 介して PWM0 に 接続 します。

  2. トランジスタ の エミッタ を 電源( + )に 接続 します。

  3. トランジスタ の コレクタ を、 パッシブ ブザー の 一方 の 端子 に 接続 します。

  4. ブザー の もう 一方 の 端子 を グランド( - )に 接続 します。

../_images/1.2.2_bb.png

コード

以下 の Python コード は、 パッシブ ブザー を 使用 して 音階 を 生成 します:

#!/usr/bin/env python3
from fusion_hat.modules import Buzzer
from fusion_hat.pwm import PWM
from time import sleep

# Initialize a TonalBuzzer connected to PWM 0
tb = Buzzer(PWM('P0'))  # Update this pin number based on your setup

def play(tune):
   """
   Play a musical tune using the buzzer.
   :param tune: List of tuples (note, duration), where each tuple represents a note and its duration.
   """
   for note, duration in tune:
      print(note)  # Output the current note being played
      tb.play(note,float(duration))  # Play the note on the buzzer
   tb.off()  # Stop playing after the tune is complete

# Define a musical tune as a sequence of notes and durations
tune = [('C#4', 0.2), ('D4', 0.2), (None, 0.2),
   ('Eb4', 0.2), ('E4', 0.2), (None, 0.6),
   ('F#4', 0.2), ('G4', 0.2), (None, 0.6),
   ('Eb4', 0.2), ('E4', 0.2), (None, 0.2),
   ('F#4', 0.2), ('G4', 0.2), (None, 0.2),
   ('C4', 0.2), ('B4', 0.2), (None, 0.2),
   ('F#4', 0.2), ('G4', 0.2), (None, 0.2),
   ('B4', 0.2), ('Bb4', 0.5), (None, 0.6),
   ('A4', 0.2), ('G4', 0.2), ('E4', 0.2),
   ('D4', 0.2), ('E4', 0.2)]


try:
   play(tune)  # Execute the play function to start playing the tune

except KeyboardInterrupt:
   # Handle KeyboardInterrupt for graceful termination
   pass

この Python スクリプト は、 PWM 0 に 接続 された パッシブ ブザー を 使用 して メロディー を 再生 します。 実行 すると:

  1. スクリプト は、 あらかじめ 定義 された 音符 の シーケンス( tune )を 順番 に 処理 し、 各 音符 を 指定 された 時間 だけ 再生 します。

  2. 再生 されて いる 音符 は コンソール に 出力 され、 視覚 的 な 確認 が できます。

  3. すべて の 音符 が 再生 される と、 メロディー は 自動 的 に 停止 します。 休符( 音符 が None の 場合 )の 間、 ブザー は 音 を 出しません。

  4. この プログラム は、 Ctrl+C を 使用 して 安全 に 中断 できます。