稼働中

micro:bit V2(m_29)microbit.pin_logo .pin_speaker

pin_logo pin_speaker

MicroPython micro:bit V2 の「microbit」モジュールには V1から追加された
「audio, microphone, pin_logo, pin_speaker, set_volume, speaker, ws2812_write, Sound, SoundEvent」の関数があります。
※「microbit」モジュールを「from microbit import *」でインポートした前提で記載しています。

(15)microbit.pin_logo

micro:bitのロゴをタッチセンサで使います。
「is_touched()、 set_touch_mode(value)、RESISTIVE(0)、CAPACITIVE(1)」のメソッドがあります。

(15-1)is_touched()

is_touched()でpin_logoに触れているかどうかをブール値(True、False)で返します。

(15-2)set_touch_mode(value)

タッチセンサの感度モードを設定します。抵抗性か容量性を選択できます。それぞれRESISTIVE or CAPACITIVEで設定します。


>>> type(pin_logo)
<class 'MicroBitTouchOnlyPin'>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from microbit import *
pin_logo.set_touch_mode(pin_logo.CAPACITIVE) # タッチセンサ感度を容量性(default)
#pin_logo.set_touch_mode(pin_logo.RESISTIVE) # タッチセンサ感度を抵抗性

for i in range(10):
    touch=pin_logo.is_touched() # 接触の有無をブール値で返す
    print(i,touch)
    sleep(1000)

実行結果


>>> %Run -c $EDITOR_CONTENT
0 False
1 False
2 False
3 True     # touch
4 False
5 False
6 True     # touch
7 True     # touch
8 True     # touch
9 False
>>> 

(16)microbit.pin_speaker

micro:bit V2に搭載されているスピーカーpinの制御をします。搭載スピーカー専用のpinです。
「get_analog_period_microseconds, get_mode, get_pull, read_digital, set_analog_period, set_analog_period_microseconds, set_pull, write_analog, write_digital,NO_PULL, PULL_DOWN, PULL_UP」のメソッドがあります。
pin5-16,19-20と同じです。記事(m_07)microbit.pin(m_08)microbit.pin を参照ください。


from microbit import *
# ドレミファソラシド  36
f_dat=[130.815,146.835,164.82,174.62,196,220,246.94,261.63,293.67,329.63,
       349.23,392,440,493.88,523.23]
for dat in f_dat:
    d_usec=int(1/dat*10**6)
    pin_speaker.set_analog_period_microseconds(d_usec)#1usec~256msec
    pin_speaker.write_analog(128)
    period=pin_speaker.get_analog_period_microseconds()
    t=period/(10**3)
    f=1/period*10**3
    print('%6.2f msec'%t ,'%6.3f khz'%f)
    sleep(200)
    
pin_speaker.write_analog(0)

実行結果


>>> %Run -c $EDITOR_CONTENT
  7.64 msec  0.131 khz  #t,f 周期、周波数
  6.81 msec  0.147 khz
  6.07 msec  0.165 khz
  5.73 msec  0.175 khz
  5.10 msec  0.196 khz
  4.55 msec  0.220 khz
  4.05 msec  0.247 khz
  3.82 msec  0.262 khz
  3.40 msec  0.294 khz
  3.03 msec  0.330 khz
  2.86 msec  0.349 khz
  2.55 msec  0.392 khz
  2.27 msec  0.440 khz
  2.02 msec  0.494 khz
  1.91 msec  0.523 khz
>>> 

まとめ

micro:bit V2のmicrobitモジュールのpin_logo、pin_speakerについて記載しました。