SSブログ
English Version

両面プリント基板の制作実験(その3) [PIC]

 両面プリント基板作成の続編です。
 CNCでのプリント基板作成やレーザーカッターでのプリント基板作成のチャレンジも並行してやっていますw

 今回はトナーの熱転写にオブラートを利用した新アイディア(オブラート転写方式)も紹介します。
 作成する基板は上記のCNCでも試みている赤外線コントローラで下図のような回路になります。

赤外線コントローラ

★2017/06/04 回路図修正(以降のパターン図はアップデートしていません)

 DesignSparkPCBでパターン設計しますが作業の概要としては
  1. パターンの自動生成
     グランドは最後にベタパターンにするので、最初にグランド以外の結線を対象にパターンの自動生成を行う。
  2. 自動生成が失敗した場合
     両面パターンであれば自動生成が1発で成功する場合が多いですが、生成未完の結線が発生した場合は未完となった結線付近の部品間隔を大きくしたり、パターン生成しやすいように回転させたりして自動生成が成功するまでトライする。
  3. グランドのベタパターン化
     基板全体をベタパターン範囲として指定し、グランドをベタパターン化する。
  4. 孤立グランド有無の確認
     グランドをベタパターン化した後、グランドパターンがすべてつながっているか(グランドへ接続される端子どうしが接続されているか)を確認する。孤立しているものがある場合は孤立しないようにパターンを変更する。

 できたパターンが下のキャプチャです。

パターン



グランドベタ化(部品面) グランドベタ化(半田面)


 前回の「両面プリント基板の制作実験(その2)」では ebay で購入した安価な転写シートを使っていました。その後 ebay で別のタイプ(油紙のようなタイプ)の転写シートを見つけ使用してみましたがトナーが転写シート側にもわずかに残り同じような感じでした(高価な転写用ブルーシートは使っていません)

 トナーを完全に基板側に付けるためには水で溶けるような素材を使えばいいのでは? と思い amazon でオブラートを購入(200枚入りで約400円)し試してみました。

トナー転写用に使ったオブラート


 最初は転写シートのようにオブラートをコピー用紙にマスキングテープで張り付けてやってみましたが下の写真のように熱でオブラートが縮んで失敗しました w

オブラート転写失敗


 オブラートをコピー用紙(トレーシングペーパーは縮んでNG)にスティック糊で張り付けることで良好な結果が得られました。
 転写の手順の概要は次のようになります。転写後、基板から紙を分離する作業が非常に楽で、かつトナーは 100% 基板に転写されます。
 この転写方法をオブラート転写方式と命名しました ^^
  1. 転写用紙の準備
     コピー用紙にスティック糊でオブラートを張り付ける。この際なるべくシワにならないようにし、張り付けた後でオブラートを扱いてコピー用紙と一体化させる(多少シワがよっても扱けば大丈夫)。
  2. レーザープリンタでオブラート上にプリントパターンを印刷する。
  3. トナーの転写
     オブラートに印刷されたパターンに基板にあわえた状態で基板の端をマスキングテープ等で固定した後、ラミネータ(アイロンでもいいけどラミネータの方が結果が安定しているし簡単)に数回通す。
  4. 基板からコピー用紙の分離
     水に1分くらい付ければ簡単にコピー用紙を分離できます。基板の表面はオブラートでヌルヌルしているので水に付けながら指先で軽く擦れば簡単にヌルヌルも取れます(パターンを痛めるリスクがほぼゼロ)。


 両面基板の作成なので両面のパターンを位置合せをしているのが下の写真です。(今回は片面づつ転写しましたが、両面を一度に転写した方が作業幸率はよくなります)
 基板に対角線上の二つの穴を開けて針を通して位置合せしています。ベタパターンに数か所小さな穴が発生していたのでマジックで修正しています。 トナーは100%転写できているのでレーザープリンタ(MultiWriter5600C使用)側の問題かもしれません・・

両面パターンの位置合せ


 エッチング後のパターンが下の写真です。半田面側の右下の部分に白く見える部部がありますが、パターン間の隙間が狭かったので削った部分が光って見えています。

エッジング後(部品面) エッジング後(半田面)


 次は穴開け作業ですが、これが結構大変です(手に豆ができるw)。
 しか~~し、CNCルータという秘密兵器があるので最初の位置合せさえきちんとやれば、自動で正確に穴を開けることができます ^^

 参考としてCNCでの基板作成検討時に開けた穴の写真を貼っておきます。viaは 0.4mm のドリルで穴開けしていてポリウレタン線を通してスルホール化する予定です。
 部品の端子部分は 0.6mm のエンドミルで穴開けしています。エンドミルなのでミリングすれば大きな穴を開けることも可能です。

CNCでの穴開け状態(参考)


★2017/06/03 追記
 CNCルーターで穴開けしたので写真を貼っておきます。CNCに基板をセッティングする場合の位置合せ方法としてはCNCを操作して基板の対角線上の離れた穴開け位置に移動した状態でX、Yの2方向から見て基板の穴開け位置にあっていることを確認することで行いました。
 基板厚1.5mmに対して1.7mmの深さで穴開けしました。一部穴が開いていないように見える箇所がありますが、裏から抵抗の足を入れると簡単に貫通し蓋状の銅が丸く剥がれる状態でした。
 また、最後は四隅の穴開けになっていますがY軸が脱調したのか少しずれています^^;

CNCでの穴開け後


★2017/06/03 追記
 スルホール処理後の写真を貼っておきます。スルホール処理は 0.3mm のスズメッキ線を使って行いました。裏面の半田が溶ける前に半田付けする必要があり、ちょっとコツが必要ですが何個かやってみればコツはつかめると思います。
 しかしスルホール1個の処理が片面基板のジャンパー1本の処理の手間と同じくらいなのでこの方法での両面基板のメリットは何かを考えてしまう・・
 パターン設計が楽、部品間の距離が小さくてもいいので少し小型にできる、遠回りしたパターンが少なくなる くらいですかねぇ~
 表面実装部品で設計しないと両面基板のメリットが出にくいような気がする。

スルホール処理後


★2019/10/09 追記
 オブラートを使った両面基板の作成方法に関して「両面プリント基板の制作実験(その7)オブラート転写方式」の記事に書きました。


[TOP] [ 前へ ] 連載記事 [ 次へ ]

独自言語 picle のコンパイラ化(その12) [PIC]

 picleコンパイラを使って実際にワンボードのアプリケーションを作ってみるとスイッチ入力処理等でどうしてもタイマー割込みのようにバックグランドで定期的に動く処理が欲しくなります。
 また、picle言語では従来から時間管理機能として Timer_ 変数が非ゼロの場合、10ms毎のタイマー割込み処理で Timer_ 変数をデクリメントする機能を実装していますが時間的に管理したい対象が複数ある場合、実装が面倒でした。

 その都度、コンパイラ自体に組込み処理としてC言語でタイマー処理を実装するのも面倒なので今回はpicle言語だけでタイマー処理を実装できるようにしました。

 使用方法としては picleソース内に proc Tint_() を組み込むと定期的(10ms間隔)に Tint_() 処理がコールされます。実現方法としては10ms毎のタイマー割込み処理内から picleで記述した Tint_()をコールするようにしているのでタイマー割込み処理の一部として Tint_()が実行されます。

 今回のタイマー処理の機能追加はコンパイラのソース的には数ステップの追加ですが、picle 言語の使い勝手としては大きな追加になるのではないかと思います。

 上記の対応をした picle コンパイラは「独自言語 picle compiler on PIC24FJ」からダウンロードできます。


タイマー処理テスト結果
:l

   1:# Tint_ test by skyriver 2017/05/26
   2:var Count;
   3:var SecCnt;
   4:
   5:proc Tint_() {
   6:   if ( SecCnt < 99 ) {
   7:           SecCnt = SecCnt + 1;
   8:   } else {
   9:           SecCnt = 0;
  10:           Count = Count + 1;
  11:   }
  12:}
  13:
  14:
  15:proc main() {
  16:   while (1) {
  17:           while ( Timer_ ) {}
  18:           Timer_ = 100;
  19:           PrnStr_( "\n Count = " );
  20:           PrnDec_( Count );
  21:   }
  22:}
:run

 Count = 0
 Count = 1
 Count = 2
 Count = 3
 Count = 4
 Count = 5
 Count = 6
 Count = 7


[TOP] [ 前へ ] 連載記事 [ 次へ ]

CNCミニルーターの購入(その5) [CNC]

 CNCルーターでプリント基板を作成する上で
  • プリント基板の水平な固定
  • Z軸ゼロ調整と削る深さ
が重要です。

 それならば今使っているVカッターよりもっとアングルの小さいものを使えば上で書いた課題に対してマージンが増えると考えられるので、アングル 10 15 度のVカッターを ebay でポチリました。
 10 15 度ならば 穴開けや基板のアウトラインカットまで1本でできるかもしれません。

 また、ガーバーデータから レーザーカッターへのデータ渡しができるようになったので、今までいろいろ試した中で有力視している2つの塗料を試したところ、一方でいい結果が出ましたがその後の実験で再現性が乏しく、継続検討中です。

 CNC の方はポチったエンドミルや 10 15 度アングルのVカッターの待ち状態なので自作した3Dデータで CNC を動かす方法について書いてみます。
 3Dモデルのファイルは使い慣れた DesignSparkMechanical で STL ファイルを作成し、 Estlcam で STLから G-code を生成します(もっといい方法があるかもしれないけど)

★2017/05/08 修正
「10度」 ⇒ 「15度」 に修正
★2017/05/17 追記
 10度のものもポチってますw

 手順の概要は次のとおりです。
  1. STL ファイル作成
     使用するツールは何でもいいですが、今回は使い慣れた DesignSparkMechanical で作成しました。

    テスト用3Dデータ

     DesignSparkMechanical で export した STLファイルを STL ビュワー(L-Phinusを使用)で表示させると下図のようになり確認結果はOKです。

    STLファイルの確認

  2. STLからG-code生成
      Estlcam を使って STL ファイルから G-code を作成します。 Estlcam はシェアウェアですが無料で使用できます(ユーザ登録しないと登録要求画面表示時に15秒間待たされます)
    Estlcam は直接 CNC マシンを制御する機能もありますが、CNCマシンの制御ボードである Arduino の ファームウェアを書きええる必要があるようなので(Grbl対応しているので構成によってはそのままで動く?)、今回は Estlcam の STLからG-codeを生成する機能のみを使用します。

     下の画面は STL ファイルを読込んだ直後の状態の画面です。
     「Tool List」のウィンドに使用するエンドミルの情報を設定します。

    Estlcam STL読込み直後

     「Block machining」のボタンを押すと下の画面が表示されるので設定値を確認し「Program」ボタンを押します。
     そうすると NC ファイルが2つ(表面と裏面の切削用ファイル)生成されます。

    Estlcam G-code 生成

  3. CNCマシン で切削
     後は CNC に G-code を読ませて実行するのみです。G-codeを読込んだ時の grblControl の画面は下記になります。

    grblControl 画面

     CNC でも結構手軽に自作の3Dデータを扱えるものですね。
     実際に切削したものを示したいところですが、今はエンドミル待ちなので NCVC でトレースしてみましたw

    NCVC で G-code 確認



[TOP] [ 前へ ] 連載記事 [ 次へ ]

CNCミニルーターの購入(その4) [CNC]

 今回は CNC で少し大きめのプリント基板の作成してみたいと思い、 PIC16F88 を使った赤外線コントローラの回路をあまり推敲せずに作ってみました。
 「PIC24FJで4足ロボットの製作(その9)」で書いたように4足ロボット制作が赤外線コントローラの準備段階で止まっているからということもあります。

 IrLED のドライブは NchMOS FETを使いたかったのですが手持ちになかった(買っておいたはずなのに・・)のでとりあえずトランジスタを使っています(後で変更する予定)。
 DesignSparkPCB で作成した回路図が下図です。文字が小さくて見えないと思いますが、電池2本(2.4V)を電源として、HT7750A で PIC と LCD 用の5V電源を作っています。
 外部接続するものは 赤外線LEDと amazon で買った JoyStick です。
 RA5とRB1が同じスイッチに接続されていますが、RA5は入力にしかできないため使用しない場合でもオープンにするのは危険なのでRB1と接続しRB1のチップ内プルアップを利用するためです(RA5は単独で入力として使う場合でもプルアップが必要)。RA5をグランドに落としておいてもいいのですがVPP端子として使う場合に困ってしまう。

テスト用回路図


 パターン図の作成で片面基板では自動ルーティングではジャンパの数が多いのでマニュアルで最適化すべきところですが、早く CNC を動かしたいので両面基板にして自動ルーティングでパターン作成しました(やはり両面はパターン作成が手軽でいい)。
 厚さ 1.2mm と 0.4mm(マルツで買ったものが手持ちであった)の片面基板を貼り合わせて両面にしようかと思っています。
 今回は時間が惜しいので自動生成されたものをそのまま使いますw(ピン間に配線も通していません)
 できたパターンが下図です。赤色のパターンが Top面で水色が Buttom面になります。

テスト用パターン


 最初に Buttom 面のパターンから作成してみることにします。裏面のデータとしてパターン、ドリル、基板カットの3つ作りますがいずれもミラー設定にして DesignSparkPCB で出力します。
 後は今までと同様に FlatCAM で G-code を作り、grblControl で読込みます。

grblControl 画面


 今回はスピンドルの回転数を約 800 rpm (前回は 500 rpm)にあげています(これ以上上げるとうるさいので・・)
 また、Z軸のゼロ点調整をVカッターの固定ネジを緩めて基板近くで基板まで降ろし固定することでゼロ点とする方式に変更しました(コットン方式と命名w)
 パターンカットが完了した状態が下の写真です。

パターンカット完了時の状態


 左右のパターンがカットしきれていません orz
 基板を取り出して撮ったアップ写真が次の写真です。

パターンカット後の基板


 今回も前回同様、カットの深さは 0.04 mm にしていますが、前回はZ軸のゼロ調整は音で判断方式?でやっています。推測ですが音判断方式は実際(コットン方式)よりも若干マイナス方向にずれてしまうのではないかと思います。
 また、上の「パターンカット完了時の状態」の写真で判るように捨て板のMDF合板を左右で固定しているために、左右の端が若干歪んだため、パターンをカットしきれなかったのではないかと思います。
 念のため、MDF合板の厚さを4辺でノギスで測ったところほほ 6.1 mm だったのでMDF合板の製造精度が悪いわけではないようです。

 パターンの拡大写真で前回と比較してみると

前回 今回


 明らかに前回よりも切削状態が悪い・・・

 前回との主な違いは
  1. スピンドル回転数 前回:500rpm 今回:800 rpm
  2. Z軸ゼロ調整方法 前回:音判断 今回:コットン方式
  3. カット範囲    前回:狭い  今回:広い
くらいでしょうか
 原因としてはZ軸のゼロ調整方式の違いにより今回の方がカット深度が浅かったためではないかと考えています。
 銅層をカットできず、銅層に乗り上げた時は音が変わるのでわかりますが、ギリギリ銅層を切るような状態では銅層の切削状態が悪くなるように思います(上の「今回」側の写真を見ても切ったというよりは剥がしたという状態に見える)

 次回は
  • Z軸のゼロ調整はコットン方式で深度は 0.05mm以上
  • MDF合板がそってしまう問題の対策として MDF合板は必要以上にきつく固定しない
でやってみます。


[TOP] [ 前へ ] 連載記事 [ 次へ ]

CNCミニルーターの購入(その3) [CNC]

 前回の CNCミニルーターの購入(その2) に後で追記したようにスピンドルの回転数が 500rpm 程度でかなり遅かった(でも静かだったw)ので安定化電源から給電し電流制限調整で回転数を上げていくと 900rpm あたりから音が大きくなったので状況をもう少し調べてみました。

 まず、モーターから Vカッターとシャフトカップラー(連結用金具)を外した状態でモーターを手で持って回転させるとそれなりに音はしますが割合静かです。
 ということはVカッターを付けた状態では若干のブレがあるため振動がおこっている?
 Vカッターを付けた状態で回転数を上げていくとVカッターの先端を見ると若干(0.3mm程度?肉眼では良くわからない)ブレているようにも見えますが振動が多くなったというような感じはしません。

 最初はパソコン操作でモーターON/OFFをしていたのですが、基板上にあるモーター用のON/OFFスイッチで OFF にしたところ、パチっと音がしてその後モーターが回転しなくなってしまいました orz

 コントロール基板上にあるモーター用電源のスイッチが壊れた様です・・・
 下の写真がコントロール基板の部品面ですが、右下にあるスイッチがモーター電源用です(その上のスイッチはステッパー用電源スイッチ)
 テスターで確かめてみましたが確かにONにしても導通状態になりません。

コントロール基板(部品面)


 下の写真はコントロール基板の半田面です。半田くずが付いていたり、かなりイマイチな状態です。壊れたスイッチのところは交換のため半田吸引しています。
 目視で危なそうなところは綺麗にしておきました。

コントロール基板(半田面)


 壊れたスイッチを外し、分解してみると接点部分の金具(下の写真の右上)が焼き切れていました。

壊れたスイッチの分解結果


 この基板で使用されているスイッチはなんと以前 amazon で購入したスイッチと同じもので大量に持っています。
 スイッチのON抵抗を計ってみると 0.1ohm 程度あり、とても数アンペア流れるところに使えるものではありません・・・
 特にモーターがON状態でのスイッチ操作は厳禁です(スイッチが完全にONになる直前の抵抗値が大きい状態ではエネルギーがスイッチに集中するため)
 本来ならもっと電流容量の大きいスイッチと交換したいところですが DIP型スイッチは同じようなものなので今回は交換だけ行い調整作業を続けたいと思います。

amazon で買ったスイッチ


 コレットを付け直したり、Vカッターを変えたり、いろいろやってみましたがVカッターの先端のブレは若干よくなったような気もしますが回転時に静止しているような状態にはなっていません。
 そもそもVカッターの先端がさらに斜めにカット(0.1mm)してあるので肉眼では良くわからない・・・

 ブレ具合の評価&エンドミル交換が楽になるようにチャック式に変えたいのですが、モーター側の 5mm シャフトに合うコレットやチャックが ebay でも中々見つかりません・・
 やっと1つ見つけポチりましたが例のごとく、到着までには時間が掛かるので気長に待つしかありません。

 エンドミルもまだないのでVカッターで試すしかないのですが、MDF合板に文字を刻印してみました。
 モーターの回転は 前回の記事 では 900rpm 以上では音がうるさくなると書きましたが更に回転を上げると一旦落ち着く状態になったので 1420rpm(無負荷時 10.5V、1.76A)にして刻印して見ました。
 モーターの仕様通り 24V にしたらどうなるのかは怖くてまだやっていませんw(その前に先ほど交換したスイッチが焼き切れるかも)
 剛性がそれほど強くないこのキットにはこのモーターは強力過ぎるような気がしてきます(でもきちんと調整すれば問題なく動く?)

 G-code は 前回同様 Easel で作成しました。刻印の深さは 0.8mm です。

Easel で文字データ作成


 grblControl で読込むと下の画面になります。

grblControl 画面


 結果が下の写真です。斜めの線が入っていますが調整段階のものなので気にしないでくださいw
 Vカッターでも底が結構平になるもんですね。

MDF 合板刻印結果


 今日は切削屑掃除用に amazon でポチった小型ハンディクリーナーが届きました^^
 エンドミルが届くのが待ち遠しい・・・・・・

[TOP] [ 前へ ] 連載記事 [ 次へ ]