ESPr Developer を使って、スマホからWiFi経由で操作できるロボットを作ろうと思います。
リンク
子供部屋にころがっていた「タミヤ 楽しい工作シリーズ組み立てキット リモコンロボット(クローラータイプ)」を使います。

リンク
これをESPr Developerと接続し、WiFi経由で動かせるようにしたいと思います。
まずは、ハードウエアのうち、電子回路の部分を作成しました。
モータは消費電力が大きいため、ESPr Developerの出力端子を直接繋ぐことはできません。ESPr Developerでモータを制御するためには、モータドライバを使う必要があります。
今回は、秋月電子で購入した「DRV8835使用 ステッピング&DCモータドライバモジュール」を使います。
これひとつで、2個のモータを駆動できます。
IN/INモードの時、以下のとおり動作します(「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 | ブレーキ |
今回は、このモータドライバをふたつ使って、モータを4つまで制御できるようにしたいと思います。
回路図は以下のようにしました。下のモータドライバのBIN2はGNDに繋いでいますので、このモータのみ、回転方向を変えることはできず、モータの回転/停止だけを制御できます。
できあがりです。部品はブレッドボードに組み付けました。

動作確認のため、以下のようなスケッチを準備しました。1秒ごとに、各端子のHIGH/LOWを切り替えるだけのものです。
#define A_AIN1 15
#define A_AIN2 13
#define A_BIN1 12
#define A_BIN2 14
#define B_AIN1 4
#define B_AIN2 5
#define B_BIN1 2
void setup() {
pinMode(A_AIN1, OUTPUT);
pinMode(A_AIN2, OUTPUT);
pinMode(A_BIN1, OUTPUT);
pinMode(A_BIN2, OUTPUT);
pinMode(B_AIN1, OUTPUT);
pinMode(B_AIN2, OUTPUT);
pinMode(B_BIN1, OUTPUT);
}
void loop() {
digitalWrite(A_AIN1, HIGH);
digitalWrite(A_AIN2, LOW);
digitalWrite(A_BIN1, HIGH);
digitalWrite(A_BIN2, LOW);
digitalWrite(B_AIN1, HIGH);
digitalWrite(B_AIN2, LOW);
digitalWrite(B_BIN1, HIGH);
delay(1000);
digitalWrite(A_AIN1, LOW);
digitalWrite(A_AIN2, HIGH);
digitalWrite(A_BIN1, LOW);
digitalWrite(A_BIN2, HIGH);
digitalWrite(B_AIN1, LOW);
digitalWrite(B_AIN2, HIGH);
digitalWrite(B_BIN1, LOW);
delay(1000);
}
モータを繋ぐ代わりにLEDを接続して、動作確認しました。所望のとおりに動作しています。
これで、スケッチの内容に従って、モータを動作させることができるはずです。
つづきは こちら。
リンク
