【micro:bit v2】 内臓 マイクを使う

LESSON 011

  音センサ使う

 半導体微細加工技術を応用発展させたMEMS(Micro-Electro-Mechanical Systems)技術を使用したMEMSマイクロフォンはすぐれた音響・電気特性を超小型パッケージ化したものです。 
 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, )
  microphone.set_threshold(SoundEvent.QUIET, )

音連動のLEDサウンドライト
音に連動しLEDが変化するサウンドライトを作る
     
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までの範囲でサウンドレベルを測定
  
         

     

     

目次