how to code something このページをアンテナに追加 RSSフィード

2012-07-25

Modelaのビットが折れるの巻

基板を作っていて、大丈夫だろうと踏んでいた0.6mmのビットが折れたので
反省を。

USBのBコネクタ用の穴がドリルの穴(0.6mm)より大きかったので、
「ドリリングを穴の径に合わせる」のチェックを
外してツールパスを生成していた。

「引っかかった」と思った瞬間折れました。

事故現場
f:id:seinzumtode:20120725145319j:image:w400

反省点としては、
・ミリングとドリリングはビットを分ける(ミル:0.6mm,ドリル:1mm)
・ツールパスの生成(ULPスクリプト)では、
「ドリルのツールパスを径の大きさに合わせる」のチェックを外す

2012-07-21

Modelaでプリント基板 トラブルシューティング

よくある質問(FAQ)的なものです。
できないときは以下の事項を確認してみましょう。

・fablab-mill-n-drill.ulpファイルをRunして
ツールパスを生成しましたか?
(Layer20のdimension,Layer45のHole,Layer46のMillingが
生成されているか確認しましょう)

・Xオフセットは基板の幅(より少し大きな値)に設定しましたか?

・切削する面はbottom(layer 16)ですか?top(layer 1)を考えていませんか?
topを削りたい際は、CAM Jobsの設定でMirrorのチェックを外し、
XオフセットとYオフセットを両方とも0inchに設定しましょう。

・ME-US3(D-Sub↔USB変換ケーブル)のドライバインストールしましたか?
Modelaに付属するCDにはMacLinux用のドライバは入っていません。
データの送信にはWindowsを使いましょう。(一般的なFTDIドライバではうまくできません)

・生成されたdrillおよびmillファイルの設定パラメータは正しいですか?
特にZ方向の定義、!PZを確認しましょう。
切削する板の厚みによって変更する必要があります。

2012-07-20

完成!EAGLE+ModelaでPCB基板をつくる。CAM Processorの使い方

元記事の方法で出来たのでメモ。
http://ailab.t.u-tokyo.ac.jp/~aoki/tutorial/pcb/step3.html

ボード図でCAM Processor を開く。
Open>Jobs>fablab-mill-n-drill.cam でロードする。

設定するパラメータはXオフセットのみ。
今回は基板の長さが1辺1.44inchなのでXオフセットを1.5inchに設定した。
(1.4inchとか小さい値にするとプロット座標が負になって失敗する)

スクリーンショットを載せておく。
アクティブになっているレイヤーは、

mill > 20:dimension(外形線), 46:milling(切削パス)

f:id:seinzumtode:20120720160719p:image:w400

drill > 45:holes(ドリルで開ける穴)

f:id:seinzumtode:20120720160717p:image:w400

ボード図上でのレイヤーの対応関係。

mill(dimension, milling)

f:id:seinzumtode:20120720160952p:image:w400

drill(hole ※見づらい。実はドリルの点が書いてある)

f:id:seinzumtode:20120720160950p:image:w400

注意点として、自分の環境ではmillの方の!PZが50,20になってたこと。
PZは沈下方向が負なので、はじめの数字が正の値50になってるのはおかしい。
銅箔は30ミクロン(0.03mm)なので、!PZ,-20,50に設定した。
(削る厚み20mil=20*0.001inch = 20 * 0.01 * 25.4mm =~ 0.5mm。10milでも十分。)
(追記。まじめに計算すると、35ミクロンは約1.38ミルなので、
!PZは-2とかでいい。あっても困りはしないので今後は10ぐらいでいこうと思う。お好みで)

完成した基板。
f:id:seinzumtode:20120720162438j:image:w400

実際は穴が貫通してないのだが、これはdrillingの方の!PZを変えてやれば良い。

2012-07-19

ModelaでPCBをつくる 実験その1

まず、mlab pajaのページを参考に作ってみる。

EAGLE CAM Processorにcamジョブ定義ファイルを読み込ませて
drilling.drillとmilling.mill(ファイル名は適当)をつくる。

これをシリアルでModelaに送るが、コマンドプロンプト

type milling.mill > com1

とすると、

the system cannot write to the specified device

のようなエラーが出て送信できない。
(前回はこれでいけたのに。ポートの設定などはあっている)

rs232cというフリーソフトで送ろうとすると、
作成したテキストファイルが読み込めてないことに気づいた。
おそらく文字コードの問題だと思う。(ASCIIエンコードにすべき?)
(ちなみにrs232cの設定では"hardware",baud rate=9600, を選択すること)

これで作ると失敗したっぽい。時間も6時間くらいかかってる。
できた基板は以下。ほとんど削られていてグランドもへったくれもない。

f:id:seinzumtode:20120720071641j:image:w400

f:id:seinzumtode:20120720071800j:image:w400

wc -l で行数をカウントするとmilling.mill、drilling.drillともに22300行ある。
(両者の行数が同じってのがおかしいとは思う)
1秒に2コマンドとすると3時間、だいたい実際と合致してる。

次はこっちの記事(http://www.ailab.t.u-tokyo.ac.jp/~aoki/tutorial/pcb/)を試してみる。

2012-06-10

ModelaをRMLで動かす

Modela MDX-15/20はRMLでコントロールできるらしい。
http://mlab.taik.fi/paja/?p=1874

リファレンスfrom Fablabバルセロナ
http://wiki.fablabbcn.org/File:RML1_Command_GuideENVer100.pdf
やってみたらうまくいった。

使うのは主に下のコマンドだけ。

RML Mode2

PA ... 絶対座標(Pen Abusolute?)
VS ... X-Y方向速度(Velocity Select):単位は[mill/sec](*mill=1/1000 inch)
!VZ ... Z方向速度(Velocity Select for Z-axis)[mill/sec]
!MC ... モーター起動/停止(Motor Control):0でOFF,1でON
!PZ ... Z軸原点設定(第一引数がDownの停止位置(したがって通常は負の値)、第二引数がUpの停止位置。目視で合わせたゼロ点を0とする。)
PU ... Pen up
PD ... Pen down

z方向により下げたかったら、!PZの値を更新して(第一引数をマイナス方向に大きくとる)PDさせる。


下は遊んでみたときの様子。

PA;PA;VS4;!VZ4;!MC1;!PZ0,20;
PU0,0;
PD190,0;
PD190,190;
PD0,190;
PD0,0;
!PZ-100,20;
PD0,0;
!PZ-100,20;
PD3800,50;
!PZ-300,20;
PD0,0;
PU3800,50;
!MC0;

PA;PA;!PZ0,1000;VS1;!VZ1;!MC0;PU50,50;!MC0;