LESSON 011
音センサ使う
半導体微細加工技術を応用発展させたMEMS(Micro-Electro-Mechanical Systems)技術を使用したMEMSマイクロフォンはすぐれた音響・電気特性を超小型パッケージ化したものです。
MEMSマイクの原理は、コンデンサマイクと同じ静電容量型で、音圧が音孔からキャビティに伝わると、振動板が動いてバックプレートの電極との間の静電容量が変わるので、これを信号として検出します。
マイクのLEDが点灯していたらマイクはON状態になります。
MEMSマイクの原理は、コンデンサマイクと同じ静電容量型で、音圧が音孔からキャビティに伝わると、振動板が動いてバックプレートの電極との間の静電容量が変わるので、これを信号として検出します。
マイクのLEDが点灯していたらマイクはON状態になります。
表 | 裏 |
「静かになった」または、「うるさくなった」時のしきい値を超した場合にイベントを実施します。
MakeCode
Python Editor スケッチ《 Mtest027》
from microbit import *
while True:
if microphone.current_event() == SoundEvent.QUIET:
display.show(Image.HEART)
elif microphone.current_event() == SoundEvent.LOUD:
display.show(Image.NO)
解説
microphone.current_event() == SoundEvent.QUIET:
「静かになった」音のイベントに反応
microphone.current_event() == SoundEvent.LOUD:
「うるさくなった」音のイベントに反応
しきい値の変更
「静かになった」と「うるさくなった」のイベントのしきい値を0~255の範囲で指定
microphone.set_threshold(SoundEvent.LOUD, X)
microphone.set_threshold(SoundEvent.QUIET, X)
MakeCode
Python Editor スケッチ《 Mtest028》
from microbit import *
while True:
x=microphone.sound_level()
if x > 20:
display.show(Image('00000:'
'00000:'
'00000:'
'00000:'
'00900'))
if x > 30:
display.show(Image('00000:'
'00000:'
'00000:'
'00000:'
'09990'))
if x > 50:
display.show(Image('00000:'
'00000:'
'00000:'
'00000:'
'99999'))
if x > 60:
display.show(Image('00000:'
'00000:'
'00000:'
'00900:'
'99999'))
if x > 80:
display.show(Image('00000:'
'00000:'
'00000:'
'09990:'
'99999'))
if x > 90:
display.show(Image('00000:'
'00000:'
'00000:'
'99999:'
'99999'))
if x > 110:
display.show(Image('00000:'
'00000:'
'00900:'
'99999:'
'99999'))
if x > 125:
display.show(Image('00000:'
'00000:'
'09990:'
'09990:'
'99999'))
if x > 145:
display.show(Image('00000:'
'00000:'
'99999:'
'99999:'
'99999'))
if x > 155:
display.show(Image('00000:'
'00900:'
'99999:'
'99999:'
'99999'))
if x > 175:
display.show(Image('00000:'
'09990:'
'99999:'
'99999:'
'99999'))
if x > 190:
display.show(Image('00000:'
'99999:'
'99999:'
'99999:'
'99999'))
if x > 210:
display.show(Image('00900:'
'99999:'
'99999:'
'99999:'
'99999'))
if x > 220:
display.show(Image('09990:'
'99999:'
'99999:'
'99999:'
'99999'))
if x > 256:
display.show(Image('99999:'
'99999:'
'99999:'
'99999:'
'99999'))
解説
microphone.sound_level()
マイクは0から255までの範囲でサウンドレベルを測定
リンク