DCモーターを制御する
micro:bitで、モータードライバーを使ったDCモーターの制御方法を解説します。ここで紹介するモータードライバーは、TB6612FNG(TOSHIBA)です。
3-10-1.モータードライバーとは
DCモーターとモータードライバーについて解説します。
DCモーター
DCモーターは、電池などの直流電源に接続することで一定方向に回転するモーターで、模型自動車の駆動輪などに用いられます。接続する直流電源のプラスとマイナスを反転させることで回転方向が逆転し、また、電圧を変化させることで回転速度が変えられます。
固定子(永久磁石)と回転子(コイル)で構成され、コイルに流れる電流の向きをブラシと整流子によって切り替えることで、回転力となる磁力の反発・吸引を発生させています。ブラシ付きDCモーターとも呼ばれます。
DCモーターには、形状・電源電圧・回転数・トルクなどの違いにより、さまざまな種類があります。DCモーターを含む小型モーターの世界を代表するメーカーである「マブチモーター株式会社」の製品が、小型モーターのデファクトスタンダードとなっています。その中でも「130型」と呼ばれる形状のものが、模型工作でよく利用されています。なお、この記事で使用するDCモーターも130型です。
以下は、130型のDCモーターFA-130RA(マブチモーター)の仕様です。
- 電圧範囲:1.5[V]~3.0[V](標準1.5[V])
- 無負荷時電流:0.2[A]
- 無負荷時回転数:9,100[回転/分]
- 定格負荷時電流:0.66[A]
- 定格負荷時回転数:6,990[回転/分]
- 定格負荷時トルク:6.0[g・cm]
- ストール時電流:2.2[A]
- ストール時トルク:26[g・cm]
DCモーターの制御を考える
DCモーターの制御には次のような要素があります。
- 回転・停止を制御する → 電源のオン・オフ
- 回転方向(正転・逆転)を制御する → 電源の極性反転
- 回転速度を制御する →電源の電圧変化
130型のDCモーターの仕様を見ると、回転させるのに必要な電圧は1.5[V]~3.0[V]です。micro:bitのデジタル出力ピンは、出力電圧が3.3[V]なので、DCモーターを回転させるには十分な電圧があります。では、DCモーターを直にmicro:bitのデジタル出力ピンへ接続すれば、回転するのでしょうか。残念ながら、答えはノーです。その理由は、DCモーターを回転させるのに必要な電流にあります。
DCモーターを回転させるには、どのくらいの電流が必要なのでしょうか。もう一度、仕様を見てみましょう。無負荷時電流0.2[A](200m[A])・定格負荷時電流0.66[A](660m[A])とあります。micro:bitでLEDを点灯させる「3-1.LEDを点灯させる【Lピカ】」の中で解説しているように、LEDを光らせるのに必要な電流は数m[A]でした。このLEDの点灯と比べると、DCモーターの回転には大きな電流が必要なことがわかります。DCモーターの始動時には、さらに大きな電流が必要です。
実は、micro:bitのデジタル出力ピンは、最大でも5m[A]の電流を供給する能力しかありません。つまり、LEDを光らせることはできても、DCモーターを回転させることはできないのです。
モータードライバー
では、micro:bitでDCモーターを制御するにはどうすればいいのでしょうか。その一つが、ここで紹介する「モータードライバー」と呼ばれる制御用ICを使用する方法です。
モータードライバーは、図3-10-1-2のようにmicro:bitと接続します。2つのデジタル信号(IN1・IN2)の組み合わせで、DCモーターの正転・逆転・停止・ブレーキを制御することができます。また、PWM信号(PWM)で回転速度を制御できます。モータードライバー側に、モータを駆動するための専用の電源が必要です。
この記事で使用するのは、モータードライバーTB6612FNG(TOSHIBA)を搭載したSparkFun社のモータードライバーモジュール(ブレークアウト基板)です。TB6612FNGは、2つのDCモーターを駆動できるデュアルモータードライバーです。表面実装用の小さなサイズですが、ブレークアウト基板でピッチ変換されているので、ブレッドボードでも使えるようになっています。また、ブレークアウト基板上には、IC用電源ピンとモーター用電源ピンにノイズ低減用コンデンサーが実装されています。
以下は、TB6612FNGモータードライバーモジュール(SparkFun社)の仕様です。
- チャンネル数:2チャンネル
- モーター用電源電圧:最大15[V]
- 出力:1チャンネルあたり連続最大1.2[A]、ピーク時3.2[A]
- 制御:正転・逆転・ブレーキ・停止・回転速度(PWM制御)
- 保護機能:熱遮断回路・低電圧検出回路
- IC用電源電圧:2.7[V]~5.5[V]
3-10-2.用意するもの
表3-10-2-1は、この電子工作に必要な部品などの仕様・定格です。
品名 | 数量 | 仕様・定格など |
---|---|---|
micro:bit本体 | 1 | |
プロトタイピングセット | 1 | KITRONIK-5609 |
モータードライバー | 1 | TB6612FNGモータードライバーモジュール |
DCモーター | 1 | 130型 |
積層セラミックコンデンサー | 1 | 0.1μ[F](104) |
電池ボックス | 1 | 単三型電池2本用 |
単三型電池 | 2 | 充電式ニッケル水素電池1.2[V] |
ジャンプワイヤー(オス-メス) | 2 | KITRONIK-5609に付属のもの |
ジャンプワイヤー(オス-オス) | 適量 | 秋月電子通商(通販コード:P-00288)にて購入可能 |
プロトタイピングセットとは、ブレッドボードとmicro:bitのエッジコネクターをピンヘッダーに変換する基板が一つになった製品で、micro:bitを使った電子工作がハンダ付けなしで簡単に始められます。
プロトタイピングセットには、必要なジャンプワイヤーが付いてきます。
TB6612FNG搭載デュアルモータードライバー(ピンヘッダ付き)
東芝のTB6612FNGを搭載した、連続最大1.2[A]のモーターを2個接続できるモータードライバーモジュール。ピンヘッダ実装済み。
3-10-3.作る前に
micro:bitに何かプログラムが入っていると、想定外の動きをするかもしれません。「何もしない」プログラムをダウンロードして、micro:bitに送っておきましょう。
3-10-4.作り方
DCモーターの加工
ブラシ付きDCモーターでは、コイルに流れる電流の向きをブラシと整流子によって切り替えています。ブラシと整流子は機械式接点のため、断続的に接触と開離を繰り返すことでノイズが発生します。
このノイズを軽減するために、DCモーターの端子間にコンデンサーをハンダ付けします。使用するコンデンサーは、積層セラミックコンデンサー0.1μ[F]です。極性はありませんが、取り付けた後、コンデンサーの容量がわかるように印(104)がある面を上にしておきます。
また、端子にリード線が付いていないDCモーターの場合は、一緒にリード線をハンダ付けします。
回路の作り方
DCモーターの加工が終わったら回路を作りましょう。まず、部品がすべて揃っていることを確認したら、プロトタイピングセットのブレッドボードが手前になるように置きます。このブレッドボード上に部品を並べて、DCモーターの制御回路を作ります。
TB6612FNGモータードライバーモジュールを配置します。ブレッドボードの「D3」にモジュールのVMピンを挿します。
図3-10-4-4のようにジャンプワイヤーで配線します。ジャンプワイヤーはどんな色でもかまいません。図3-10-4-4では、同じ色のジャンプワイヤーが同じ長さを示しています。
micro:bitのエッジコネクター「0」「1」「2」をそれぞれブレッドボードの「J3」「J4」「J5」に挿します。「3V」と「GND」を各々ブレッドボードの電源ラインに接続します。この電源ラインからTB6612FNGモータードライバーモジュールへ給電されます。
最後に、DCモーターとDCモーター用電源を取り付けます。ブレッドボードの「B6」「B7」にDCモーター、手前の電源ラインにDCモーター用電源を接続します。
完成したDCモーターの制御回路です。
3-10-5.プログラミング(ブロック)
DCモーター制御回路のサンプルプログラムです。
最初だけ実行されるプログラム
回転速度(最大)を設定します。
ずっと実行されるプログラム
3秒毎に正転・停止・逆転・ブレーキを繰り返します。
3-10-6.プログラミング(Javascript)
Javascript(テキスト)のサンプルプログラムです。
3-10-7.動かしてみよう
プログラムが完成したら動かしてみましょう。次の動画はタミヤのツインモーターギヤーボックスを使ったものです。正転・停止・逆転・ブレーキのようすがわかります。停止とブレーキの違いを比べてください。
3-10-8.解説
図3-10-8-1は、micro:bitとTB6612FNGモータードライバーモジュールを接続した回路図です。記事内では、1つのDCモーターを制御しましたが、TB6612FNGは2つのDCモータを制御できるデュアルモータードライバーなので、図3-10-8-1のように2系統のDCモータを接続することができます。記事内のDCモーターは、赤色で示したMotor(A)の系統になります。
ピンの接続
VCCにIC用電源として、micro:bitの3V端子を接続して、3.3[V]を供給します。VMにモーター用電源として、電池から2.4[V]を供給します。
STBYは、TB6612FNGを有効にするかどうかの役割があり、High時にDCモーターを制御できます。このピンには3.3[V]を印加してHighにします。
DCモーターへの出力は、Motor(A)がAO1・AO2、Motor(B)がBO1・BO2となります。また、制御信号は、Motor(A)がAI1・AI2・PWMA、Motor(B)がBI1・BI2・PWMBとなり、各々micro:bitの端子と接続されます。
モーターの制御方法
2つのデジタル信号(IN1・IN2)で正転・逆転・停止・ストップ、PWM信号(PWM)で回転速度を制御します。IN1・IN2・PWMは、Motor(A)がAI1・AI2・PWMA、Motor(B)がBI1・BI2・PWMBとなります。
入力(制御信号) | 出力 | ||||
---|---|---|---|---|---|
IN1 | IN2 | PWM | OUT1 | OUT2 | モード |
H | H | H/L | L | L | ショートブレーキ |
L | H | H | L | H | 正転 |
L | L | L | ショートブレーキ | ||
H | L | H | H | L | 逆転 |
L | L | L | ショートブレーキ | ||
L | L | H/L | OFF | 停止 |
回転速度のPWM制御は、PWM信号のHigh/Lowに合わせて、通常回転(正転・逆転)とショートブレーキが繰り返される動作となります。
図3-10-8-1のように接続した場合、Motor(A)はmicro:bitの端子P0(PWM)・P1(IN1)・P2(IN2)によって制御します。また、Motor(B)は端子P13(IN1)・P14(IN2)・P15(PWM)によって制御します。端子名後ろの()は対応する制御信号です。
micro:bit関連のおすすめ品
micro:bitのエッジコネクターをピンヘッダーに変換するエッジコネクターピッチ変換基板と、ブレッドボードが一つになった製品です。付属のジャンパーワイヤーを使用することで、手軽に回路の実験ができます。
ピンヘッダ実装済みのモータードライバーモジュールです。2個のモーターを制御できるTB6612FNG(TOSHIBA)が搭載されています。
TB6612FNG搭載デュアルモータードライバ(ピンヘッダ付き)
東芝のTB6612FNGを搭載した、連続最大1.2[A]のモーターを2個接続できるモータードライバーモジュール。ピンヘッダ実装済み。
130型のDCモーターです。
村田製作所の汎用積層セラミックコンデンサー(絶縁型ラジアルリード50V 0.1μF)です。
10種類(550個)の積層セラミックコンデンサーのセットです。専用のケースに入っています。