posted by
rerofumi
2010/12/19 日曜日 16:02:23
プリント基板のガーバーデーターができたら、それをフライスで削り出すための GCODE に変換する。
ここがうまくいかなくて悩んだ末に変換ツールを作ったというのがこれまでに語ってきたお話。
まず、ガーバーは太さ情報(プロッターのシャッターサイズ)を持ったデーターなのだけれども、GCODE は軌道情報のみという違いがある。ガーバー自体も GCODE の亜流なのだけれども、そのまま変換するとパターンの中心にそって線を一本掘るだけの結果となる。
なのでまず、太さ情報と軌道情報からパターンの外周を算出して表示する必要がある。これがガーバービューアのお仕事。
次に、フライスで切削するには刃のサイズを考慮しなければならない。例えば直径 1mm のカッターで切削していった場合、刃の半径サイズ分 5mm 外周より内側にめりこんでちょっと小さく削ってしまうことになる。当たり前の話だけれどもこれを回避するために実際に刃を移動させる軌跡は外周の軌道情報から刃サイズの半分だけ外側を縁取るように拡張しなければならない。
その拡張をどうやるかが難しかった。
理屈から言ってパターンだけでなく外形にも刃サイズ分の拡張を適用しないといけないのだけれども、今回は難しかったので外形については無視することにした。
あらかじめ CAD 上で外形サイズを刃サイズ分だけ大きくしておくという運用での回避でごまかすのだ。

マイコンボードのガーバーを GCODE 変換。

NCVC でパターン切削の GCODE を確認。

ドリルデーター。

外形くりぬきデーター。
こうしてできた GCODE でCNCフライスを駆動し、銅箔紙フェノール板を削ることでプリント基板が完成する。


これくらいのものがざくざく自作できるようになってくると、もう楽しくて仕方がない。

穴開けに苦労しなくていいなんて夢のようでござる。
これと以前作った LED 基板と合わせて、いるみさんのプリント基板は完成。

posted by
rerofumi
2010/11/29 月曜日 2:53:39
パーソナルファブリケーションという単語に乗ってか乗らなくてか物作りのための楽しそうな機械を色々と導入してきた。
Makerbot の CupcakeCNC パーソナル3Dプリンター。オリジナルマインドの卓上CNCフライスキット。
どちらも小さくて安価なものだし、なにより操る人(私)の腕が大したことないのでそんなに凄いものができるわけじゃない。でも、それで作れるようになった物がある。
凄い物や完成度の高いものじゃないけれども、そこそこの物をそこそこの手間と時間でそこそこそこそこに作成できる環境が手元にあるのだ。
これで割となんでも作れるぞ!!と思ったところで「それで何を作るの?」という壁が目の前にあった。これまでもおぼろげに見えていたものの、工具を手に入れ、それをある程度操れるようになったところでさてどうしようと考え込んだのである。
技術屋は割と道具に惚れ込んで、道具を使いこなすことに腐心しがちである。極端な話、道具を使いたくてそのために何かを作ろうとする。道具が目的であり、その目的を満たすために仮の成果物を据えるような行動をとってしまうのではないか。
それは良くない。
道具はあくまで使うためにあるのであり、何のために使うのかというと目的を遂行するために使うのである。
つまり、本当に作りたい物を持っていなくてはいけない。
そしてそれを作るために最適な道具を選んで駆使するのである。
道具もそろってパーソナルファブっぽくなってきたはいいものの何を作ろうかと悩んでいた私のところに 1通のメールが届いた。
ごえもんP というか Magical-Soft の人というか、学生時代に SPS-NET というパソコン通信で知り合った人。インターネットへ場を変えた後もトゥルーラブストーリーのファンコミュニティーで再会したりゆるゆるとおつきあいさせていただいている。あの頃 TLS に入れ込んでいたメンバーはこぞってアイドルマスターというかニコマスクラスタへシフトしていったのだけれども、私はそんなに入れ込まなかったから久しかったのですな。
まあ、そのへんはいいや。で、メールに何が書いてあったかというと
「アイマスのライブで振りたいからフルカラーLEDのコンサートライト(サイリューム)を作ってくれ」
といった要望。
LEDコンサートライトといえばニコマスクラスタやニコニコ技術部界隈ではメジャー(?)なアイテム。yytuneさんの実装が一番有名どころ。
簡単に済ますのであればこの yytuneさんのコンサートライトを作成して渡せば良いのだけれども、いやまてよと思いを巡らせた。この「コンサートライトを作って欲しい、作ろう」という要望こそが貴重な『制作の目的』である。物自体は目新しくもないけれども、それを自分の手と工具を使って再実装していくというのは得難い体験となることだろう。
設計、フライスでの基板作成、マイコン電子工作、ファームの実装、外装を3Dプリンタで作成、組み立て、リリース。これらの行程をすべて自宅でできたなら、それはパーソナルファブリケーションと言えるのではないだろうか。
そう考えた私はフルカラーLEDコンサートライトの作成を請け負った。
焼き直しでも二番煎じでも良いのである。実際にできる機会に出会えた事が重要なのだから。
そんなこんなでコンサートライトを作成します。「いるみさん」はそのコードネーム。
プリント基板のフライス作成やそのツールをちびちび作ってきていたのを見ている賢明な方はもうお気づきのことであろうが、制作依頼が来たのはもうずいぶんと前の事である。たしか7月末あたり。
そして次のアイマスコンサートは 2011年1月10日である。それまでに完成させなくてはならない。しかもできれば冬コミに間に合うといいなとかいわれているし。
依頼を受けてからある程度のところへくるまで水面下での作業だったのだけれども、そろそろ形になりつつあるのといい加減期限が近づいてあわあわし始めているので表に出そうというあたり。
はてさて、どうなることやら。
posted by
rerofumi
2010/11/24 水曜日 1:02:43

ようやく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分にまで縮まった。まあ、これくらいなら。
今のところ書き捨てのクラスとテストスクリプトがあるだけで公開できるようなものではないのだけれども、どうしよう。気が向いたらもうちょっとまとめてソース置いておこうか。
posted by
rerofumi
2010/11/22 月曜日 0:49:32

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

これでアクリル板にキャラ絵を彫って遊ぶとか、フィギュアのパーツを削り出すとか、そういったことも楽しいのだけれども一番の目的はプリント基板の作成。
銅箔版をフライスでけがいてプリント基板を作成するという奴ですな。
プリント基板はポジ感光基板とエッチングで自作できるものの、廃液処理が面倒だとか、感光作業が面倒なわりに綺麗にできないとか、ランニングコストがかかるだとか、これらを乗り越えるために職人技がいるだとかでじわじわとおっくうになってきたのです。それに基板カットが面倒だとか、穴開けが手作業で死ねる上に綺麗にできないとか。
それらを CNCフライスでより簡便にできるんじゃないかと夢ふくらみ始めたわけですよ。
まあ、ここまでちまちまとパターン絵を描くプログラムを作っているあたりを見て気がついていた人もいるかもしれないけれども。

基板パターン周辺を刃サイズ分外側を拾いながらパスを取ることが、前回のコードまででできていたので、後はCNCフライスにかけられるよう GCODE を出力すればよいだけの話。
そのあたりを書いてようやくカットできるようになったものがこちら。
ちなみに CAD に EAGLE を使っている場合は、EAGLE から直接 GCODE をはき出すスクリプトがいくつも公開されているのでそれを使うのが吉。
私は K2CAD を使っているので、そこから garber 経由でフライスに持ってくるのがうまくいかず変換ソフトウェアを自作し始めたってだけなのです。おかげでわりかし自在に扱えるようになった、と思う。
posted by
rerofumi
2009/9/1 火曜日 1:25:47
MaxOSX の新バージョンがリリースということで早速我が家の Mac の片方に入れてみた。(両方でないところに慎重さが見られる)
正直、Macとして使う分にはなんも問題は見られない。通常のUX的には本当に変化に乏しい堅実なアップデートだのう。
一部動かないプログラムがあったのだけれども、これはPowerPCバイナリを動かすRosettaが標準ではインストールされないからだった。ディスクからオプションとして追加インストールする。ちょっとびっくりもしたけれども、最近はPowerPCバイナリを所有して使っている人の方が珍しいか。
問題ないのはあくまで「普通のMacとして」使っている人なのだけれども、MacOSX を Mach カーネルなUNIX系OSとして使っている人には結構劇的な変化があるっぽい。
『Snow Leopardにアップデートした後に気をつけること 主にMacPortsとrubygemsについて』という記事が大変参考になりありがたかった。
Portsは使っていないけれどもGemsは使っているからなあ。実際にアップグレードしたらrakeが起動しなかった。入れ直して解決。
他にも SDL-1.2.13 のビルドで失敗するようになった。
SDLはあえて1.2を必要としているのでなんとかしたいねえ。
posted by
rerofumi
2009/8/16 日曜日 18:43:17
前回の記事では、SDLとSDL_image,SDL_mixer をビルドする rake file を作った。
おかげで Cygwin 環境に自前 SDL ライブラリを導入するのが容易になって自分自身で満足していたり。
今度はこれを拡張して、本来の目的である arm-linux-gnu な環境へ対応したクロス開発ライブラリをビルドできるようにした。お目当ては GP2X wiz 用の開発環境構築だけれども、同じ arm-linux-gnu なターゲットである BeagleBoard や OpenPandora でも使う予定。
まあ、このへんをもにもに作成してクロス開発環境構築の経験値を積もうというのが一番の目的だったりするけれども。
てなわけで GP2X wiz の開発ができるところまで確認できたので Ver0.0.2 release
Download: fumi2_sdl_build-0.0.2.tar.gz (7kb, tar+gz)
前回の 0.0.1 では必要な patch や README がアーカイブから抜けていたので、あれ自体は動かしても最後まで動作しなかったかもしれない :-)
こいつでビルドするための toolchain は既に方々から提供されているものを使う。
このへんの gcc+glibc も同じような rakefile で提供してみたいものだが、最近は crosstools-ng を使うのが一般的だし、手応えとしてかなり難しそうだというのがあるので課題として積んでおくことにする。
今回ので GP2X wiz のクロス開発環境が構築できたのだけれども、その対応のために Ver0.0.2 ではいくつか変更を施している。一番大きいのが libjpeg を最新の v7 から v62 にダウングレードしているところ。
libjpeg v7 は 10年近くメンテナンスされていなかった(枯れていてメンテの必要がなかった) v62 の configure 周りを今時に合わせた待望の新版で 27-Jun-2009 にリリースされた。コレを使うと Darwin でも configure 一発だったりして楽ちんなんだけれども、GP2X の中に入っているのが v62 なので共有ライブラリ名に食い違いが発生してしまう。
なのでしぶしぶと v62 にダウングレードしているのだけれども、今 v62 のソースをダウンロードしようとすると地味に難しかったり、ビルドが難しかったり。
v62 の configure の問題は autoconf, automake が古すぎて libtool がちゃんと生成されないあたりにあるのだが、これは一緒にビルドする linpng に依存することにして libpng の configure で生成された libtool をコピーして使う事にした。
そいった面倒な手順を Rakefile に記述してあるよ、ということ。
ビルド手順を日本語でメモするかわりに rubyという言語でメモ。
posted by
rerofumi
2009/8/1 土曜日 22:43:47
PSoC3/5 の開発環境は新規に提供される “PSoC Creator” というものになる。PSoC1 の “PSoC Designer” とはまた違った感じの特徴がある代物。

PSoC Creater にはARMのGCCが含まれており、PSoC5ではそれを利用することとなる。
PSoC3 の 8051 Cコンパイラは Keil の C51 を利用するが、別ダウンロードでインストールする必要あり。C51 は30日間の free trial なので一応すぐ利用する事が可能。そのあとはライセンスをアクティベートする必要があるのだけれども、ここではとりあえず省略。
CD 内にある PSoC DevelopmentKit つーのはドキュメントやサンプルをインストールしたり Keil C51 をダウンロードしてインストールしたりするお役立ちバッチの模様。

PSoC1 の時は PSoC Designer を立ち上げるといきなり内部ブロック配線図が表示されてびっくりしたけれども、PSoC Creator の場合は回路図エディタがでんと表示されてそれなりに度肝を抜かれる。
必要なユーザーモジュールを配置していくところから始まるのは変わらないっぽい。
まずは PSoC の定番、プログラムに依らずにモジュールだけで LED チカチカでもやってみましょか。
Read the rest of this entry »
posted by
rerofumi
2009/7/11 土曜日 15:59:43
シリコンハウス共立とツールベンダーのハッコーが「ハンダ付け道場」なるイベントをやるらしい。
うんうん、こういった入門!やってみよう!って企画は良いよね。
で、そんな記事を Make: JAPAN blog 経由で、イベント告知のBlogページにたどり着いて知ったわけだけれども。
……
なんか右の写真に見覚えが。
ああ、コレか。
元の記事もハンダ付け入門のすすめだったので、このように写真を使っていただいて光栄でありまする。
posted by
rerofumi
2009/5/14 木曜日 1:40:39

マルツ電波の「FPGA学習ベースボード」を買ってみましたー。
やあ、デジタル・デザイン・テクノロジー連動付録の Lattice FPGA を使ってみたくなったもので。Lattice FPGAが使えるダウンロードケーブルは手元にないのでどうしたものかなあと考えていたのです。
なひたふさんが XilinxやAlteraのパラレルダウンロードケーブルで Lattice FPGA をプログラミングするサポートダウンローダを公開されているし、Lattice のパラレルダウンロードケーブルの回路図もあるので自作しても良かったりはする。でも、「難しくは無い」けど「面倒くさい」ときってあるよね。その面倒くさいも時には楽しい要素なのだけれども、今回は回避した次第。
それに、テストボードも作るの面倒で、これくらいのがスタートアップにあるのも結構便利なものだったりするのです。いずれは、自作のテストボードができてそれで済ます様になるかもね。
手に取るまで気がつかなかった、というか見落としていたのだけれども。

パラレルポートコネクタがオス型じゃん。
これまで使っていたストロベリーリナックスのパラレルダウンロードケーブル(現在は販売終了)がメス型コネクタだったのでケーブルが合わないよ。中継ぎコネクタでも買ってくるか……。
まあ、ByteBlaster もオス型コネクタだったし、メス型というほうが逆なのかもしれない。
このベースボード、7セグにスイッチにラダー抵抗DACとシリアルって結構バランスの良い学習ボードだと思う。取り敢えずの学習でこの辺は使いやすいしね。汎用I/Oポート端子に245バッファがついているところも初心者向けやマイコン応用用途としてポイント高し。
7セグがダイナミックでなく直繋ぎなのでポートを食い過ぎなのが難点。SRAMがついているとかなり汎用度が高まるんだけれども、まあそのへんはブロックRAMでなんとかするところか。
回路として簡単なのでおまけ的に USBコネクタがついているのだけれども、使える人がどれくらいいるかはちと疑問ではある。
この後に続く、Splatan3E と Cyclone 互換基板の販売が楽しみ。
この手の基板が後々入手できることの安心感は大きいと思うのです。
posted by
rerofumi
2009/5/11 月曜日 4:52:33
前回の続き。
どちらかというとこっちの方が難易度の高い調査。詳しい方はフォローよろしく。
■ MosChip PCIシリアル/パラレル増設カード
Windows7 64bit : 動作した
今使っているデスクトップにはパラレル/シリアルポートが付いていなかったので敢えて付けるために増設したPCI拡張カード。
何でこれが欲しかったのかの理由が以降続く。
■ ISE 11.1 Webpack
Windows7 64bit : 利用不可
Windows7 32bit : 動作した
Windows7 64bit XP mode : 一応動作した
Xilinx のPLDデザイン環境。
Webpack は 64bit Windows での利用は不可で、使いたかったら有料版を使ってねーということになっている。以前から。
今回 64bit Windows 上だと Webpack のインストーラが起動しないのを確認した。
32bit の方だと現状のVistaで動かすのと同じ感じ。ただ、ISEでもやはりインストーラからのドライバーインストールが失敗して入らない現象が起こるので、それに気がつかないとImpactでダウンロードできなくて首をひねることになる。
このへん、インストール後 ISE のディレクトリ内にある install_driver.exe という奴を手作業で実行してやれば良い。
Windows7 32bit においてはパラレルケーブル経由のコンフィグが可能。
XP mode ではパラレル仮想デバイスがないので、USBダウンロードケーブルの利用のみが可となる。それよりも ISE の様な鈍重なアプリをVirtualPCで動作させるのはかなりきつい。気長に使って吉。
あと、環境のせいかは不明だが XP mode だと若干不安定だったような気がする。
■ SPARTAN-3E スタータキット
Windows7 64bit : ISE Webpack利用不可
Windows7 32bit : 動作した
Windows7 64bit XP mode : 動作した
Xilinx USB ダウンロードケーブル相当なので、こいつでUSBドライバの確認をした。まあ、結果は順当。
■ Quartus II Web Edition 8.1
Windows7 64bit : 動作した、パラレル利用不可?
Windows7 32bit : 動作した、パラレル利用不可?
ALTERA のPLDデザイン環境。
ALTERAの方はUSBダウンロードケーブルを持っていないのと、あまり使わないのとでまともに調査できていない。
ISEみたく64bit版への縛りはないし、USB Blasterやその互換品であれば64bitドライバが用意されていることを確認したので使えそうな気がする。
コンフィグ時、どうやってもハード追加にByteBlaster互換が現れなかったのでできないのかもしらんと諦めた次第。
■ 寸評
64bitだとISEが使いづらい。どうしましょ。
XP以降パラレルポートはデバイスドライバ経由でないと触れなくなったので、扱いやすいポートとは言えなくなってきた。このへんが潮時で、パラレルポートを利用するデバイスは見切りをつけてUSB経由のものに切り替えていった方が良いのかもしれない。