DCモータードライバー 東芝MP4212 |
ロボットの人気により、ラジコン戦車同様のモーター制御をしたいというニーズが最近は高まっている。
ところが、そのために適切なICが無いか探しても無く、悩む状況は相変わらずだ。
キットとして売られているTA7291Pはしっかり仕事をしてくれたものの、マルイのバトルタンク新作タイガーには組み込めない。空間的に辛いのだ。問題はTA7291Pの発熱が大きい点にある。ある程度大きなヒートシンクを付けないと実用的ではない。
そこで、MOSFETアレイを使用したHブリッジICを使うことにした。
こういうICが欲しい人は多いだろう。だが、出回っているICは嫌になるほど少ない。
MP4212はピッタリの品である。5Aまで流せるし、4V駆動可能。秋葉原では千石電商が扱うようになった★
使い慣れたパーツが手に入らないと悩むことになるので、まとめ買いを推奨。モーター1個あたり1個使うので、すぐに消費する。
ロボットネタでパーツ置いてるショップはMP4212を置く義務がある!と言いたくなるほどのICなのだが・・・
それはともかく、TA7291Pも東芝だったし3Vの三端子レギュレーター作ってくれたのも東芝だし、自作ハード作るようになってから東芝という会社の株はかなりアップしている。他の会社も個人ユーザー見据えたパーツを作って欲しいものだ。
せっかく素のHブリッジが組めるのだから、TA7291Pキットの時とは異なり、ちゃんとしたPWM制御を行うことにする。具体的にはOFF期間中にGNDとの間でサーキットを作りモーターが惰性で動くようにする。
回路を簡単にするため、4N単一電源で動かす。
PICを4.8Vならモーターも4.8Vだ。
ちなみにON抵抗はハイサイド0.19Ωでローサイド0.16Ωだからブリッジ時は0.35Ωと期待ほど小さくはない。でも280モーターを駆動する程度なら問題は出ないだろう。
配線の実際
尾灯は明るくするためLEDを2個使用。それぞれをトランジスター無しで駆動するため、出力ピンを2本使う。RA4は未使用でプルアップしてしまう。それが出力ピンではまずいので入力に設定しておく。
RA2 | IN | ELEV入力 | 尾灯LED | OUT | RA1 |
RA3 | IN | AILE入力 | 尾灯LED | OUT | RA0 |
RA4 | IN | + | セラロック 20MHz |
CLK | |
リセット | + | CLK | |||
GND | − | + | VDD | ||
RB0 | OUT | 右4212 pin 8 | 左4212 pin 8 | OUT | RB7 |
RB1 | OUT | 右4212 pin 6 | 左4212 pin 6 | OUT | RB6 |
RB2 | OUT | 右4212 pin 4 | 左4212 pin 4 | OUT | RB5 |
RB3 | OUT | 右4212 pin 2 | 左4212 pin 2 | OUT | RB4 |
空間を節約するため基板を使わず。ICソケットも利用しての空中配線を行う。
![]() |
PICを差し込むための18ピンソケット。 |
![]() |
続いて、リセット端子にプルアップ抵抗を付ける。 |
![]() |
セラロックの中央の足(GND)を折り曲げる。 |
![]() |
CLK端子にセラロックを取り付ける。 |
続いて、MP4212を取り付ける。
![]() |
MP4212の足を折り曲げ、ピン3と7、ピン5と9をそれぞれくっつける。 モーター接続用の配線も用意。 |
![]() |
配線をMP4212に取り付ける。 |
![]() |
MP4212のゲート端子をPICのポートBに取り付ける。 |
![]() |
アナログ系の電源を取り付ける。 |
![]() |
デジタル系の電源は、受信機からサーボ信号コードで供給する。 |
![]() |
コンデンサーの足にGNDと+を取り付け、オレンジの信号線2本は別個にPICのRA2とRA3に接続。 |
![]() |
最後に、尾灯LED用のソケットを取り付ける。 |
こうして完成したDMDは一応動くのだが、どうも不安定である。
まず、電源ONになっても、全くモーターに通電されないことが多発。それも、ちゃんとモーターが動く時も動かない時もある。動いている時も、暫く操作していると突然動かなくなったりする。モーターが全く動かない場合でも、尾灯LEDはちゃんと反応している。不思議である。
最初はハンダ付けの不良かとも思ったが、何度も動作試験しているとそれでは納得出来なくなった。
どうやらパワーMOSFETをドライブする時は、ゲートに直結するのではなく数十Ω〜数百Ωの抵抗を入れるべきらしい。
理由は共振防止とされているが、正直いまいち良く分からない。だが、ソレが原因ではないか?と思われる現象も発生していた。
定速前進時は尾灯LEDは消えていなくてはならない。ところが、プロポのスティックを固定しても尾灯がチラチラ不規則に点滅を繰り返す。だが、モーターが動かない動作不良時には、尾灯は安定した光り方をする。
いかにもあやしい。そこで、DMDを新しく作り直してみた。
![]() |
初号機では、セラロックだけ出っ張って高さを損していた。 |
![]() |
MP4212のゲートとPICを直結するのではなく、150Ωの抵抗で接続してみる。 |
![]() |
配線を完了すると、カニを裏から見たかのよう。 とは言えこれは搭載したい戦車次第。こいつはタイガー1用であり、尾灯が左に付いている。 |
![]() |
まさにビンゴ! FETのゲートとPICを接続する時は、抵抗を入れよう。 以前単体のパワーMOSFETを組み合わせてHブリッジ作った時も、動作不安定をどうしても押さえられなかった。恐らく同じ原因だったのではないか? |
ともあれこれで、1/35〜1/24の小型ラジコン戦車(RE130〜RE280クラス)用に使えるアンプが確保された。非常に収穫大である★
信号変換
縦軸はアクセル(スロットル)操作で、横軸はハンドル(エルロン)操作です。それぞれの操作を行った時に、左右のキャタピラの移動ベクトルがどうなるかを黄色の線で表しています。
PIC内部演算ではキャタの動きについて、停止を128、最大前進を255、最大後退を1として8ビットで表現しています。そしてこの図の9*9=81個所の点のキャタ移動量をテーブルとして持っているのです。1個所につき左右2バイト必要なので162ワードを消費しますが、1Kワードあるので大丈夫です。代償として、後で動きを容易に変更可能となります。
アクセルとハンドルの位置がこの図のどの位置に来るかを見て、近傍4個所の値から内挿してキャタの移動量を計算します。
16分の1用DMDを自作した時とは異なり、タミヤのレオパルド2A6に操作を合わせることにした。ラジコンカーと同じような動きをさせる。
そして、「停止」状態の場合はハンドルを見て、超信地旋回させる処理を別途記述。
例によって機械語でも手抜きせず内分計算を高精度にキチンとやっているので、動きは極めて滑らかです★
タミヤのDMDのように、超低速時にピーという甲高い異音を発することもありません。
ただ、50Hzのサーボパルスを読んだ余りの時間でモーターONしている超低周波PWMのため、若干のモーター振動があります。それでも、戦車の場合は逆にリアルです。
更に、MAXでもDUTYが70〜80%までしか上がらないため速度が遅くなります。