upsilon’s blog

備忘録なので内容は限りなく薄いです。

中華CNC1610について 続き

前回基板が壊れてしまったcnc1610キットですが、実は組み立て中にどこか壊すんじゃないかと思ってもう1台注文してまして、それが届いたので基板だけ抜き出して交換しました。無事動作しました。ランダムに感想などを書いてみます。

何をしたら装置を意図通り動かせるのか分からない

キット付属のDVD-Rにgrbl-controllerが入っていたのでそれをそのまま動作させてみました。手動でXYZ軸を動かしたりスピンドルモーターを動かしたりできるのですが、それ以上何をすれば良いのか分かりません。

どうやら、このプログラムはncファイルというのを入力するようだと分かりました。web上で色々と検索すると、Machとcnc3040などを使う少し古い記事は見つかるのですがgrblの記事はなかなか無いので難儀しました。

少しずつ調べて分かってきたのが、ステージの動きを記述する命令がG-Codeだということです。例えば、ステージを座標(10mm, 0mm)に移動する、とか、スピンドルを(5mm)まで下ろすというような感じです。

Machの場合はMachがG-Codeをステッピングパルスに変換してパラレルポートに出力→パラレルポートに繋いだモータードライバがステッピングパルスでモーターをドライブするようだということです。

それに対して、grblの場合は、usb接続したarduinoの中にgrblプログラムが入っていて、そのプログラムがG-Codeを解釈してステッピングパルスに変換、arduinoから出力されたステッピングパルスがa4988等のマイクロステップドライバICに送られて、ドライバICがモーターをコントロールするということです。PCとarduinoの間は仮想シリアルポートで接続されていて、コンソールで対話的にgrblフォーマットの命令を送り込みます。

grblフォーマットの命令は、G-Codeをそのまま送るための命令と、grbl独自の制御を行うための命令で出来ています。grbl独自の命令とは、各XYZ軸の進行方向を逆にするとか、座標位置をリセットするとかそういう類の命令です。

で、G-Codeの送り方は分かったわけですが、今は基板の切削がしたいわけで、基板の設計データをいかにG-Codeに変換したら良いのか分かりません。で、またこちら

CNC - Linux工作室

に頼るわけですが、ここで紹介されているpyGerber2Gcodeを使うとガーバーデータをG-Codeにできるようだと、段々分かってきました。

pythonと依存ライブラリのインストールで若干つまづきましたが、pyGerber2Gcodeを動かせるようになり、普段使っているKiCadからガーバーデータを出力する方法も把握して、何とか切削に漕ぎつけました。

 

ステージが結構傾いてる

早速基板の切削をしてみたのですが、基板の端と端ではZ軸の高さが結構違っていて、基板の一部だけ溝が掘れませんでした。それでどうするのかというと、ステージの上に捨て板を貼って、エンドミルで一面同じ高さで削るわけです。そうすると、ドリルから見て、捨て板の高さが一定になります。この作業を機械加工では面出しと言うそうです。面出し用のgcodeを生成してくれるwebサイトがあって、ここ

tetterablog.hatenablog.com

のgcodeを使わせて頂きました。

基板切削用エンドミルは太すぎても細すぎてもダメ

太すぎるとランドまで削ってしまうので当然ダメなのですが、細すぎると、溝と溝の間に削り残しが発生します。