ESP8266でBトレ(第7回 ハードウェア編その7 プリント基板の作成 前編)

こんにちは、またずいぶん時間がたってしまいました、冬眠してたわけではないんですが... f:id:cacao1:20160126230129j:plain

起きてるにゃ

前回まででとりあえず回路が固まりましたので、今回は量産(といっても数個ですが)のためにプリント基板(PCB)を作ります。おじさんにとって初めての経験ですし、これを書いている時点ではまだ出来上がってきていませんので、ちゃんと動くものができるかどうかわかりません。本当は作図した回路図をもとに一台作って確認しようと思っていたのですが、前回までの試作基板のはんだ付けでめげてしまい回路図を印刷してチェックするだけですませてしまいましたので、その点でも心配です。失敗したら笑ってやってください(とても失敗しそうな気がします...)。

なお、プリント基板作成や発注の方法に関しては、すでにネット上にいい記事がたくさんあり、おじさんもそれらを参考にさせていただきました。ですので、実用的な情報をお探しの場合はそちらをご参照いただきたく、本稿は主に「シロウトのドタバタを追体験して楽しむ」という用途にお使いください。

プリント基板を作る

プリント基板を作るといっても、自分で基板を露光したり、フレキシブルテープとインレタで銅箔にマスキングしたりするわけではなく、CADで図面を描いて発注するだけです。しかもパターンを考えたり描いたりする必要すらなく、回路図さえ用意すればCADが自動的にパターンに変換してくれます(実際には手作業も必要ですが)。趣味のレベルでそんなことができるなんてスゴいと思いますが、画面上だけですんでしまうのは少し味気ない気もしますね。

プリント基板設計ソフト

ホビーユースで利用できるプリント基板用CADソフトは複数ありますが、おじさんはDesignSparkPCBを使うことにしました。この分野ではEAGLEがメジャーなようですが、EAGLEはフリー版は作成できるサイズの制限があったり、作ったものを配る場合は、たとえ実費頒布でも有償版のライセンスが必要だったりするようです。 DesignSparkPCBにはそのような制約はなく、ダウンロードして試したところ、使い勝手も普通のDrawソフトとあまり変わらず違和感なく操作できたため、これを利用させていただくことにしました。 f:id:cacao1:20160128210033p:plain

プリント基板作成サービス

国内ではP板.comUniCraftなどが有名なようですが、時間がかかってもいいので気軽に試したいということで、FusionPCBという海外のサービスを使います。ここはスイッチサイエンス経由でも注文できます。最初は直接頼んで早い便で送ってもらおうとしたのですが、なぜか決済の画面が動かなかったので、スイッチサイエンスさんへ注文しました。今回頼んだものは10cm×10cm×10枚を2種類ですが、FusionPCBでUPSでの発送を選んだ場合とほぼ同額でした。直接頼んでUPSで送ってもらうよりスイッチサイエンスさん経由のほうがやや時間がかかりそうですが、万一の場合に相談できる(かな?)という安心感を考えるとコストパフォーマンスの差は納得できる範囲です。英語が得意な方や、急いでいる方、チャレンジャー(というほどでもないか)な方は、FusionPCBへ直接オーダーしてもいいと思います。(FusionPCBだと、複数種類注文した場合にまとめて発送してもらえるので、送料的にもオトクです。)

作成の手順

(これ以降はDesiginSparkPCBを使ってFusionPCB(スイッチサイエンス)に製造依頼した場合の例を書きます(これしか知らないので))

プリント基板の作成は、 ①回路図を作図する>②デザインルールを設定する>③プリント基板の図面に変換する>④発注する というような流れになります。 最初から回路図をCADでひく人の場合は①はすでにすんでいるはずですが、手描きアナログ人間なおじさんの場合はここから始めます。②は何かというと、基板を受注する側が決めたルール(「こういう設計になってないと製造できませんよ」というルール)です。内容は、例えば、隣り合う配線の最小間隔とか、基板のヘリから配線までの最小幅といったようなものです。配線をCADソフトに考えさせる前にソフトにこのルールを教えてやる必要があります、受注会社のページに載ってます。FusionPCBでは、EAGLE用にはデザインルールの設定ファイルがダウンロードできるのでこれを読み込ませればいいようですが、DesignSparkPCB用はありませんでしたので、ルールを見て設定画面から入力してやる必要があります。また、基板サイズは、所定の範囲内で自由に決められますが、注文枚数によってオトクなサイズがありますので、最初からそれも考慮したほうがよさそうです。FusionPCBでは10cm×10cm×10枚と10cm×15cm×10枚では金額が倍以上違います。③はソフトが自動的にやってくれます。全自動でもできますし、主要な部品や配線の配置だけ手動で決めて、あとはソフトにまかせるとか全部手動でといった使いかたもできます。④はファイルをまとめてアップロードしてオーダーフォームに入力してカードやPaypalで支払いをおこないます。ファイルはレイヤごとに出力されたものをZip圧縮しますが、レイヤごとにファイル名のつけ方にルールがありますのでそれに従います。

気づいた点など

まだ注文しただけで、出来上がりを確認していないので、現時点まででDesignSparkPCBを使ってみて気づいたり感じたりした点を書きます。 (ですので、今後書き足したり修正したりするかもしれません)

チュートリアルをやってみる

まずはとっかかりのために、DesiginSparkPCBのホームページにあるチュートリアルビデオを見てそのとおりやってみました。これだけでおおまかなイメージがつかめるのでおすすめです。また、サイト内に機能の説明がたくさんありますので、探せばたいていのことは載っています。ただし、サイト内では探しにくいのでGoogleからググる(表現がヘン?)必要がありました。

ない部品は探してみる。ちょっと探してなければさっさと作る。

部品ライブラリがついてきますし、オンラインでも検索できますが、それでも使いたい部品が無い場合があります(というか無いことのほうが多いくらい)。 その場合、次のような方法が考えられます。

  1. DesignSparkPCB用の部品をネットで探す。親切な方が公開されている場合があります。おじさんは74HCのゲートはこちらの方が公開されているものを使わせていただきました。
  2. EAGLE用があれば、それを変換して使う EAGLEのほうがメジャーなので、それ用の部品ならある場合があります(ESP-WROOM-02もEAGLE用はこちらの方が公開されています)。DesignSpark用への変換はここの説明をどうぞ。
  3. 自分で作る やってみたら結構簡単でしたので、これがおすすめです↓。

部品の作り方

(DesignSparkPCBのブログにありますので、ここではさらっと)

  1. 部品は回路図用の図と、基板用の図にわかれていて、これを組み合わせてコンポーネントとして定義します。基板用の図はよほど特殊な部品(ESP-WROOM-02本体とか)でない限りライブラリにあります。 回路図用の図は自分で描くか回路記号ライブラリからコピーします。基板用の部品も自分で描くか基板用部品図のライブラリからコピーします。同一形状で定数や型番が違う部品を複数種類作る場合は一個作ればOKです。

  2. コンポーネントにする 回路図用の図と基板用の図を組み合わせて定数などを設定したものをコンポーネントといいます。実際に使用するにはコンポーネントにする必要があります。自分でコンポーネントを作るには、まずコンポーネントを新規作成して、それに回路図用と基板用の図を追加します。その後、回路図の端点と基板用部品の端子を関連付て定数を記述します。

f:id:cacao1:20160128211209p:plain 回路的には同一で複数の形状がある部品(たとえばロジックICのDIP版とSOP版とか、立てた抵抗と寝かせた抵抗とか)の場合は、一つのコンポーネント内に複数の基板用の形状を定義できます(Edit>Packagesで開いたダイアログでAddします)。配置時には既定値として指定した形状のものが配置されますが、配置した部品のプロパティダイアログから変更できます。

必要なコンポーネントはできるだけ事前に準備しておく

ピンヘッダやDCジャックなどのコネクタ類も含め、使う部品は事前に用意しておくほうが気分よく作業を進められます。また、使いたい部品がいろいろなライブラリに散在していると配置のときに探すのが大変(ライブラリを複数有効にしておくと動作が遅くなる)なので、プロジェクトのライブラリを用意して、そこに使う部品をコピーして集めておくといいと思います。 部品は、Ctrl+Lでライブラリが開きますのでそこで編集すればいいのですが、回路図や基板の設計中にコンポーネントを編集する場合は基板や回路図上で対象部品を右クリックしてコンテキストメニューからEditComponentinLibralyを選びます。 f:id:cacao1:20160128212740p:plain

回路図上で離れた配線を同じネットに属させてつながっていることにする機能について

回路図上で離れた位置にある配線に同一ネット名を付けて図上はつながなくてもつながっていることにする機能があり機能ブロックごとに回路図を分けて書くことができるので便利ですが、間違えてつなぐと切り離すのが大変です(間違えてつないでしまった部分のネットを全部消す以外の方法をみつけられませんでした)。また、ネット名を表示させておいかないとつながっていることがわかりませんので、うっかりほかのネットにつないでしまうと困ったことになります。このダイアログf:id:cacao1:20160128212817p:plainが出たときはYesを押す前によくよく注意する必要があります。 どこかにつなげてまったかもというときはView>HilightNet>Browse...で、Net名を選んでハイライトされた配線を探しましょう。 (本当は一つ一つのネットにそのネットの意味をあらわす名前をつけておくのが正しい使い方なのかもしれません。) また、回路の一部をコピペするとコピペ元と先のネットがつながった状態になってしまいます。使い方がわかってないだけのような気もしますが、安全のために繰り返しがある場合なども未配線の部品をコピペするようにしました。

単位や用語について

ググったり、ググって見つけた情報を正しく理解するために、基板界?の用語について知っておいたほうがいいです。mil(thou)、ネット、ルート、ビア、パッド、スルーホール、シルク...くらい覚えておけばよさげかも。

グリッドを切り替える

グリッドにスナップする感じで配線や部品などのオブジェクトは配置されますので、場面ごとにグリッドのStepSizeを調節するといいです。 たとえば部品の配置の時は大きめにしておいて、配線のときは小さめにするとかします。

配線を折り曲げるとき

すでに引いてある配線を折り曲げるときはその配線をダブルクリックしますが、自分が思っている側じゃない線分がマウスカーソルにくっついてくることがあり、離せないのでイラっとします(納豆のパックのビニールみたいです)。分割した線分のうち、それぞれの側のコーナーから遠いほうがマウスにくっついてくるようですので、それを意識してダブルクリックする点を選ぶといいです(折り曲げる点は自由に移動できます)。

主要な配線は手でひくほうがよさげ

自動配置ロジックは配線の意味的なものまでは考慮してくれませんので、そこにこだわる場合は手配線したほうがいいかもしれません。 今回は、練習を兼ねて動力用の基板は全部手配線でやってみました。

ルートの作成、やり直し

ネットをルートに変換する場合は、一つのネットの一部のみをルートにできますが、戻す場合は全部戻ってしまいます。たとえばグランドの一部をやり直したい場合など困ります。こんなときは、変更したいルートを選択して削除してから、回路図と同期(Tools>Foward Design Changes...)させることにより、ルート前の状態に戻せます。 パターンを手でひくとき、引き出したい場所にネットの分岐がない場合があります。そんなときはネットにとらわれずにつなぎたい部分同士をパターンでつないでから、回路図と同期させれば、つないだ部分に対応するネットが消えてつじつまが合います。

部分的に線の太さを変えたい

例えば電源ラインの場合、ロジックピンのプルアップか、電源供給線かによって線の太さを変えたかったりします。自動でやると同じ太さになってしまいますが、事前に線のクラスを定義しておくと、そのクラスに応じた太さになります。それでも分岐位置の都合などで、思い通りにならない場合は、パターン上で線を直接選んで太さを変更することもできます。

回路図との同期

パターンを作っている最中に回路の一部を直したり付け足したりした場合、前述の同期機能を実行することで、それがパターンに反映されます。未配置の部品やネットとして基板の外に現れます。

部品のシルク

部品のシルクは部品外形の定義で描きますが、デザインルール上、シルクの上や近傍にはパッドが置けないので、あまり凝ったシルクにしないほうがよさげです。また部品名と部品番号はひと固まりになっていて個々に動かせないのがちょっと不便です。今回は部品番号だけ自動で配置して、型番は裏面シルクに手動で書きました。

データ出力

FusionPCB用のガーバーやドリルデータの出力はこのページを参考にしました。 出力したファイルを所定の名づけルールに従ってリネームして圧縮したあとfusionPCBのサイトにアップロードすると出来上がりイメージが確認できます。(スイッチサイエンスのアップロードページだと、寸法が正しく解釈されずイメージを確認できません。) 基板サイズはメーカーが決めている価格ごとのサイズぴったりではなく微妙に小さくしておくとよいようです(たぶんそうだろうと思って若干小さめにしたのですが、それでもFusionPCBのサイトにアップしたらワンサイズ大きく評価されたので、さらに削る必要がありました。)

こまめにセーブ

DesignRuleCheckを走らせるときなど、ときどき固まるので、まめにセーブすることが大切です。

どのくらいで慣れたか

平日夜に1~2時間くらいずつ10日~12日ほどと、休日を2日半ほど費やしてようやく手描きの回路図の入力と基板2枚のレイアウトができました。 f:id:cacao1:20160128215706p:plain 若い方ならもっと短時間で慣れるでしょう。使い方が少しわかってくるとパズルみたいで結構楽しいです。動作が確認できたらデータもアップします。f:id:cacao1:20160128214624p:plain

動力部とロジック部の2枚に分けたロジック部のほうです。

できた?

まだできてません。先週金曜日の夜に発注と支払いを済ませて火曜日の昼にチェックを開始した旨のメールがスイッチサイエンスさんから届いたところです。来週火曜日以降は春節のお休みなので、このペースだと届くのはちょっと先になりそうです。

1/30(土)追記:

本日昼にスイッチサイエンスさんから、製造を開始したとのメールが届きました。とりあえずデザインルール的にはOKだったようです。

2/2(火)追記:

本日昼に製造完了のメールが来ました、結構早いですね。

2/9(火)追記:

本日夕方にスイッチサイエンスさんから発送完了のメールがありました。クロネコさんからもメールがあって明日到着予定だそうです!