モータードライバを使って、マイクロビットでモーターを動かします。
今回は、マイクロビットをふたつ使い、無線でモーターを制御します。「タミヤ 楽しい工作シリーズ組み立てキット リモコンロボット」を使います。このロボットは、左右ふたつのモーターで、好きな方向に動かすことができます。これを、送信機用マイクロビットのふたつのボタンで操作しようと思います。
機能
ふたつのマイクロビットのうち、ひとつが送信機となり、ロボットを操縦します。Aボタンを押している間、左側のモーターが動き、Bボタンを押している間、右側のモーターが動くようにします。
操縦している内容を、無線機能で、もうひとつのマイクロビットに送信します。
もうひとつのマイクロビットが受信機となります。受信した情報に応じて、0番端子と1番端子の値を切り替えます。0番端子の値によって左側のモーターを、1番端子の値によって右側のモーターを制御します。
0番端子、1番端子を、モータードライバにつなぎ、ふたつのモーターを制御します。
今回使うモータードライバは、秋月電子で売っている、ステッピング&DCモータドライバモジュール(DRV8835)というものです。
このモータードライバは、MODE=0のとき、以下のようなピン仕様になっています。「X」のところには「A」もしくは「B」が入ります。ドライバひとつで、ふたつのモーターを制御できます。
MODE | XIN1 | XIN2 | XOUT1 | XOUT2 | FUNC |
---|---|---|---|---|---|
0 | 0 | 0 | Z | Z | 空転 |
0 | 0 | 1 | L | H | 逆転 |
0 | 1 | 0 | H | L | 正転 |
0 | 1 | 1 | L | L | ブレーキ |
今回は、これらのうち、「正転」と「ブレーキ」のモードを使います。つまり、MODEはグランド(0)、AIN1とBIN1は電源電圧(1)に固定したうえで、マイクロビットの0番端子をAIN2に、1番端子をBIN2につなぎます。0番、1番端子が「0」のときに、それぞれモータA、モータBが動き、「1」のときに止まります。
材料
- マイクロビット(×2)
- micro:bit用MI:電源ボード、ボタン電池(CR2032) ※送信側マイクロビット用
- 電池ボックス(単四×2、PHコネクタ付き)、電池(単四×2) ※受信側マイクロビット用
- 電池ボックス(単三×2)、電池(単三×2) ※モーター用
- タミヤ 楽しい工作シリーズ組み立てキット リモコンロボット(クローラータイプ)
- ステッピング&DCモータドライバモジュール(DRV8835)
- ブレッドボード
- ジャンパー線、ハードジャンパー線
- 皿ネジ(M3×15mm)、ナット(M3)、プラスチック座金(内径3mm)
- 消しゴムの切れはし、両面テープ
プログラム
送信機側のプログラムは以下のとおりです。
ボタンAとボタンBの状態の組み合わせ(合計4とおり)によって、0〜3の数値を送信します。送信は0.1秒ごとに行います。

受信機側のプログラムは以下のとおりです。
受信した数値に応じて、端子P0とP1の値を切り替えます。

つなぎかた
「micro:bit用MI:電源ボード」というものを購入しました。

これは、マイクロビットと同じ大きさのボードで、ボタン電池を入れられるようになっています。これをマイクロビットとネジでつなぐことで、マイクロビットに電源供給ができます。
今回は、送信機側のマイクロビットに、これを使いました。



リモコンロボットを組み立てます。モーターの端子には、ブレッドボードにさせるように、ジャンパー線をつないでおきます。

受信機側の回路図は以下のとおりです。一応、マイクロビット用の電源と、モーター用の電源は分けることにしました。

回路図に従って、ブレッドボードで接続していきます。右側の「+」のラインが、マイクロビット用の電源で、左側の「+」のラインが、モーター用の電源です。「-」は、左右とも共通にします。

マイクロビットの端子には、ジャンパー線をつないでおきます。

マイクロビットの「3V」、「GND」を、ブレッドボードの、マイクロビット用電源、グランドのラインにつなぎます。「0」、「1」を、モータードライバの「AIN2」、「BIN2」につなぎます。

電池ボックスをふたつ用意します。PHコネクタの付いている方がマイクロビット用、ジャンパー線の付いている方がモーター用です。

マイクロビット用電池ボックスは、マイクロビットの電源コネクタに、モーター用電池ボックスは、ブレッドボードの、モーター用電源、グランドのラインにつなぎます。

モータAの端子を、モータードライバの「AOUT1」、「AOUT2」に、モータBの端子を、モータードライバの「BOUT1」、「BOUT2」につなぎます。全てをロボットの上に乗せてできあがりです。

結果
送信機のボタン操作で、ロボットを操作することができました。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。