はじめに
音に反応する仕組みは、スマートホームや防犯システム、さらにはインタラクティブアートまで、日常のさまざまな場面で役立っています。本記事では、ラズベリーパイPicoとサウンドセンサーを使ったプロジェクトを紹介します。サウンドセンサーの基本的な動作原理から、ラズベリーパイPicoへの接続方法、そして簡単な応用例まで解説します。
サウンドセンサーとは
サウンドセンサーは、音波を検知して信号に変換するデバイスです。サウンドセンサーには、単純な音の有無を検知するものから、音の強度や周波数を測定できる高機能なものまであります。
サウンドセンサーは主にマイクロフォン、信号処理回路、そして出力端子で構成されています。動作は以下の順で実施されます。
- 音の検知
内蔵マイクロフォン(通常はエレクトレットコンデンサーマイク)が音波(空気中の圧力変動)を検知します。このマイクは、音波の強弱や周波数に応じて微弱な電圧信号を生成します - 信号処理
マイクロフォンからの微弱な信号は、センサー基板上の増幅回路によって増幅されます。この段階で、ノイズ除去フィルタを通して不要な信号を取り除く場合もあります。一部のセンサーでは、信号がアナログ形式でそのまま出力されますが、デジタル形式に変換する回路が含まれているものもあります - 出力
増幅された信号がアナログ信号またはデジタル信号として出力されます。
日常生活での活用例
サウンドセンサーは以下のようなシーンで活躍しています
・スマートライト
手を叩いたり特定の音で部屋のライトを操作する仕組みを構築できます。音の強度だけでなく、周波数解析を加えれば、複数のコマンドに対応可能です
・防犯システム
不審な音を検知して、アラームや通知を送信する防犯システムを作成できます。例えば、LINE通知を組み合わせて即座に知らせる仕組みを追加できます
・おもちゃ
音に反応して動くロボットやインタラクティブなおもちゃがあります。楽しいですね。
配線
アナログ出力を使ってみます
RaspberryPi Pico | サウンドセンサ/LED |
VSYS(39番) | VCC |
GND(38番) | GND |
GP26(31番) | AO(アナログ出力) |
GP15(20番) | LEDのアノード |
GND(13番) | 抵抗(330Ω以上)/LEDのカソードを直列 |
サウンドセンサーを使ってみる
所定のレベル以上の音を検知したら、LEDを点灯させます。
感度調整のための可変抵抗がついていますので、無音の時と音を鳴らした時でうまくLEDが光るように閾値とともに調整してみてください。
from machine import Pin, ADC
from time import sleep
led = Pin(0, Pin.OUT)
# GP26 -> ADC0
sound_sensor = ADC(0)
def sound_map(read_value, in_min, in_max, out_min, out_max):
return (read_value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
count = 0
while True:
sound_level = round(sound_map(sound_sensor.read_u16(), 0, 65535, 0, 255))
if sound_level:
print("Sound Level: ", sound_level)
if sound_level > 100:
print("Detect Noise!", count)
led.value(1)
count +=1
else:
led.value(0)
sleep(0.3)
まとめ
サウンドセンサーは、音に反応する仕組みを簡単に作れる便利なデバイスです。ラズベリーパイPicoとの組み合わせで、スマートホームや防犯、エンターテインメントなど、幅広い用途に応用できます。ぜひ、自分だけのオリジナルプロジェクトにチャレンジしてみてください!
コメント