入出力端子

BBC micro:bit の下端に沿って金属の端子があります。歯が並んでいるかのように見えるアレです。これは入出力端子というものです(略称 I/O 端子)。

../_images/blue-microbit.png

端子のいくつかは他の端子よりも大きいので、ワニ口クリップを取り付けられます。大きい端子には 0, 1, 2, 3V, GND のラベルが付いています(コンピュータは常にゼロから数え始めます)。デバイスにエッジコネクタボードを取り付けると、他の(より小さい)端子にワイヤを結線できるようになります。

MicroPython では、BBC micro:bit の各端子を pinN という オブジェクト で表します。ここで N は端子番号です。

たとえば、0 (ゼロ)のラベルの付いた端子で何かを行うには、スクリプトで pin0 というオブジェクトを使います。

これらのオブジェクトには様々な メソッド があり、端子に固有の機能に応じたものが用意されています。たとえば read, write, touch などです。

くすぐったがりな Python (Ticklish Python)

端子を介した入力の最も単純な例は、それに触れているかどうかをチェックすることです。micro:bit をくすぐって笑わせてみましょう:

from microbit import *

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

片手で micro:bit の GND 端子を持ちます。次に、もう一方の手で 0 (ゼロ)の端子を触れてください。ディスプレイが心配顔から笑い顔に変わるのを見てください!

これは非常に基本的な入力測定の一つです。しかし、端子を使って回路や他のデバイスを接続すると、もっと楽しいことが始まります。

ブーピー音

micro:bit に取り付けられる最も簡単なものは圧電ブザーです。圧電ブザーには2種類あります。最もシンプルなのはアクティブブザーと呼ばれるものです。アクティブブザーには発振器が内蔵されていて、電流を流すと決められた音程で音が鳴ります。パッシブブザーには発振する周波数で音を出すために、発振電流を流す必要があります。つまり、アクティブブザーは使い方が簡単ですが1つの音しか出ず、パッシブブブザーは使い方が少し複雑ですが、さまざまな音を出せます。

piezo buzzer

ここでは、出力にアクティブピエゾブザーを使います。BBC micro:bit に取り付けるには、下図のようにワニ口クリップを使って端子 0 と GND に接続します。

piezo connected to pin0 and GND

端子 0 からの線をブザーのプラス側に接続し、GND からの線をマイナス側に接続します。

次のプログラムはブザー音を鳴らします:

from microbit import *

pin0.write_digital(1)

5秒ほどは楽しいかもしれませんが、すぐにうるさくなって音を止めたくなるでしょう。先のプログラムを改善して、デバイスを鳴らしてみましょう:

from microbit import *

while True:
    pin0.write_digital(1)
    sleep(20)
    pin0.write_digital(0)
    sleep(480)

このスクリプトの仕組みを理解できますか? デジタルの世界では 1 が「オン」で 0 が「オフ」であることを思い出してください。

デバイスは無限ループに入り、すぐに端子 0 をオンに切り替えます。これによりブザー音が鳴ります。ブザーが鳴っている間、デバイスは 20 ミリ秒間スリープし、端子 0 をオフに切り替えます。これにより短いブザー音を発生させます。最後に、デバイスは 480 ミリ秒間スリープしてから、ループバックして、もう一度やり直します。つまり、1 秒間に 2 回の鳴動(500 ミリ秒ごとに 1 回)が発生します。

私たちは非常に簡単なメトロノームを作ったのです!