CNCフライスの回転計を更新

以前使っていた回転計は、すでに動作しなくなって放置していたが、最近になってまた作ってみようという気になったので、一から作ることにした。

 

 

 

 

使う部品はProMicroとOLEDモジュールとした。できるだけコンパクトにするため、中継基板などを介さずに、コネクタをや配線を直接半田付けして、3Dプリンターで作ったケースに入れた。
コントロールボックスの加工も考えてみたが、分解や加工に手間がかかるので、作成したケースの底面にネオジム磁石を取り付けて、金属部分に張り付けられるようにした。

 

 

コントロールボックスの前面に張り付けてみたが、配線むき出しと比べてかなり見栄えが良くなった。

そういえばG-Codeによる回転制御がまだできてないなあ。

 

 

X/Y軸のリミットSW

cnc_image161CNCフライスの工作原点を指示するために、リミットSWを取り付けることにした。
コントロールBOXの基板上には原点SW用のコネクタが用意されているので、ハード的にはケーブルとリミットSWを用意するだけだ。

 

 

 

image5コントロールBOX内のケーブルは右のような形状にした。
メタルコネクタは6P(PLT166-R-Rだと思う)、基板コネクタは4P(XHP-4)、1P(ZL2543-1PS)を使用している。
1Pコネクタは電源用として、使用していないA-Axis用の5V端子に接続している。

 

 

image9X/Y軸の原点スイッチは先人に倣って右のような位置に、フォトセンサー(EE-SX460-P1)を接着剤で固定した。

 

 

 

 

image7遮光版はカセットテープ(ナイロン製?)のケースを適当な形に切断して、これも接着固定した。

 

 

 

 

image10Mach3の原点スイッチの設定は[Config]->[Port and Pins]->[Input Signals]を右のように設定にした。
X/Y軸しかないので設定する項目は少ない。

 

 

image13[Config]->[Homing/Limits]の設定は右のように設定。
工作範囲を大きく取りたいので、原点スイッチを機械的な可動限界に近いところ(2mm前後)に取り付けたが、スピードの値を大きくすると惰性でオーバーランするため、小さめの設定にしている。

 

 

image12設定後、コンソールの[REF ALL HOME]をクリックすだけで原点に戻ってくれる。
原点合わせが非常に楽になった。

スピンドルSWの対応

 

cnc_image14ハードウェア的にはコントロールBOX内の2枚の基板(JP-382A・JP-1482)の4Pコネクタをケーブルで接続するだけだ。
但し、それぞれの基板でコネクタピンの順番が反転しているので注意。
いつも利用するaitendoで使えそうなケーブルを見つけた。
スピンドルのPWM信号も繋がってしまうが、現在設定方法がわからず放置している。

 

image1この後、Mach3の設定で[Config]->[Port and Pins]->[Output Signals]の[Output #1]を右のように設定。

 

 

 

image4[Config]->[Spindle Setup]の[Relay Control]を右のように設定。
以降、コントロールBOXのスピンドルSWがOffの状態で、「M03」の指示でスピンドルが回り始めた。
ただし、まだ回転制御ができていないので、予めコントロールBOXのつまみを適当な回転数になるように回しておく必要がある。
なお、「M05」による主軸停止も15秒ほどのタイムラグがあるものの確認できた。
スピンドルスイッチの操作が減ったので煩わしさが緩和された。

制御PCの変更

image2これまでトラブルなく使用してきたOptiplex980だがCNC3020のスピンドル制御ができないことが判明した。仕様か故障か判明しないが、とにかくスピンドルのOn/Offができず回ったままになる。
仕方なく acer Veriton L4620Gというモデルに入れ替えた。

手持ちのOptiplex以外にパラレルポートの付いた装置が無いことに不安を感じ、数か月前に予備機として購入していたPCだ。
以前と同様のシステム構成で使用しているが、小さいから置き場所にも困らないし、消費電力が少ないので長時間の工作作業には最適だと思っている。

スピンドルの回転数検出

cnc_image18これまで感覚で設定していたスピンドルの回転数だが、モーターのファン部分に張り付けた白いテープを、光学センサーで検出するというよく見かける方法を採用。
装具は3Dプリンターで作った。

左手に見える煙突のようなものは、集塵ダクトの接合部で、これに洗濯機用の排水ホースを繋ぎ、その先に掃除機を繋いで集塵装置としている。

 

cnc_image17回転数の表示部分はArduinoとLCDユニットで作成。
できればMach3で回転数制御して、[Spindle Speed][RPM]に回転数を表示できればいいのだが・・・

Z軸プローブの対応

cnc_image15コントロールBOXのパラレルポート右側に、ノートPCの電源コネクターのようなジャックが用意されている。
ここにプローブケーブルを繋ぐことで、エンドミルの先端で工作面の位置を検出することができる。
壊れたACアダプターからケーブルを切り出して、ミノムシクリップなどを半田付けしてプローブケーブルを作った。

 

 

 

imageこの後のMach3の設定については、下記サイトの動画を参考にした。
http://www.instructables.com/id/Mach3-Zero-Probe-Tool/

[Inputo Signals] の [Probe]項目を設定することや、[Auto Tool Zero]ボタンにマクロを定義すること、などが確認できる。

具体的な設定は[Config]->[Port and Pins]->[Input Signals]の[Probe]を選択して[Automated Setup of Inputs]をクリックする。
image14ダイアログが出たら、プルダウンから[Probe Switch]を選択して[AutoSet]をクリック。
ここでプローブの先端をショートさせて、プルダウン下のテキストボックスに「Signal set to Port #1 Pin 15, Select Next signal.」と表示されたら[OK]をクリック。
これで先ほどの[Input Signals][Porbe]の項目が自動的に設定される。

この後、[Auto Tool Zero]ボタンにプローブ動作のマクロを定義する。
[Operator]->[Edit Button Script]をクリックすると編集可能なボタンが点滅するので、その中から[Auto Tool Zero]をクリックする。
image17編集窓が開いたら、当該ページに掲載されているVBマクロをコピペする。
プローブユニットの厚みを変数 ZOffset に設定する。直接プリント基板の銅箔面で作業する場合は 0 を設定する。

以前はエンドミルとプリント基板表面の接触を検出するためにテスターを使っていたが、プローブを付けたことによって格段に調整しやすくなった。

CNCフライスの制御PC

image18CNC3020添付のソフトウェアMach3使うには、パラレルポートおよび32ビットOSが必要とのことなので探してみたところ、知り合いの業者が手ごろなものを見繕ってくれた。
DELL OptiPlex 980というCore-i5のモデルだ。
これだけのスペックだとCNC専用にするのはもったいないので、Windows10 64bitにして、仮想PCで32bit環境を用意することにした。
ところがWindwos標準の仮想環境ではパラレルポートが提供されなかったため、VM-WareのVersion 12.0.1をインストールして運用。
因みにこのPCはCNC3020以外に、レーザープリンターや3Dプリンターなどを接続してサーバーのように使用している。

後日VM-Wareをv12.5に更新したところパラレルポートが応答しなくなった。仕方がないので元のヴァージョンに戻した。