デジタルノギスDROをつけたりしてあれこれ使ってきたミニ旋盤(PSL400VD)。
ふとCNC化したくなりましたので、してみました。
フライスと同様に、linuxcncで中華なブレイクアウトボードを介して中華なモータードライバーで 中華なステッピングモーターを うごかすという貧乏人構成です。
PSL400VDはなぜか回転計がついていませんでしたので、スピンドルの回転とインデックスを読めるようにもしました。
スピンドルは、PWMで制御をかけようと思っていますが、まだそこは完全にはできていませんが中途の状況を記します。
1.Z軸
旋盤のねじ切り用にいろいろとギアが取り付けられていますが、全部取っ払って親ねじをプーリーを介してNEMA23のモーター(定格2.8A)で駆動をするようにします。トルクが足りるか不安でしたので、プーリーはモーター側を16歯、親ねじ側を40歯として減速をするようにもしました。
モーターのマウントは、ギアセットを取り付けるためにあったM8の取り付けねじを利用して5mm厚のアルミプレートをフライスで切って取り付け、NEMA23モーター自体は3Dプリンターで出力したマウントブロックを使ってアルミプレートに取り付けました。タイミングベルトのテンションを調整する必要がありますので、3Dプリンターで造形したマウントブロックの取付穴は長穴にしておきました。
プーリーは、市販のXL037用を購入しましたが、親ねじのシャフト穴径の12mmに合わせるようにしたのと、プーリーの厚みを減らす必要があったのと、さらに、キー溝の加工も必要でした。キー溝は悩んだ挙句やすり1本で現物合わせで加工しましたがこまめに確認しながらやったのがよかったようです。プーリーの厚みを減らすのは当然旋盤でやります。
モーター側のプーリーは8mmの穴に拡げ、M4のイモネジ穴を掘って固定しました。ドリルで穴をあけただけでは8mmのシャフトにうまくはめあいが取れませんでしたので、今回リーマーを買いましたが、なんで今まで持っていなかったのか!と後悔。
ベルトの歯数は一応ミスミのページなどの解説をみて計算して決めました。
とこんな感じでZ軸のモーターを付けました。
2. X軸
X軸の方は、ケチって秋月でずいぶん前に買って引き出しの肥やしになっていたプーリー付きのステッピングモーター(NEMA17互換?)を使いました。
こちらは、3DプリンターでおなじみのGT2ベルト、プーリーを使って、これまで手回しハンドルが付いていたところにプーリーを取り付け駆動します。モーター側は20歯、ハンドル側は40歯にしてこちらも減速してみました。
マウントプレートは、 ハンドルの軸受け部分 に7mm厚程度の円盤形状の部分がありますので、そこに塩ビ板をはめ込み、そこに3Dプリンターで造形したマウント基台をねじ止めするZ軸と同様の構造です。ただ、X軸の方は、モーターの場所を選ぶと思いましたので、ちょっと検討した形状にしてみました。
40歯プーリーを試しにはめてみたら穴形状が悪くこじってしまいプーリーが傷物に・・・この構成だとダイアルのインジケーターもそのまま使えるので見やすいのはよさそう。
塩ビ板のベースプレートは、後でアルミで作り変えるかもしれませんが当座これで。
3. コントローラー
コントローラーは、linuxcnc でパラレルポートに制御信号を出力し、前にNEMA23モーターを買ったときに一緒についてきたブレイクアウトボード(DB25-1205)を介してこちらもまた一緒についてきたモータードライバー(DQ542MA)を駆動します。
モーターの電源はこれまた中華な24V電源(15A)が3Dプリンターを作ったときに勢い余って買ったものが残っていましたのでそれを使います。
このブレイクアウトボード、反応があまり速くなくって、40マイクロ秒程度のステップを出すのが限界っぽい(もう少しチューニングができる要素もありますが)。まあ、その限界内で全く旋盤作業には問題がないのでよしとします。
ステップの速さは、ブレイクアウトの出力をオシロで観測しながら最適値を探ります。
コンパクトな制御系を組みたいので、24V電源、モータードライバー2個、ブレイクアウトボードをくっつけるための部品を3Dプリンターで作りました。
小汚い配線ですが動けばいいんだ!カバーはちゃんと動いたらもちろん付けますよ。
ブレイクアウトボードには、ほかにはスピンドルからの回転数、インデックスパルスの入力もつなぎます。
linuxcnc の設定は、stepconf ウィザードを使ってやりました。
このウィザードでモーターのテストもできるので、特に困ったこともありません。
この機種の場合、Z軸の親ねじは1.5mm ピッチ、X軸のねじは1mm ピッチでした。また、適当なモーターの配線をしていたら、両軸とも方向が逆向きでしたので、X軸、Z軸ともDIRをinvertの設定にして対応しました。
stepconfウィザードでは、ねじのバックラッシ補正の値を入れることができませんので、それは動かしてみて補正量を計測して、.iniファイルの各軸にBACKLASH=0.22などと記載すれば補正が入るようになりました。
私の機械では、Z軸のバックラッシは0.4mm X軸のバックラッシは0.22mmでした。もう少し渋く調整すべきところかと思います。
DROで様子を見ながらいじくってみましたが、Z軸は親ねじとのカップリングにガタがあるのが問題になりそう(位置決め精度が悪い)で、かっちり固定できるように工夫が必要かもしれません。
4. スピンドルインデックス、回転計
そもそも旋盤をCNC化するのは、素人でもねじ加工を楽にしたいなということが原点にありますので、スピンドルのインデックスをとることはmustです。
私はこちらのページ を参考にさせていただき、エンコーダーをつけてみました。
エンコーダーホイールは、先のページのプロファイルと同じですが、レーザーカッターは持っていませんので、私は3Dプリンターでホイールを造形しました。インデックスと回転(60パルス/回転)のエンコーダーはオムロンのEE-SX460-P1がジャンク箱に転がっていましたのでそれを2個旋盤に取り付けるマウンターをこれまた3Dプリンターで造形しました。
位置決めはちょっと難しかったですが、linuxcnc のhalscopeを使って信号を観測しながら位置合わせをしました。
Z軸とスピンドルインデックス周り。
まあまあすっきりまとまったように思います。
stepconfの設定の時に追加できるUIでスピンドルの回転数もしっかり読めてます。
同期動作はこちら の通り試してみようと思ってますがまだです。