WRX micro:bitを車両で使う その23 DCモーターを制御する(TB6612FNGドライバ)
今回はmicro:bitでDCモータードライバ(TB6612FNG)を搭載したブレイクアウトボードを使用して、DCモーターの回転速度や回転方向の制御を行ってみます。DCモーター用のブレイクアウトボードは、いつものkeyestudioブランドの物を購入しました。
購入した物
DCモーター制御用ブレイクアウトボード
ブレイクアウトボードはこれまで様々な用途の物を購入していますが、個人的にkeyestudioブランドの物が信頼性が高いと感じています。メーカーサイトとは別にwikiページでの解説もあるので、使い方等も理解し易いです。
今回購入した、DCモーター用のブレイクアウトボードは型式「ks0308」の「Motor Drive Breakout Board for micro bit」という物です。東芝の「TB6612FNG」ドライバを搭載していて、同時に2個のDCモーターを制御出来ます(正転/逆転/ブレーキ/停止)。またアナログ出力によるPWM(パルス幅)の指定でDCモーターの回転速度も制御出来ます。その他、micro:bitの各入出力端子が3Vまたは5V、GNDでそれぞれ3ピンヘッダーで用意されています。注意点として別途DC6~12Vの電源入力が必要です。
DCモーター
DCモーターは工作用として最も一般的なのは130型かと思いますが、今回はRE-260型を購入しました。適正電圧はDC3.0V、適正負荷時の回転数は8900rpmとなっています。後々にこのDCモーターを使ってある物を作る予定ですが、回転数が目的に近い事がRE-260型を購入した理由になります。※上記モーターには既に別途ギヤを付けています。
接続
ブレイクアウトボードにmicro:bit本体を接続し、さらにブレイクアウトボードの下部にある青い端子台にDC電源「G(-)・VM(+)」とDCモーター(A1・A2またはB1・B2)を接続します。電源は今回、単3電池4本(1.5V*4)で6Vを供給します。DCモーターの接続(+、-)については、それによって回転方向が変わりますが、ここでは特に意識していません。
※micro:bit本体の入出力端子にも3Vがありますが、合計90mA以上を必要とする場合は外部から電源を供給する必要があるとされています(micro:bit電源仕様)。
※2020年11月にmicro:bitの本体バージョンが「2.0」になり、端子から供給出来る電源容量が200mAまで増えています。ただしこれまでの古いmicro:bit(~v1.5)の電源容量が更新される訳ではありません。
プログラム
wikiページに解説もありますが、DCモーターの制御はとても簡単です。拡張機能を追加する必要もありません。プログラム上で使用する端子はモーターA(ボードの端子A1・A2)はP1(アナログ)とP12、P13、モーターB(ボードの端子B1・B2)はP2(アナログ)とP15、P16です。
上記のプログラムではmicro:bitのAボタンを押している間は高速回転、Bボタンを押している間で低速逆回転します。それぞれボタンを離すと停止(空転停止)しますが、A+Bボタンでブレーキによる制動が掛かります。DCモーターは1個でA側に接続しています。
速度の指定
P1またはP2を「アナログで出力する端子」ブロックで0~1023の範囲で数値を指定する事で、DCモーターの速度が決まります。ただしあまり小さな数値ではモーター自体を回転させる力(トルク)が足りないので、ある程度の数値が必要です。
回転方向の指定
P12とP13、またはP15とP16でどちらかを「1」、もう一方を「0」とするとDCモーターが指定した速度で回転します。さらに「1」と「0」の指定をそれぞれ逆にする事で、DCモーターは先の回転から逆方向に回転します。
ブレーキ・停止の指定
P12とP13、またはP15とP16で両方を「1」とするとブレーキが掛かります。両方を「0」とした場合は停止(空転)です。ただしブレーキと言っても保持力はほとんど無く、制動が掛かって回転状態からの減速が早くなります。
その他
※東芝デバイス&ストレージ株式会社、TB6612FNGデータシートpdfより転載
各入力とモーター出力の関係は上記の様になっています。またmicro:bitのプログラム上で最初にP14を「1」にしていますが、これはスタンバイ(STBY)になる様です。
DCモーター電圧について
今回、keyestudioのDCモーター制御用ブレイクアウトボードを使用するにあたって当初から疑問だったのは、DCモーターに掛かる電圧です。ブレイクアウトボードに供給する電源はDC6~12Vですが、実際にモーター駆動用として出力される電圧が不明でした。DCモーターは電圧を変化させる事で回転速度が変わりますが、レギュレーターによってブレイクアウトボード上で3Vと5V電圧が作られているので、最大5Vなのかと想像だけはしていましたが。
そこでブレイクアウトボードに単3電池8本で合計12Vを供給し、アナログの指定値を最大の「1023」とした上で実際にテスターで電圧を測定してみた所、供給した電圧そのままの値になってしまいました。上記では乾電池がだいぶヘタっているので供給側からもDC10Vしかありませんが、出力もDC10Vになりました。またアナログ指定を半分の「511」にすると出力もDC5V程度になりました。
※東芝デバイス&ストレージ株式会社、TB6612FNGデータシートpdfより転載
上記は先と同じ、TB6612FNGデータシートに記載されている内容ですが、出力端子O1とO2は確かに「VM」に繋がっています。先に見ておけば良かった。
従って利用するDCモーターの適正電圧に合わせて、供給する電圧やアナログの指定値を調整する必要があります。今回の私の場合はDCモーターの適正電圧3Vですが、ブレイクアウトボードは最低DC6Vの供給なので単3電池4本で6Vを供給した上で、アナログの最大指定値を半分の「511」とするのが良さそうです。
keyestudioのwikiページで紹介しているモーターはロボット用のギヤ付きDCモーターで、電圧は6Vです。また供給電圧は3.7Vの18650リチウムイオン電池が2本なので、約7Vです。ほぼ適正電圧になっています。
・・・ただし実際には今回、3VのDCモーターに10Vを掛けてしまいました。かなり強力に回転しましたが、正常な回転を保証する訳ではありません。モーターの故障にも繋がります。
モーターのノイズについて
ブラシ付きの直流モーターを使用する場合、コンデンサーをモーターの端子間に接続してノイズ対策を行いますが、今回のブレイクアウトボードを使用するにあたって、あえてコンデンサーは接続しませんでした。理由はボード上にコンデンサーが用意されている様に見えた為です。
※東芝デバイス&ストレージ株式会社、TB6612FNGデータシートpdfより転載
TB6612FNGデータシートにも応用例の回路図に、ノイズ吸収用コンデンサーの指示が記載されています。ブレイクアウトボードがこの応用例通りであれば良いのですが、コンデンサーを接続していない現状でも、DCモーターの回転に不具合はありません。ただしDCモーター周辺への影響は不明です。
今後は今回のDCモーターとブレイクアウトボード、また前回記事の7セグメントLEDを使用して、ある物を作る予定です。
micro:bit 新バージョン「2.0」について
2020年11月25日より、Micro:bit本体の新バージョン「2.0」が発売になっています。従ってこれまでの古いmicro:bitを使用した記事(~その24)と新しいmicro:bitでは記事内容に相違がある場合があります。ただしこれまでのプログラムは基本的には新しいmicro:bitでも動作し、古いmicro:bitも引き続き使用する事が可能です(ハード的に新たに追加された機能は、拡張ボード等が必要ですが)。
なお新しいmicro:bitについては実際に1つ購入し、micro:bit関連記事「その25」から扱っています。
2022年4月追記
2021年12月にmicro:bit本体のバージョンが「2.2」になるとのアナウンスがありましたが、「2.0」との機能上の違いは無いとされています。
「micro:bit」関連記事
以下は「micro:bit」タグの記事一覧です(投稿順)。現在の記事とこれ以降に投稿した記事も含みます。
- WRX micro:bitを車両で使う その1 micro:bitの購入
- WRX micro:bitを車両で使う その2 Microsot MakeCodeとスマホ用アプリ
- WRX micro:bitを車両で使う その3 micro:bitの仕様と購入したブレイクアウトボード
- WRX micro:bitを車両で使う その4 本体ファームウェアの更新とWebUSB
- WRX micro:bitを車両で使う その5 無線機能の利用
- WRX micro:bitを車両で使う その6 方位センサーの利用
- WRX micro:bitを車両で使う その7 加速度センサーの利用
- WRX micro:bitを車両で使う その8 micro:bitからSIドライブのモード切替
- WRX micro:bitを車両で使う その9 サーボモーターの利用(準備編)
- WRX micro:bitを車両で使う その10 サーボモーターの利用(動作編)
- WRX micro:bitを車両で使う その11 可動式雲台を作る(2軸編)
- WRX micro:bitを車両で使う その12 可動式雲台を作る(1軸編)
- WRX micro:bitを車両で使う その13 連続回転サーボモーターの利用
- WRX micro:bitを車両で使う その14 Bluetoothでスマホから操作(データ受信)を行う
- WRX micro:bitを車両で使う その15 LCDパネルの利用
- WRX micro:bitを車両で使う その16 シリアル通信(RS232C)を行う
- WRX micro:bitを車両で使う その17 光センサーと温度センサーの利用
- WRX micro:bitを車両で使う その18 LEDのフォントとスクロールスピードを変える
- WRX micro:bitを車両で使う その19 ELM327の車両との通信を確認する
- WRX micro:bitを車両で使う その20 アスキーコード16進数から数値10進数への変換
- WRX micro:bitを車両で使う その21 車両からエンジン回転数を得る
- WRX micro:bitを車両で使う その22 7セグメントLEDの利用(TM1637ドライバ)
- WRX micro:bitを車両で使う その23 DCモーターを制御する(TB6612FNGドライバ)
- WRX micro:bitを車両で使う その24 ステッピングモーターを制御する(ULN2003ドライバ)
- WRX micro:bitを車両で使う その25 micro:bit バージョン2.0を購入(2021年12月 v2.2アナウンスあり)
- WRX micro:bitを車両で使う その26 バージョン2.0で追加されたMakeCodeブロック
- WRX micro:bitを車両で使う その27 バージョン2.0の初期状態と追加された機能
- WRX micro:bitを車両で使う その28 新バージョン(v2.0)のI2C通信
- WRX micro:bitを車両で使う その29 環境モニターを作る(気温・気圧・湿度編)
- WRX micro:bitを車両で使う その30 環境モニターを作る(二酸化炭素・有機化合物編)
- WRX micro:bitを車両で使う その31 環境モニターを作る(LCD表示・動作確認編)
- WRX micro:bitを車両で使う その32 環境モニターを作る(RTCモジュール追加編)
- WRX micro:bitを車両で使う その33 環境モニターを作る(ロギングモジュール追加編)
- WRX micro:bitを車両で使う その34 環境モニターを作る(ログデータ記録編)
- WRX micro:bitを車両で使う その35 車内のCO2濃度と換気について
- WRX micro:bitを車両で使う その36 新バージョン(v2.0)でのI2C通信の問題解決
- WRX micro:bitを車両で使う その37 Microsoft MakeCodeの新バージョン(v4)と新機能データロガー
その他
FA用PLCとELM327を使用した「OBD2」関連の記事は以下の記事から始まります。
注記
-
- このブログ内で書いている内容はあくまで私の利用する製品(アプリ含む)や機器での場合です。他メーカーの製品や機器をはじめ、同じメーカーの製品・機器であってもバージョン違い等の場合もあるので、記事内容の保証や責任を負う事は出来ません。
- 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で仕様等を確認し、自己判断と自己責任の下で利用して下さい。
- 記事内で公開しているmicro:bit用プログラムは自由に利用・改変して頂いて構いません。ただし不具合やバグもありますので、プログラムを利用した際の故障や事故等についての保証や責任を負う事は出来ません。自己判断と自己責任の下で利用して下さい。
- micro:bit製品やプログラミング、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
- BBC micro:bitは、micro:bit教育財団の登録商標です。その他のブランド名または製品名は各所有者の商標です。