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を接続して、動作確認しました。所望のとおりに動作しています。
これで、スケッチの内容に従って、モータを動作させることができるはずです。
つづきは こちら。
リンク