モータードライバを使って、マイクロビットでモーターを動かそうと思います。
今回は、micro:bitをふたつ使い、無線でモーターを制御します。「タミヤ 楽しい工作シリーズ組み立てキット リモコンロボット」を使います。このロボットは、左右ふたつのモーターで、好きな方向に動かせるものです。これを、送信機用micro:bitのふたつのボタンで操作しようと思います。
機能
ふたつのmicro:bitのうち、ひとつが送信機となり、ロボットを操縦します。Aボタンを押している間、左側のモーターが動き、Bボタンを押している間、右側のモーターが動くようにします。
操縦している内容を、無線機能で、もうひとつのmicro:bitに送信します。
もうひとつのmicro:bitが受信機となります。受信した情報に応じて、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)に固定したうえで、micro:bitの0番端子をAIN2に、1番端子をBIN2につなぎます。0番、1番端子が「0」のときに、それぞれモータA、モータBが動き、「1」のときに止まります。
材料
- micro:bit(2)
- micro:bit用MI:電源ボード、ボタン電池(CR2032) ※送信側micro:bit用
- 電池ボックス(単四×2、PHコネクタ付き)、電池(単四×2) ※受信側micro:bit用
- 電池ボックス(単三×2)、電池(単三×2) ※モーター用
- タミヤ 楽しい工作シリーズ組み立てキット リモコンロボット(クローラータイプ)
- ステッピング&DCモータドライバモジュール(DRV8835)
- ブレッドボード
- ジャンパー線、ハードジャンパー線
- 皿ネジ(M3x15mm)、ナット(M3)、プラスチック座金(内径3mm)
- 消しゴムの切れはし、両面テープ
プログラム
送信機側のプログラムは以下のとおりです。
ボタンAとボタンBの状態の組み合わせ(合計4とおり)によって、0〜3の数値を送信します。送信は0.1秒ごとに行います。
受信機側のプログラムは以下のとおりです。
受信した数値に応じて、端子P0とP1の値を切り替えます。
つなぎかた
「micro:bit用MI:電源ボード」というものを購入しました。
これは、micro:bitと同じ大きさのボードで、ボタン電池を入れられるようになっています。これをmicro:bitとネジでつなぐことで、micro:bitに電源供給ができます。
今回は、送信機側のmicro:bitに、これを使いました。
リモコンロボットを組み立てます。モーターの端子には、ブレッドボードにさせるように、ジャンパー線をつないでおきます。
受信機側の回路図は以下のとおりです。一応、micro:bit用の電源と、モーター用の電源は分けることにしました。
回路図に従って、ブレッドボードで接続していきます。右側の「+」のラインが、micro:bit用の電源で、左側の「+」のラインが、モーター用の電源です。「-」は、左右とも共通にします。
micro:bitの端子には、ジャンパー線をつないでおきます。
micro:bitの「3V」、「GND」を、ブレッドボードの、micro:bit用電源、グランドのラインにつなぎます。「0」、「1」を、モータードライバの「AIN2」、「BIN2」につなぎます。
電池ボックスをふたつ用意します。PHコネクタの付いている方がmicro:bit用、ジャンパー線の付いている方がモーター用です。
micro:bit用電池ボックスは、micro:bitの電源コネクタに、モーター用電池ボックスは、ブレッドボードの、モーター用電源、グランドのラインにつなぎます。
モータAの端子を、モータードライバの「AOUT1」、「AOUT2」に、モータBの端子を、モータードライバの「BOUT1」、「BOUT2」につなぎます。全てをロボットの上に乗せてできあがりです。
結果
送信機のボタン操作で、ロボットを操作することができました。