大きく動くものが作りたいということで、自立走行車を作りました。
とりあえず今回はモータの制御だけです。
必要なもの
Aruduino UNO
- 出版社/メーカー: スイッチサイエンス
- メディア: Personal Computers
- 購入: 2人 クリック: 15回
- この商品を含むブログを見る
シャーシ
ロボットカー ロボット知能 INSMA キットエンコーダ 組み立て(透明板)Arduino DIY用 ロボットスマートカー シャーシキット スピードエンコーダ 付き
- 出版社/メーカー: INSMA
- メディア: その他
- この商品を含むブログを見る
デュアルモータドライバ DRV8835
- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
- この商品を含むブログを見る
ブレッドボードやケーブルなど
シャーシ作成
Amazonのレビューが若干怪しいシャーシですが、値段の割にしっかりしてました。
シンプルなのでサクッと組み上げましょう。
回路
DRV8835の仕様は以下販売サイトの説明がわかりやすいと思います。
Pololu - DRV8835 Dual Motor Driver Carrier
今回はシンプルに制御したかったので、MODEにHIGHを入力しました。
xPHASE | xENABLE | xOUT1 | xOUT2 | 処理 |
---|---|---|---|---|
0 | PWM | PWM | L | 前進PWM%/ブレーキ |
1 | PWM | L | PWM | 後進PWM%/ブレーキ |
x | 0 | L | L | ショートブレーキ |
それを元に回路を組みます。
fritzingにモータドライバのパーツがなかったので、それっぽいもので代用しました。
電源をArduinoのVinに繋げることでモータとArduinoの電源をまとめることができます。(許容電圧には気をつけて下さい)
コード
ストップアンドゴー
#define MODE 7 #define APHASE 8 #define AENBL 9 #define BPHASE 10 #define BENBL 11 void setup() { pinMode(MODE, OUTPUT); pinMode(APHASE, OUTPUT); pinMode(AENBL, OUTPUT); pinMode(BPHASE, OUTPUT); pinMode(BENBL, OUTPUT); digitalWrite(MODE, HIGH); } void loop() { digitalWrite(APHASE, LOW); analogWrite(AENBL, 50); delay(2000); digitalWrite(APHASE, LOW); digitalWrite(AENBL, LOW); digitalWrite(BPHASE, LOW); analogWrite(BENBL, 255); delay(2000); digitalWrite(BPHASE, LOW); digitalWrite(BENBL, LOW); }
基本的にPololu - DRV8835 Dual Motor Driver Carrierの仕様に従えば動きます。
速度は"analogWrite"で決定します。
実際に動かした動画がこちらです。
騒音注意です。
徐々に速度変化
#define MODE 7 #define APHASE 8 #define AENBL 9 #define BPHASE 10 #define BENBL 11 void setup() { pinMode(MODE, OUTPUT); pinMode(APHASE, OUTPUT); pinMode(AENBL, OUTPUT); pinMode(BPHASE, OUTPUT); pinMode(BENBL, OUTPUT); digitalWrite(MODE, HIGH); } void loop() { for(int i = 50; i < 255; i++) { digitalWrite(APHASE, LOW); analogWrite(AENBL, i); digitalWrite(BPHASE, LOW); analogWrite(BENBL, i); delay(100); } delay(2000); for(int i = 255; i > 50; i--) { digitalWrite(APHASE, LOW); analogWrite(AENBL, i); digitalWrite(BPHASE, LOW); analogWrite(BENBL, i); delay(100); } delay(2000); }
すごい音です。
モータの許容電圧7Vに対して9V掛けているからかも。
完成
とりあえずタイヤの制御部を完成させることができました。
次回はこれらをシールド化してシャーシに載せます。