皆さんどうもこんにちは 

rogyAdventCalendar2015 9日目になりました.

ゆーくりっど(@yuqlid)と言います. rogyAdventCalendarの9日目担当です.
僕はこのロボット技術研究会の学生ロボコンチーム「Maquinista(まきにすた)」に所属していました.
また,高専というところから編入学で入ってきたため,実はNHKロボコンを結構やっていました.

さぁ,今日僕が書く内容ですが,
 「モータドライバ」
という回路です.

最近IoTという言葉も流行っていますが,電子工作,ものづくりをしているなかで「モータを回して何か作りたい」という場面が出てくることもあると思います.そんな時がモータドライバの出番です.
もちろん理由があります.モータへの司令をマイコンなどで制御したいということがよくあると思いますが,マイコンのピンから流せる電流は非常に少なく,数mA程度しか流せません.
しかしモータは駆動する際に数百mA以上の電流が必要になります.ものによってはもっと増えます.

このために,マイコンからの信号を増幅してモータを回すのに十分な電圧と電流を供給する.この役割をモータドライバが果たしています.名前のとおりですね.

さて,モータドライバを使うその前に考えることがあります. それは
「(自分が作りたいものに)どのような動きをさせたいか,そのためにはどれくらいのパワーのモータが必要か,そしてそのモータを回せるためにはどれくらいのモータドライバを選ぶか?」
ということです.これはものづくりにおいて非常に重要な事です.僕の記事を見たかたはこれ↑を是非覚えて帰っていただきたいです.
モータと言うのは「電気的エネルギーを力学的エネルギーに変換する装置」ですから,自分が欲しい力学的エネルギー(トルク,回転数)を得るためにはどれだけの電気的エネルギー(電圧,電流)をモータに与えなければならないか,これがハッキリしていないとどれくらいの電気的エネルギーを供給できるモータドライバを用意すればいいかわかりません. この計算は非常に簡単です.掛け算だけです.

順番にいきましょう.
1.これから動かしたいものに必要なトルクと角速度(回転数)をまず決定します.
2.その要求を満たすモータを選びます.
モータへの入力(電気的エネルギー)と出力(力学的エネルギー)は以下の式で求められます.

入力[W]=電圧[V]×電流[A]
出力[W]=トルク[Nm]×角速度[rad/s]

ね? 簡単でしょう? ポイントは単位が同じ[W](ワット)であることです.
気をつける必要があるのはモータの持つ内部抵抗による損失があるということです.ですので

出力[W]+損失[W]=入力[W]

という式が成立します.このとき
η[%]=(出力/入力)×100
となります.モータの特性図にたいてい書いてあります.(↓こんなやつ)
特性図

また,モータの特性図を読むとわかりますが,損失が存在するので効率は必ず100[%]になることはありません.
自分の欲しい出力がなるべく効率が高くなるようにモータ選ぶと良いです.
しかしモータの出せる最大出力よりかなり小さい箇所で使うということになります.つまり必要以上に出力の大きいモータになってしまうこともありえます.
これはモータが物理的に重く,大きくなることと同義です.ですので必要なスペース,許される重量なども考慮にいれるべきでしょう.

さて,やっとこれでモータドライバから出して欲しいパワーがわかりました.
3.必要なパワーを出せるモータドライバを用意します.

必要な出力によって用意するモータドライバはものすごく変わってくるものです.(お値段も比例してきます)

代表的と思われるモータと対応したモータドライバをちょっと紹介します.

・FA-130(0.2W~2.5Wほど)
タミヤのギヤボックスでよく見かけるあのモータです.
無負荷時に0.2Aほど,停動時は2Aほどの電流が流れます. このサイズのモータでも繋いだだけでこれだけ流れるのですからマイコンのピンから直接駆動させるのはとうてい無理だということがおわかりかと思います.
秋月電子にて扱いがあるTA8428Kは1つあたり150円ながら,常時1A以上の電流を流すことができるので,余裕をみても十分な能力を持っているので適しているといえるでしょう.
ちなみにフルブリッジ(Hブリッジ)と言うのはブラシ付きDCモータを正逆回転させる用途に置いて一般的な回路のことであり,TA8428Kはこの回路が内蔵されています.一般的にDCモータはHブリッジという回路を使用することが一般的であります.

・RS-380PH(0.9W~45Wほど)
ロボット技術研究会の新入生が参加しているF3RCなどに出場するロボットにつかわれるようなサイズですね.
マブチモーターのものは無負荷で1A,停動時は24Aほどの電流が流れます.これくらいのワット数になると必要な電流も2ケタになってきます.これくらいのモータ駆動にはアメリカのPololuというメーカが販売してるモータドライバが適しています.海外の製品ですが,スイッチサイエンスなど,電子工作の部品を扱っているお店で買うことができます.RS-380PHを回せるとなると,VHN5019搭載モータドライバとかがいいのではないでしょうか.
しかし注意していただきたいのが,これくらいのモータを回せるモータドライバになってくると,かなり発熱します.
(注意書きにも書いてありますが)なので実際にロボットに搭載するときなどは風通しの良い場所に配置したり,ヒートシンクをつけたりと,冷却する工夫を施すことをおすすめします.高温になることはモータドライバ自身にも良くないです.

・NHKロボコンで使うようなもっと高出力
このあたりで使用されるモータはワット数も100Wを余裕で超えてきます.こうなると自作する人が非常に多い世界で.海外では売ってるみたいですが輸入して買うと数万とかもあり得るクラスになってきますね...
NHKロボコンの学生はたいていディスクリートのパワー素子を買ってきてフルブリッジ回路を自作します.
電流に関しては停動時は3ケタAになってくる世界です.このレベルになってくると怪我とかそういうレベルでは済まないです.
自分でフルブリッジ回路を組む場合,パワー素子の選定がモータドライバの性能に直結します.
よく使われるのはMOSFETという部品です.
ではこのMOSFETのどのような性能を見てやればいいのか?をすごく簡単に紹介します.

ドレイン-ソース電圧(Vds)
加える電源電圧より高いものを選びましょう.フルブリッジで正逆転をさせたいときは電源電圧の2倍以上のものにしましょう.(回転方向を一気に切り替えた時にモータの発電作用が働くため)

ドレイン電流(Id)
ドレイン電流は2つパラメータが存在する事が多く,連続ドレイン電流と瞬間ドレイン電流があります.
連続ドレイン電流は欲しいトルク,回転数より求めた電流より大きいものにします.ただし,発熱によって流せる電流は減ってきます.なのでこの場合もヒートシンクとかで冷却をよくしましょう.
瞬間ドレイン電流は,停動の電流より大きいものにします.一瞬とはいえこの数値を超えるとMOSFETはこわれてしまいます.
以上の2つのドレイン電流を満たすものにしましょう.

最低でも以上の2項目を満たすMOSFETを選びましょう.
まだまだ気にしないといけない項目がいっぱいありますが割愛します.

このような順序でモータドライバは選ぶといいでしょう.
「3.必要なパワーを出せるモータドライバを用意します.」でも書きましたが,MOSFETを選ぶための項目や,必要な部品,気にしなければいけないことはまだまだたくさん有ります.モータドライバを自作する場合には考えなければいけないことがたくさんあるのです.


わりといろいろと道がそれましたが,いかがでしょうか.
自作のモータドライバについては僕個人のブログにて現在執筆中です.これ→yuqlidの日記
また,年末のコミックマーケット C89  二日目 西 む 38 a
にてロボコンで使うようなモータドライバの作り方を書いた同人誌を出す予定です!
興味のある方はぜひいらしてください. 

以上となります! ありがとうございました! yuqlidでした.
ではでは ~