回路例「モータードライブシールド」を設計する

今回もArduinoのプロジェクトテンプレートを使用して、模型用のモーター制御を行うドライバーシールドの作成手順をご紹介したいと思います。

模型用小容量DCモータードライブシールド

今回は模型用途を想定しているので、必要最低限の構成で作りますのであらかじめご了承ください。

「テンプレートから新規プロジェクトを作成」から、ArduinoUNOを選択してプロジェクトを作成します。

ArduinoのGPIO(General-purpose input/output、汎用入出力)コネクタが読み込まれている事を確認したらモータードライブ回路を作図していきます。

今回設計しようと思い立ったのは、イベントや工作教室、授業等で使用する「Arduinoを使ったライントレーサ」に使用しているモータードライバ「TA7291P」がいよいよ入手困難になって来たからという理由があります。

注意!!

通販サイト等に現在でもTA7291Pが単品販売されていたり「並行輸入品です」と記述されていたりするものがあったりしますが

側面の印刷が薄いなど不自然さがある

SIPパッケージの足の長さが短い、歪んでいる

といったものはほぼ確実にニセモノ、もしくは廃棄製品から回収したジャンク部品です。

モータードライブ回路に流れる電流量は電子回路の中でも多くなる傾向があり、最悪偽物を実装した事で焼損トラブルを起こす危険もあります。怪しい商品には手を出さない事を強くお勧めします。

そもそもこのTA7291P、代替使用可能だったTA7288Pともに何年も前にメーカーは製造終了していたので、逆に販売業者各社さんは今まで良く流通してくれましたとお礼を言いたい位です。

せっかく新しく設計を行うので、ICの互換性は今回見送って新しくドライブICを選定する事にしました。

1パッケージで2個のDCモータを制御可能「NJM2670D2」

「NJM2670D2」は、デュアルフルブリッジドライバと呼ばれるモータードライバで、通常はバイポーラ型のステッピングモータを制御する為に使用します。ステッピングモータのコイルに接続する2つの出力を分けて使用する事で、2個のDCモーターを制御する事が可能になります。詳細はデータシート(https://akizukidenshi.com/download/ds/jrc/njm2670.pdf)もご覧ください。

基本的な仕様を比較する限りは代替ドライバとして充分に使用できそうです。

ただし、旧来のTA7291Pでも使い方によっては上部のヒートシンク部にかなりの熱を持つことがありました。放熱性で比較的弱いDIPパッケージでどのくらいの使用に耐えるのか少々不安が残りますが、今回はこのまま設計を進めていこうと思います。

データシートの内容を参考にしながら、DCモーターとの接続と信号線を配置します。

従来のTA7291Pは、2本の信号線で回転方向を決め、信号線のPWM制御でモーターへの引加電圧を制御していました。

今回のNJM2670D2では、回転方向の決定を1コイル当り2本の信号線で行い、ENABLE信号のON/OFFで動作を制御します。

PWM制御をこのENABLE信号で行うのが良いのか、信号線の方で行う方が良いのかは判断に迷う所ですが、これは実際に試作した後でそれぞれの方法でテストしてみたいと考えています。

テンプレートファイルで用意されたコネクタにも制御信号のラベルを配置します。

今回の設計規模ならばシート1枚の中に納まるのでローカルラベル(KiCAD上ではネットラベル)のまま使用しても良さそうですが、通常はグローバルラベル、ネットラベルはバス接続が必要な場合に併用する使い方として覚えておいた方が設計トラブル防止にもなります。なので、今回はグローバルラベルで配置していきます。

ラベルの扱いに関してはその内容だけで改めて別記事で書きたいと思います。

小型の模型用DCモーターであれば、ここまでの回路で動作させることが可能になります。

ですが、このままではICが乗っているだけの基板になってしまい、一見して正常に信号が入力されているか確認する方法がありません。

なので、1回路で3本、両方で6本の信号線の状態を表示するLEDを追加し、同時に基板上に電池ボックスを接続できる電源入力端子も追加しました。

全体の回路図を描いたら、アノテーション(回路図シンボルのリファレンス指定子を記入)、エレクトリカルルールチェック、フットプリントの割り当てを行ってからPCBエディタに作業を移します。

プロジェクトをテンプレートから作成しているので、PCBエディタを開くとArduinoの外形とコネクタは配置済になっています。

最新バージョンはプロジェクト内での作業にネットリストは原則不要

「回路図で行われた変更で基板(PCB)を更新」アイコンを押して、回路図エディタの内容を反映します。

最新バージョンではネットリストの作成を行わなくても回路図エディタからPCBエディタへの反映が行える様になりました。

機能として回路図とPCBの間をシームレスに行き来しながら作業できるので便利ではあるのですが、外部ツールとの連携等ネットリストは今でも重要なファイルですので、ファイルエクスポートメニューからのネットリスト作成機能は覚えておきましょう。

設計された回路のデータを読み込んだら、PCBのレイアウトを行います。

Arduinoマイコンの上に取り付けるシールドにするので、USBやACアダプタのコネクタ上部は避ける様に全長を短く変更しています。

回路図上でモーターのシンボルを配置した部分についても、1×2ピンヘッダのフットプリントを割り当てて接続、取り外しが容易になる様にしました。

また、フットプリント割り当て時に3Dモデルデータも登録しています。シンボルで選定したICのパッケージ形状をモデルデータとして登録しているので、3Dビューワで表示してみると基板に直接モータードライブICが半田付けされた形のCGになっています。

このまま製作してももちろんかまわないのですが、先に述べたIC破損につながる様なトラブルが発生した場合、基板ごと廃棄になるのはちょっともったいない気がします。

組立指示や教材にCGを流用するのであれば尚更IC直付けの状態は良くないと思いますので、フットプリントのプロパティから3Dモデルデータの選択を変更して、ICソケットのモデルデータに差し替えます。

この際、プロパティをもう少し工夫する事でICソケットにICが実装された状態のCGを表示する事も可能です。

フットプリントのプロパティを開いて、3DモデルのタブからICソケットのモデルを追加します。この時、最初に割り当てられているDIP-22のICパッケージの3Dモデルは削除しないでそのままにしておきます。

この状態から、モータードライブICのモデルデータが非表示になっていれば両方とも表示をONにします。

次に、ICのモデルデータを選択し、ウィンドウ左下の「オフセット」欄のZオフセットを上方に上げていきます。

ソケットにICが乗った状態になったら「OK」ボタンを押して変更を適用します。

3Dビューワで確認すると、ICソケットにドライバICがセットされた状態のCGモデルに更新されました。

CGモデル自体はPCBの設計に直接影響する事は少ないです。

ですが、接続されるケーブルの取り回しや実装する筐体、機械部品とのクリアランスを確認する際に使用する3Dデータがより現実のものに近い状態で作成する事が出来れば、後作業の効率を上げる効果も充分に期待できます。

決しておまけ機能だと思わず、機会があればじっくり3Dモデルも作り込んでみる事をお勧めします。

設計が終わった基板は、ガーバーデータを出力して製作サービスに出して、後日モーターの制御まで実際にテストしてみたいと思います。

ABOUT KiCAD MASTER

KiCADの達人
KiCAD歴15年程度。雑誌記事や教育用テキストの執筆経験等複数あり。私大電気電子工学科での指導とフリーランスエンジニアを兼業しながらFab施設の機器インストラクターや企業セミナー講師を歴任し、KiCADの普及と現代の働き方に対応した技術者育成に務める。