ESP8266とモータードライバ「TB6612FNG」とタミヤの「ダブルギヤボックス」を使ったモータ制御

TRIAL-ESP8266-LEAFキットでWi-Fi接続」で作成したESP8266にモータードライバ「TB6612FNG」を接続し、タミヤの「ダブルギヤボックス」を使用してDCモータを制御します。

​デュアルモータードライバ「TB6612FNG」

デュアルモータードライバ「TB6612FNG」は、ebayから購入しました。連続最大1Aのモーターを2個接続できるモータードライバモジュールで、東芝のTB6612FNGを搭載し、1チャンネルあたり連続最大1A、ピークで3Aです。

モータードライバ「TB6612FNG」

TB6612FNGの接続は次のように行います。TB6612FNGは回転方向(正回転・逆回転)の切替に2本の入力ピン、回転速度(PWM)の指定に1本の入力ピンを持っています。VCCがロジック電源(制御系)、VMがモーター用の電源、STBYはHighにするとTB6612FNGの制御が可能です。

 
 
TB6612FNGのピン配置
TB6612FNGの制御方法
PWM IN1 IN2 O1 O2 状態
0 0 0 Z Z ストップ
1 0 0 Z Z ストップ
0 0 1 L L ブレーキ
1 0 1 L H 逆転
0 1 0 L L ブレーキ
1 1 0 H L 正転
0 1 1 L L ブレーキ
1 1 1 H H ブレーキ

タミヤ 楽しい工作シリーズを使ったモータ部分の組み合立て

ユニバーサルプレートにダブルギヤボックスとボールキャスターを取り付け、ダブルギヤボックスにスポーツタイヤを取り付けます。また、モーターのノイズ防止用にセラミックコンデンサをモーターに半田付けします。使用した部品を次に示します。

  • タミヤ 楽しい工作シリーズ No.168 ダブルギヤボックス 左右独立4速タイプ(70168)
  • タミヤ 楽しい工作シリーズ No.111 スポーツタイヤ (70111)
  • タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット (70157)
  • No.144 ボールキャスター 2セット入 (70144)

ユニバーサルプレート組み立てた全体の組み立て画像を次に示します。

全体の組み立て画像

ESP8266とモータードライバ「TB6612FNG」の接続

ESP8266とモータードライバ「TB6612FNG」を接続します。最初にモーターを制御する信号ピン6本を接続します。

  • ESP8266-3.3V → TB6612FNG-VCC
  • ESP8266-GND → TB6612FNG-GND(2か所)
  • ESP8266-IO2 → TB6612FNG-PWMA
  • ESP8266-IO13 → TB6612FNG-AIN1
  • ESP8266-IO15 → TB6612FNG-AIN2
  • ESP8266-IO5 → TB6612FNG-PWMB
  • ESP8266-IO4 → TB6612FNG-BIN2
  • ESP8266-IO14 → TB6612FNG-BIN1
  • ESP8266-IO12 → TB6612FNG-STBY

次に左右のモーターからのケーブルをモータードライバーの出力ピンに接続します。

  • 5V          → TB6612FNGのVM
  • 左モーター黒ケーブル → TB6612FNGのAOUT1
  • 左モーター赤ケーブル → TB6612FNGのAOUT2
  • 右モーター赤ケーブル → TB6612FNGのBOUT1
  • 右モーター黒ケーブル → TB6612FNGのBOUT2

<ESP8266のI/Oピンについて>

  1. PWM出力は すべてのIOピンが対応します
     analogWrite ( Pin , Val ) ;
     Pin : 0~6,12~15 Val : 0~1023
     Val = 0で0V
     Val = 1023で3.3V
  2. pinModeで使えるModeは、Digital pins 0—15ではINPUT,OUTPUT,INPUT_PULLUP、Pin16だけ、INPUT,OUTPUT,INPUT_PULLDOWN_16となります。PWMで使用する場合は、pinModeの設定は必要ありません。

ESP8266とモータードライバ「TB6612FNG」とタミヤの「ダブルギヤボックス」を接続した画像を次に示します。上部にはモーター用の電源5Vが置いてあります。

ESP8266とTB6612FNGの接続

ESP8266のプログラム

ESP8266用Arduino開発環境を構築したArduino IDE(参照:TRIAL-ESP8266-LEAFキットでWi-Fi接続)を使用して、次のプログラム作成し、ESP8266に作成したプログラムを書き込みます。

#include <ESP8266WiFi.h>

#define AIN1 13
#define AIN2 15
#define PWMA 2
#define BIN1 14
#define BIN2 4
#define PWMB 5
#define STBY 12

void setup() {
  Serial.begin(9600);
  pinMode(AIN1,OUTPUT);
  pinMode(AIN2,OUTPUT);
  pinMode(BIN1,OUTPUT);
  pinMode(BIN2,OUTPUT);
  pinMode(STBY,OUTPUT);
}

void loop() {
  //モーター正回転・スピード変化
  digitalWrite(AIN1,LOW);
  digitalWrite(AIN2,HIGH);
  analogWrite(PWMA,1000);
  digitalWrite(BIN1,HIGH);
  digitalWrite(BIN2,LOW);
  analogWrite(PWMB,500);
  
  digitalWrite(STBY,HIGH);
}

プログラムの実行

作成したプログラムを実行すると、TB6612FNGのAOピンに接続したモーターは、TB6612FNGのBOピンに接続したモーターと回転方向が異なり、回転速度は、TB6612FNGのAOピンに接続したモーターのほうが高速になります。