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

今回の記事においても、KiCADの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の普及と現代の働き方に対応した技術者育成に務める。