LoginSignup
4
6

KiCadにおいてコイルパターンをPythonで作成する

Last updated at Posted at 2020-07-18

プリント基板上にコイルパターンを作成したい

 以下は、標準電波に似せた電波(磁力線)を疑似的に発信するプリント基板です。電波の届かない場所にある電波時計の時刻合わせを狙っています。渦巻きコイルに40/60kHzの電流を流します。このようなコイルパターンをKiCad1上で作成する方法を探して試行しました。

KiCad Coil Creator

 KiCadでのコイルパターン作成は、ネットやGitHubで"kicad coil"などと検索すると、多くの事例が公開されているのがわかります。今回は、KiCad Coil Creator2を使用して良好な結果が得られました。

試行手順

1. KiCad Coil Creatorを入手

 GitHubのリポジトリspoter368/kicad-coil-creator3をクローンまたはダウンロードします。

2. Python環境でパラメータを編集して実行

 Python環境としてAnaconda4を使用しました。Anaconda PromptからIdle Shellを経由してKiCad Coil Creatorのmain.pyを開きます。

スクリーンショット 2023-10-19 153250.png

 冒頭部分を編集します。

スクリーンショット 2023-10-19 155430.png

パラメータ 説明 今回設定値
DUAL_LAYER Bool 2層指定 True
WRAP_CLOCKWISE Bool 時計回り指定 True
N_TURNS Int 層あたりの巻き数 10
TRACE_WIDTH Float 配線幅(mm) 0.25
TRACE_SPACING Float 配線間の幅(mm) 0.25
VIA_DIAMETER Float ビア径(mm) 0.8
VIA_DRILL Float ビア穴径(mm) 0.4
VIA_OFFSET Float 中心からビアまでの距離(mm) 11.7
BREAKOUT_LEN Float 取出し線の長さ(mm) 0.5

 今回のコイルは、外直径35mm、表10ターン、裏10ターン、内側のビアで表裏を接続します。コイル部の幅は以下です。
$$
配線幅 0.25mm + 配線間の幅 0.25mm) \times 10ターン = 5mm
$$
 その内側に直径0.8mmのビアを置くと、中心からビアまでの距離は以下です。
$$
( 外直径35mm \div 2 ) - 5mm - 0.8mm = 11.7mm
$$
 このコードを実行すると、中心から11.7mmのところにあるビアを起点に裏表各々10ターンのコイルパターンが生成され、footprintファイルCOIL_GENERATOR_1.kicad.modとして保存されます。

3. KiCad Footprint Editorで修正

 ファイルCOIL_GENERATOR_11.kicad.modをユーザ用フォルダに移動します。例えば、以下の様なフォルダ階層の下に
移動します。

C:\Users\username\Documents\KiCad\7.0\footprints\

 KiCadのFootprint EditorでCOIL_GENERATOR_1.kicad.modを修正します。

スクリーンショット 2023-10-19 223430.png

 今回は、端子を丸型のSMD Padとして適切な名称を付けて保存します。

スクリーンショット 2023-10-19 223817.png

 Padにコイル部分が直接つながっていると、プリント基板上で配線ができない問題が発生しました。Padとしての属性があるのは端子部分のみであり、PCB Editorではコイル部分は接続不可と認識されます。このため、SMD PadにSegment(直線パターン)Primitiveを追加してコイル部分に繋いでいます。

スクリーンショット 2023-10-19 223943.png

4. KiCad PCB Editorで配置

 KiCadのSchematic EditorのFootprint assignment toolでアサインするなどして、自分用に修正したFootprintをPCB Editorに反映し、配置と配線を行います。

スクリーンショット 2023-10-20 110222.png

 PCB EditorでDRC(Design Rules Checker)を実行するとFootprint内部でエラーを検出することがあります。特に、SMD Padとコイル部との接続部分はネット不一致によりClearance violationとなります。このエラーを解消するために試行錯誤しましたが、結果的には設計者が全ての箇所を確認し判断して無視するのが簡単と思われます。

スクリーンショット 2023-10-20 110936.png

5. 発注

 完成したPCBレイアウトをKikit5で面付けし、JLCPCB6にPCB製造とPCBA(PCB Assembly)を発注しました。できあがったプリント基板が期待通り動作することを確認できました。

5923149072964713adfbf5bcb036ee75.png

おわりに

 KiCad はデータがテキスト形式で、外部プログラムで修正や補完が可能という特徴があります。多くの人が便利な外部プログラムを作成して公開しています。これらの方々に感謝しつつ資産を有効活用したいと思います。

  1. KiCad EDA

  2. Hackaday.io: KiCad Coil Creator

  3. GitHub: spoter368/kicad-coil-creator

  4. Anaconda

  5. Qiita: KiCadのプラグインKiKitを使って面付けし、JLCPCBに発注する

  6. JLCPCB

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6