入出力

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

../_images/blue-microbit.png

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

BBC micro:bit の各端子は pinN という オブジェクト で表します。ここで N は端子番号です。したがって、0 (ゼロ)のラベルの付いた端子で何かを行うには pin0 というオブジェクトを使います。

簡単!

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

くすぐったがりなニシキヘビ(Ticklish Python)

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

from microbit import *

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

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

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

ブーピー音

デバイスに取り付けられる最も簡単なものは圧電ブザーです。これを出力用に使用してみます(訳注: 同じような形状をしていても、圧電サウンダまたは圧電スピーカーと呼ばれているものでは音が鳴りません)。

../_images/piezo_buzzer.jpg

この小型デバイスを回路に接続すると高音域のブザー音を鳴らします。BBC micro:bit に取り付けるには、ワニ口クリップを使って端子 0 と GND に接続します(下図を参照)。

../_images/pin0-gnd.png

端子 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 回)が発生します。

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