「TRIAL-ESP8266-LEAFキットでWi-Fi接続」で作成したESP8266にモータードライバ「TB6612FNG」を接続し、タミヤの「ダブルギヤボックス」を使用してDCモータを制御します。
デュアルモータードライバ「TB6612FNG」
デュアルモータードライバ「TB6612FNG」は、ebayから購入しました。連続最大1Aのモーターを2個接続できるモータードライバモジュールで、東芝のTB6612FNGを搭載し、次の性能を持っています。
- モーター数:2
- ロジック電源電圧:2.7V~5.5V
- モーター電源電圧:4.5V~13.5V
- 最大電流(連続):1A
- 最大電流(ピーク):3A
- 最大PWM周波数:100kHz
TB6612FNGの接続は次のように行います。TB6612FNGは回転方向(正回転・逆回転)の切替に2本の入力ピン、回転速度(PWM)の指定に1本の入力ピンを持っています。VCCがロジック電源(制御系)、VMがモーター用の電源、STBYはHighにすると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ピンについて>
- PWM出力は すべてのIOピンが対応します
analogWrite ( Pin , Val ) ;
Pin : 0~6,12~15 Val : 0~1023
Val = 0で0V
Val = 1023で3.3V - pinModeで使えるModeは、Digital pins 0—15ではINPUT,OUTPUT,INPUT_PULLUP、Pin16だけ、INPUT,OUTPUT,INPUT_PULLDOWN_16となります。PWMで使用する場合は、pinModeの設定は必要ありません。
ESP8266とモータードライバ「TB6612FNG」とタミヤの「ダブルギヤボックス」を接続した画像を次に示します。上部にはモーター用の電源5Vが置いてあります。
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ピンに接続したモーターのほうが高速になります。