2016年3月7日月曜日

[Intel Edison]Node.JSでモーター制御①

〜 モータードライバを使ってみる 〜

Intel Edisonでモーター制御してみます。

使用するもの

モータードライバ TA7291P
DCモーター FA-130RA
ミニブレッドボード BB-601(白)
ブレッドボード・ジャンパーコード(オス-オス)セット
・単三電池2本

上記は、同種のものが手元にあっただけで、モーターもブレッドボードもジャンパーも、種類は問いません。私が使用しているものも秋月電子さんの商品ではありません。
手近に揃うもので試してみてください。

TA7291Pについて

今回使用するモータードドライバはTA7291Pです。

このモータードライバは、フルブリッジドライバに該当します。

モーターを制御可能な動作は、
・正回転
・逆回転
・停止(正逆回転の拮抗状態)
・制御解放(自由回転状態)
の4つとなり、これらを制御出来るドライバがフルブリッジドライバとなります。

また、
・回転(正回転or逆回転)
・制御解放(自由回転状態)
の2つのみを制御出来るものをハーフブリッジドライバと呼びます。


図にも記載していますが、左から

1 : GND
2 : OUT1 出力端子 ー モーターに接続
3 : 未使用
4 : Vref 制御電流端子 ー PWMに接続(回転速度を制御)
5 : IN1  入力端子 ー デジタルピンに接続(正逆回転を制御)
6 : IN2  入力端子 ー デジタルピンに接続(正逆回転を制御)
7 : Vcc  ロジック側電源端子 ー 電源ピンに接続(TA7291P動作用電源)
8 : Vs   出力側電源端子 ー 外部電源の入力(モーター駆動用電源)
9 : 未使用
10 : OUT2 出力端子 ー モーターに接続

となっています。

Edisonとモータードライバの配線

実際に、最低限必要な端子をIntel Edison Kit for Arduinoと接続してみます。
その他ボードを使われている方は、Edison Pinアサイン表を参照して下さい。
以降、EdisonとTA7291P、電池、モーターの接続にはブレッドボードを経由させています。


TA7291P : 1 ー GND : Edison
TA7291P : 5 ー 2 : Edison
TA7291P : 6 ー 7 : Edison
TA7291P : 7 ー 5V : Edison

モータードライバとモーター&電池の配線

次に、モーターと電池も繋ぎます。

TA7291P : 1 ー マイナス極 : 電池
TA7291P : 2 ー モーター
TA7291P : 8 ー モーター
TA7291P : 10 ー プラス極 : 電池
※電池の電極を繋ぎ間違えるとTA7291Pがいい感じに焼き上がるので注意して下さい。

この時点では、何の制御も行われていないのでモーターは動きません。
ここでは、TA7291Pを用いてNode.JS+MRAAでモーターを動かすのが目的なので、Lチカのコードを書き換えて正逆回転を繰り返す簡単なスクリプトを実行してみます。

Node.JSでモーター制御

既にEdisonにログインしている状態を前提として進めます。


Terminal -- bash -- 80x24
root@edison:~# vi sample.js
var mraa = require("mraa");
console.log("TA7291P test\nmraa Version: " + mraa.getVersion());

var in1 = new mraa.Gpio(2);
var in2 = new mraa.Gpio(7);
in1.dir(mraa.DIR_OUT);
in2.dir(mraa.DIR_OUT);

var state = true;
var counter = 20;

periodicActivity();

function periodicActivity(){
        in1.write(state?1:0);
        in2.write(state?0:1);
        state = !state;
        if(counter--)
                setTimeout(periodicActivity, 1000)
}
~
~
~
- sample.js 1/20 5%

LEDの点滅を行う代わりに、TA7291Pの5、6番の端子(Edisonの2、7ピン)を交互にON/OFFしているだけです。モーターの軸に回転方向がわかりやすい目印をつけてやると動作が認識しやすくなるかと思います。



Terminal -- bash -- 80x24
root@edison:~# node sample.js 
TA7291P test
mraa Version: v0.8.0


さて、動いたでしょうか?

動かない場合は、配線の見直しやJavascriptの再確認を行ってみてください。

動いた方は、モーターを自分で操作してみたいという欲求が出てくるかと思いますので、次回はブラウザ経由でモーターを動かしてみたいと思います。

0 件のコメント:

コメントを投稿