コメを噛め

コメを噛め

rerofumi の電子工作メモ

Archive for 11月, 2010


hatena bookmark

パーソナルファブリケーションという単語に乗ってか乗らなくてか物作りのための楽しそうな機械を色々と導入してきた。
Makerbot の CupcakeCNC パーソナル3Dプリンター。オリジナルマインドの卓上CNCフライスキット。
どちらも小さくて安価なものだし、なにより操る人(私)の腕が大したことないのでそんなに凄いものができるわけじゃない。でも、それで作れるようになった物がある。
凄い物や完成度の高いものじゃないけれども、そこそこの物をそこそこの手間と時間でそこそこそこそこに作成できる環境が手元にあるのだ。

これで割となんでも作れるぞ!!と思ったところで「それで何を作るの?」という壁が目の前にあった。これまでもおぼろげに見えていたものの、工具を手に入れ、それをある程度操れるようになったところでさてどうしようと考え込んだのである。
技術屋は割と道具に惚れ込んで、道具を使いこなすことに腐心しがちである。極端な話、道具を使いたくてそのために何かを作ろうとする。道具が目的であり、その目的を満たすために仮の成果物を据えるような行動をとってしまうのではないか。
それは良くない。
道具はあくまで使うためにあるのであり、何のために使うのかというと目的を遂行するために使うのである。
つまり、本当に作りたい物を持っていなくてはいけない。
そしてそれを作るために最適な道具を選んで駆使するのである。

道具もそろってパーソナルファブっぽくなってきたはいいものの何を作ろうかと悩んでいた私のところに 1通のメールが届いた。
ごえもんP というか Magical-Soft の人というか、学生時代に SPS-NET というパソコン通信で知り合った人。インターネットへ場を変えた後もトゥルーラブストーリーのファンコミュニティーで再会したりゆるゆるとおつきあいさせていただいている。あの頃 TLS に入れ込んでいたメンバーはこぞってアイドルマスターというかニコマスクラスタへシフトしていったのだけれども、私はそんなに入れ込まなかったから久しかったのですな。
まあ、そのへんはいいや。で、メールに何が書いてあったかというと
「アイマスのライブで振りたいからフルカラーLEDのコンサートライト(サイリューム)を作ってくれ」
といった要望。
LEDコンサートライトといえばニコマスクラスタやニコニコ技術部界隈ではメジャー(?)なアイテム。yytuneさんの実装が一番有名どころ。
簡単に済ますのであればこの yytuneさんのコンサートライトを作成して渡せば良いのだけれども、いやまてよと思いを巡らせた。この「コンサートライトを作って欲しい、作ろう」という要望こそが貴重な『制作の目的』である。物自体は目新しくもないけれども、それを自分の手と工具を使って再実装していくというのは得難い体験となることだろう。
設計、フライスでの基板作成、マイコン電子工作、ファームの実装、外装を3Dプリンタで作成、組み立て、リリース。これらの行程をすべて自宅でできたなら、それはパーソナルファブリケーションと言えるのではないだろうか。
そう考えた私はフルカラーLEDコンサートライトの作成を請け負った。
焼き直しでも二番煎じでも良いのである。実際にできる機会に出会えた事が重要なのだから。

そんなこんなでコンサートライトを作成します。「いるみさん」はそのコードネーム。
プリント基板のフライス作成やそのツールをちびちび作ってきていたのを見ている賢明な方はもうお気づきのことであろうが、制作依頼が来たのはもうずいぶんと前の事である。たしか7月末あたり。
そして次のアイマスコンサートは 2011年1月10日である。それまでに完成させなくてはならない。しかもできれば冬コミに間に合うといいなとかいわれているし。
依頼を受けてからある程度のところへくるまで水面下での作業だったのだけれども、そろそろ形になりつつあるのといい加減期限が近づいてあわあわし始めているので表に出そうというあたり。

はてさて、どうなることやら。


hatena bookmark


ようやくCNCフライスでプリント基板を作ることができた。

プリント基板を CAD で設計したり、その結果であるガーバーデータを P板.com 等の基板試作屋さんに出して製作をしたことのある人なら理解していると思うんだけれども、プリント基板を作るにはいくつものレイヤーを扱う。
そのレイヤー毎のガーバーデータを製造会社に渡してようやく1枚のプリント基板ができあがる。

今回 CNCフライスで作るのは片面一層なので必要なレイヤーは以下の3つとなる。

  • プリント基板外形
  • ソルダー面パターン
  • ドリル穴データ

基板試作屋さんに出しているときはコレに加えて、ソルダーマスクのデータ、シルク面のデータとか、二層のときは部品面パターンのデータとかが増えるわけだ。
ドリル穴データはガーバーでも GCODE でもないんだけれども、まあその辺は置いておいて、これら 3つのガーバーデータをそれぞれ 3つの GCODE にコンバートして CNCフライスでその GCODE を都合三回処理する。

ガーバーから GCODE へ変換するコンバーターは cam.py を始めいくつかあるんだけれども、パターンのパスを作るだけの物が多かった。しかも、出力の空間座標が元のガーバーのそれとは異なっているので外形やドリルが合わせられなくて困るのである。
cam.py はドリルとパターンを一緒に処理してくれる機能があるけれども、ドリルのデータ形式が不明でうまく読み込めなかった。ガーバーも EAGLE のを期待していて K2CAD の奴は読めなかったりと色々不満が残る。(GCODEのパラメーター省略に対応していないのが多い)
結局外形とパターンを合わせられるツールがなかったので、ソフトを自作することにした次第。EAGLE 使っていれば全部解決していた気もするけれども、まあそこはそれ。


先ほど書いた様に 3つのレイヤーをへて 1枚の基板を作るのでフライスのツールも 3種類用いる。左から、ドリル、パターン彫刻の半月カッター、外形を切り出す1mmエンドミル。
XYテーブルはひとつのゼロ座標で固定しながら、ツールを手作業で取り替えてそれぞれの対応 GCODE で切り出していく。
パターン彫刻カッターはキデッジショップさんから購入した物。ドリルやエンドミルはIHCモノタロウとかで適当に。

そんな感じの作業をへてついにプリント基板が完成。
丸い形状とか CNC じゃなきゃやってられんよ。

テスターでショートチェックをしていると、クズが溝に残ってショートしてたりすることはある。あとバリがあってショートとか。色々試したけれども、細かいのはクリームクレンザーとスポンジで磨くのが効果的だった。指紋とか酸化膜とかも落ちるしね。
それでもショートしている場合(バリの場合が多い)、カッターで切るしかないけれども。

さて、そんなこんなで作っていた CNCフライス用の GCODE コンバーターというか、パターン外周抽出ツールだけれども、これが遅い。5cm程度の基板パターンで 5時間ぐらいかかる。
それは流石にどうだろうということでちょこっと高速化したら、8分にまで縮まった。まあ、これくらいなら。
今のところ書き捨てのクラスとテストスクリプトがあるだけで公開できるようなものではないのだけれども、どうしよう。気が向いたらもうちょっとまとめてソース置いておこうか。


hatena bookmark


ちょいと前のお話になるけれども、小型のCNCフライスキットを購入したのです。


これでアクリル板にキャラ絵を彫って遊ぶとか、フィギュアのパーツを削り出すとか、そういったことも楽しいのだけれども一番の目的はプリント基板の作成。
銅箔版をフライスでけがいてプリント基板を作成するという奴ですな。

プリント基板はポジ感光基板とエッチングで自作できるものの、廃液処理が面倒だとか、感光作業が面倒なわりに綺麗にできないとか、ランニングコストがかかるだとか、これらを乗り越えるために職人技がいるだとかでじわじわとおっくうになってきたのです。それに基板カットが面倒だとか、穴開けが手作業で死ねる上に綺麗にできないとか。
それらを CNCフライスでより簡便にできるんじゃないかと夢ふくらみ始めたわけですよ。

まあ、ここまでちまちまとパターン絵を描くプログラムを作っているあたりを見て気がついていた人もいるかもしれないけれども。


基板パターン周辺を刃サイズ分外側を拾いながらパスを取ることが、前回のコードまででできていたので、後はCNCフライスにかけられるよう GCODE を出力すればよいだけの話。
そのあたりを書いてようやくカットできるようになったものがこちら。

ちなみに CAD に EAGLE を使っている場合は、EAGLE から直接 GCODE をはき出すスクリプトがいくつも公開されているのでそれを使うのが吉。
私は K2CAD を使っているので、そこから garber 経由でフライスに持ってくるのがうまくいかず変換ソフトウェアを自作し始めたってだけなのです。おかげでわりかし自在に扱えるようになった、と思う。


hatena bookmark


前回あった、重なっているはずなのに線が残ってしまう問題が解決した。
トレードオフとしてかなり処理が遅くなってしまったけれども、時間がかかっても確実にできることを目標に今のところはあきらめていく方向で。
ようやく、ここまでできた。

これでまた前に進める。


綺麗綺麗。

source:
g2g-20101113a.zip


hatena bookmark


ざっくりとガーバーファイルの読み込みを作って、ずいぶんとそれらしい表示ができるようになってきた。
単純にガーバーを読んで表示するだけならさほどでもないけど、外周合成に時間がかかって300オブジェクトで20分とか。rubyインタプリタでやっているとか、計算が適当で無駄が多いとかあるんだけれども、自分用の使い捨てコンバーターだからそれでも別に良いかという感じ。


フィルの部分とか内部に外周奇跡が残ってしまっている。
cam.py でも同じ目にあって自作する最大の動機(理由は他にもある)だったのだけれども、自分でも同じ轍を踏んでしまうとは。
他にもゴミが残っているし、この部分がクリアできるまで成果物とは言えないよなあ。

一応ソースコードのSNAPSHOT
Download: g2g-20101107a.zip


hatena bookmark


ちと脇道にそれたり、やり方を変えていたりして間が空いた。
前回まで「三角形を合成して細かい三角形の塊で持つ」というのをやっていたのだけれども、やっぱりどっかでうまくいってなくて完全な結果が得られなかった。
なのである程度の塊(ライン単位)にしておいて、目的であるアウトラインだけをがんばって合成するという手順にしてなんとか進行。これまでの作業も有効利用できているし無難な落としどころなんじゃないかな。