マイクロビットを使ってみる 〜入出力端子について(応用編)

スポンサーリンク
マイクロビット概要

マイクロビットの入出力端子については、以前の記事(こちら)で簡単に説明していますが、ここではより詳しく説明します。


入出力端子(大きい端子)

マイクロビットには、マイクロビットを他の電子部品とつなぐための「入出力端子」があります。
「ワニ口クリップ」や「ネジ( M3ネジ がちょうど良い太さです)」をつかって、他の部品をつなぐことができます。

グランド(GND)、電源(3V)、汎用入出力(0、1、2)の5つの端子があります。

入出力端子(小さい端子)

大きい端子と大きい端子の間は細いスジのようになっていますが、これらも端子です。

小さい端子はワニ口クリップなどをつなぐことができませんので、別売のソケットなどをつかって信号を取り出します。

電源・グランド

「3V」は電源端子、「GND」はグランド端子です。

2本直列にした乾電池のプラスを「3V」、マイナスを「GND」につなぐと、マイクロビットに電気を供給することができます。
また、USBケーブルなどで電気を供給しているときは、これらの端子から電気を取り出すことができます(マイクロビットにつないだ部品に電気を供給することができます)。

電源電圧は 3V です。

電源端子から取り出せる電圧値、電流値

先ほど「電源電圧は 3V」と書きましたが、実際には「1.95V ~ 3.6V」の間であればマイクロビットは動きます。
よって、マイクロビットがどんな電源につながっているかによって、マイクロビットから取り出せる電圧値も変わります。

  • 乾電池は1本 1.5V なので、2本直列で 3V です。
  • エネループなどの乾電池型充電池(Ni-MH電池)は1本 1.2V なので、2本直列で 2.4V です。
  • USBケーブルからは5Vが供給され、マイクロビットの中で 3.3V に変換されています。

マイクロビットから取り出せる電流値は最大 90mA(USBで電源供給した時)です。センサやLEDぐらいなら大丈夫ですが、モーターや豆電球(消費電流値が数百mA)をつなぐことはできません。

【参考】マイクロビットへの電源のつなぎ方

マイクロビットへの電源のつなぎ方はいくつかあります。

  • ふつうは、マイクロビットの「電源コネクタ端子」に電池ボックスをつないでつかいます。
  • パソコンやモバイルバッテリーから電源をとる場合は「USB端子」をつかいます。
  • 他の電子部品と電源を共用したり、他の電子部品から電源をとる場合は「大きい3V、GND端子」をつかいます。

なお、マイクロビットに電源をつなぐ際には、電源とグランドをショートさせないように注意してください。
電池が発熱、破裂したり、マイクロビットがこわれてしまう可能性があります。

汎用入出力(GPIO:General Purpose Input/Output)

「0」、「1」、「2」は、プログラムで制御できる「入出力」です。
MakeCodeエディタでは「P0」、「P1」、「P2」という名前になっていますが、それらが「0」、「1」、「2」のことです。

外からこれらの端子に与えられた電圧をプログラムで読み取ったり、プログラムでこれらの端子に電圧を与えたりできます。

大きい汎用入出力は3つだけなので、プログラムで4つ以上の入出力を制御したい場合は、小さい汎用入出力をつかう必要があります。

端子によっては、マイクロビットの内部機能と共用しているものがあります(たとえば「P3」はLEDと共用しているので、プログラムで「P3」を制御するとLEDの点灯に影響があります)。くわしくは前述の表を見てください。

デジタルとアナログ

デジタルでは、端子の電圧を以下のように表します。

  • 高い(3V)とき:「1」(もしくは「High」、「H」)
  • 低い(0V)とき:「0」(もしくは「Low」、「L」)

アナログでは、端子の電圧(0V~3V)を「0~1023」の数値で表します。

マイクロビット(他のコンピュータでも)の中では、信号は「デジタル」で処理されています。

デジタル出力とアナログ出力

【デジタル出力】

「高度なブロック」>「入出力端子」>「デジタルで出力する」などのブロックで、デジタル出力ができます。
端子の電流値は最大5mAなので、端子につないだLEDを光らせるぐらいはできますが、モーターなどを直接つなぐことはできません。

【アナログ出力】

「高度なブロック」>「入出力端子」>「アナログで出力する」などのブロックで、アナログ出力ができます。
「0V~3V」を「0~1023」の数値で表現して、アナログ電圧値を指定します。
ただし実際には、マイクロビットからアナログ電圧値は出力できず、「PWM」という信号を出力しています。

PWM(Pulse Width Modulation:パルス幅変調)

マイクロビットではアナログ電圧値を出力することはできません。例えば1.5Vを出力しようとすると、実際には以下のような信号が出力されます(PWM)。

音声の場合、たとえば「真ん中のラ」の電子音は、周期2.27ミリ秒のサイン波というきれいな波ですが、マイクロビットでは「PWM」でサイン波に似た波形をつくり、それで音をならしています。
実際の音声では、波形がどんどん複雑になることでいろいろな音になりますが、マイクロビットの音は上記の仕組みでつくっているため、残念ながら「音色を変えたり」「音量を変えたり」「和音を出したり」することはできません。

デジタル入力とアナログ入力

【デジタル入力】

「高度なブロック」>「入出力端子」>「デジタルで読み取る」などのブロックで、デジタル入力ができます。
デジタル入力するときには、「プルアップ」、「プルダウン」をした方がよい場合があります。

【アナログ入力】

「高度なブロック」>「入出力端子」>「アナログ値を読み取る」などのブロックで、アナログ入力ができます。
端子の電圧(0V~3V)を「0~1023」の数値で読み取ることができます。
アナログ入力できるのは「P0」、「P1」、「P2」、「P3」、「P4」、「P10」の6端子のみです。

プルアップとプルダウン

たとえば、外付けスイッチを押しているかどうかをマイクロビットで判断する場合、スイッチを押したときにはP0は「1」になりますが、押してない時にはどこにもつながっていないので、「0」か「1」か分かりません。

このようなとき、「高度なブロック」>「入出力端子」>「その他」>「端子をプルダウンする」を使えば、この端子を弱くグランドにつなぐことができます。

これにより、スイッチを押したら「1」、押してなかったら「0」と判定できるようになります。

「プルアップ」で、弱く電源につなぐこともできます。

 

なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。