LoginSignup
2
0

More than 3 years have passed since last update.

micro:bit v2 用 MicroPython の beta-3 が出たので試してみた

Last updated at Posted at 2020-12-24

はじめに

micro:bit Advent Calendar 2020 6日目の「micro:bit v2 用 MicroPython で新機能を試してみる」を書いたときには V2用MicroPython は beta-2 でしたが、早くも12月21日に beta-3 が出たので新機能や変わったところを試してみました。

タッチセンサーのモードの変更

端子 0, 1, 2 を静電容量式のタッチセンサーに変更できる set_touch_mode() メソッドが追加になりました。これでロゴ以外でも GND 端子に触れることなくタッチセンスできるようになります。

from microbit import *

touch_pin = pin0

touch_pin.set_touch_mode(touch_pin.CAPACITIVE)  # 静電容量
#touch_pin.set_touch_mode(touch_pin.RESISTIVE)  # 抵抗膜

while True:
    if touch_pin.is_touched():
        display.show(Image.HAPPY)
    else:
        display.show(Image.SAD)

一方、ロゴのほうを抵抗膜式に変更できるかというと、それはうまくいきませんでした。

アセンブラ関数

V1 にはあったアセンブラ関数が V2 でもサポートされました。以下は簡単な整数の足し算の例です。

from microbit import *

@micropython.asm_thumb
def asm_add(r0, r1):
    add(r0, r0, r1)

display.show(asm_add(1, 2))

スピーカ関連の変更

以前の記事で、内蔵スピーカーと外付けのスピーカーの両方を指定するAPI仕様が正式にサポートされるか微妙と書いていましたが、beta-3 では廃止となりました。

デフォルトで内蔵スピーカーと端子 0 から音が出るのは今までどおりです。

内蔵スピーカーを有効/無効にする speaker.on()/off() が追加になりました。

from microbit import speaker
import music

speaker.off()  # 内蔵スピーカーを無効にする
music.play(music.PYTHON)  # 端子0に繋いだスピーカーからだけ音が出る

内蔵スピーカーからだけ音を出すようにする(端子0 を別の目的に使えるようにする)には次のようにします。

import music

music.play(music.PYTHON, pin=None)

端子1や2に繋いだスピーカからだけ音を出すには次のようにします。

from microbit import speaker, pin1, pin2
import music

speaker.off()
music.play(music.PYTHON, pin=pin1)  # 端子1に繋いだスピーカーの場合
music.play(music.PYTHON, pin=pin2)  # 端子2に繋いだスピーカーの場合
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0