CNCの自作とCNCで作る工作



Mach3用 MPG(Manual Pulse Generator)の製作
Arduino pro microのHID USB Keyboard 機能を利用した極小キーボードと1回転100パルスの
ロータリーエンコーダーをアクリル板をCNC加工した小さなケースに組み込みました。
(2017年2月22日)

画像が横向きですが正立した時の大きさ:幅70mm、高さ130mm、厚さ19㎜
(上部にナイロンロープを取り付け作業台のフックに引っ掛けるようにしてます)


 今迄USBテンキーパッドを流用したCNCコントローラーを使ってましたが、ロータリーエンコーダーを 使った本格的な
MPG(手動パルスジェネレーター(略称:手パ))が欲しくなり、作ってみました。
 私の自作CNCフライス盤は、パラレルポートを使ったモータコントロールボードを使用してるのでロータリーエンコーダー式
手パを追加するにはパラレルポートを増設するか、USBの市販品購入が必要でした。
 幸い私のパラレルポートPort#1には、今は使わなくなったHomeスイッチ用の入力端子が空いてるので、ここに接続すること
にしました。 尚、Port#1の入力端子は、10~13と15の5ヶ所です。  「パラレルポート入力端子に2つの空きさえ有れば
ロータリーエンコーダーが使えるのです」

 モード切替やステップ値切り替えの他、通常PCのキーボードで行う操作を手元で操作出来るように、Arduinoマイコンを使い
MPG用超小型のHIDキーボードを実装しました。
 このMPGはパラレルポートとUSBのハイブリッド型手パとなり、パラレルポート式モータコントロールボード等の資産継承や
パラレルポートが無い昨今のPCにPCIパラレルカードを追加する場合、PCIスロットの空きが1個しか無いPCに有効かと思います。


回路図
 Arduino pro microは入出力端子を18個備えた便利なマイコンです。Arduino pro microのチップはArduino uno系の
ATmega386と異なり、Arduino Leonardo系のATmega32u4チップが搭載されています。
注意:HID(HumanInterfaceDevice)USB Keyboard 機能はATmega32u4系でないと動作しません。
 TXとRXやアナログI/OのA0~A3もデジタルI/Oとして使えるので、18個のI/Oをすべてスイッチの入力端子として使い、
SHIFTキーを設けることにより、最大17個×2のキー操作が使用可能ですが、ここでは27個のキー操作を行ないます。
 余談ですが、Arduino pro microはマトリックス状にキースイッチを組めば最大9×9の81個のキーボードが作れます。
 ロータリーエンコーダーの接続先ですが、使用するモータコントロールボードの入力端子に空きが有ることが前提です。
私の場合、モータコントロールボードに入力用コネクターがあり、そこにエンコーダーの出力を接続してます。

後述の Mach3の設定変更やスケッチ(ソフトウエアー)によるキーの機能定義をします。
Arduinoは内部プルアップ機能が使え、外付けプルアップ抵抗が不要でスッキリした回路が出来ます。




部品の説明
 中央下がMPG用キーボードで安価なタクトスイッチ(1個10円)を使った18個のキースイッチを30年前に買って
残ってたベークライト製ユニバーサル基板を54×54㎜にカットして組み込みました。
 Arduino pro microの互換機はアマゾンや中国のAliExpressで350~500円で購入可能です。(大きさは18×35㎜)

 ロータリーエンコーダーは1回転100パルスをAliExpressで約1,900円にて購入したものですが、秋月電子販売の
1回転16パルスのアルプス製ロータリーエンコーダー(1個200円)も同様に使え、極小MPGが安価に組めます。
USBケーブルはシールド線が入った製品を選んでください。最近はシールド線の無い粗悪品が有りますご注意ください。

t2&t5アクリル板をCNCで切削して出来上がったケースとロータリーエンコーダー・MPGキーボード・マイコン



MPG用キーボードの配置例
(単独キーと上下に表示は上段がノーマルキーで下段がSHIFTキーと併用)



Arduino pro microのスケッチについて
 後述の Mach3のスクリーン編集と関連しますが、今回のMPG用スケッチ(sketch)を添付します。
ここをクリックするとMPG用スケッチのページを開きます。
スケッチの内容はHID Keyboardライブラリーを使用し、各入力pin名の宣言と入力pinのプルアップを設定、
digitalRead関数でキーの状態を監視し、条件分岐によって選択されたキーに対応したキーデーターを
Mach3へ送り、 Mach3ではそのキーのOEMボタンコードに対応した操作を実行します。

尚、Arduino pro microのHID Keyboardでは矢印キー等を押し続ける動作ではPCのKeyboardのように連続した
動きではなく断続的な動きとなります。HID Keyboardライブラリーではキーを押し下げるKeyboard.press()
関数とその動作を開放するKeyboard.release()及びKeyboard.releaseAll()の関数しかなく、キーを離した時の
処理関数が無いことです。私のスケッチではpressとreleaseの間に300mSのdelayを入れて対応してますが、
矢印キーで各軸の移動には不満が残るところです。しかし、Keyboard.press()には次のキーが押されるまで
保持するラッチ機能があり、選択スイッチ等には有効な手段でXYZ軸の切り替え等に使っています。

コントロールソフト Mach3の設定変更
注意:これは私の場合の設定例であり、あなたのシステムに合わせた設定が必要です。

①input signalsの変更
 先ず、CONFIG設定画面input signalsの以前に使ってたX HomeとY HomeのEnabledの
チェックを外して適用をクリックする。


②Encoder/MPG'sのMPG#1の設定
 次にCONFIG設定画面Encoder/MPG'sのMPG#1のEnabledにチェックを入れ、画像のように
A-Port#に1、A-Pin#に10、B-Port#に1、B-Pin#に11を入力して適用をクリックする。
後述のロータリーエンコーダーのキャリブレーションが完了すれば、右端のCounts/UnitとVelocityに数値が入ります。




コントロールソフト Mach3のScreen設定変更とMPGキーボードの連携
先ず、ARTSOFTからScreen4のZipファイルをダウンロードして解凍します。ここをクリック
次にScreen4を起動すると Mach3の編集画面が出ます。この画面を使ってMPGキーボードのキーに
割り当てる対応ボタンの編集を行います。


MPG MODE画面の編集:上部ツールバーのTABをクリックするとMPG用の編集画面が開きます。


 編集が終われば保存し、次に Mach3を起動してツールバーのViewを開き、一番上のLoad Screensを開いて編集した
setファイルをロードします。 また、ボタン設定に必要なOEMコード表が、ここをクリックすると表示します。
私が今回のMPG用に編集したScreenデーター「1024_MPG1.set」を参考として添付しますがオリジナル画面からボタンの
位置等に少し変更を加えています。ここをクリックするとダウンロード出来ます。
では、最後にScreen4の使用例を2つ紹介しますので参考にして下さい。

1:MPG用キーボードに Mach3のGOTO ZEROを割り当てたScreen4の編集画面
 Screen4の編集メイン画面のDRO下側のGOTO ZEROボタンをWクリックすると下図のようなダイアログが表示されます。
ここでFunction項目のSystem Functionのラジオボックスにチェックを入れ、右側リストボックスの下げボタンを押し、表示された
リストからGoto Zero'sを選択、次にMPGキーボードのSHIFTキーを押したままSTOPキーを押すと右ボックスに34899と数値が表示されたら
OKボタンを押します。保存後は、MPG用キーボードのSHIFTキーを押したままSTOPキーを押すとDROが0まで減算され、3軸が原点に戻ります。

MPG用キーボードに Mach3のGOTO ZEROを割り当てた例


2:MPG用キーボードに Mach3のMPG Mode Button JogのX+を割り当てたScreen4の編集画面
Screen4ツールバーのTABボタンをクリックするとMPGモード画面に変わります。ここでX+ボタンをWクリックすると
下図のようなダイアログが表示されます。ここでFunction項目のOEM Code Functionのラジオボックスにチェックを入れ
OEMボタン表のPush to jog X+に対応したOEMコード307を入力、Use Hotkeyにチェックを入れるとType the Hotkey Now.
と表示されるのでMPG用キーボードのX-Rightキーを押すと右ボックスに39と数値が表示されたらOKボタンを押します。
保存後にMPG用キーボードのX-Rightキーを押すとJog ModeがCont及びStepの時にカウントアップが確認出来ます。

MPG用キーボードに Mach3のMPG Mode Button JogのX+を割り当てた例



ロータリーエンコーダーのキャリブレーション
 最後にロータリーエンコーダーのキャリブレートの方法を紹介します。 Mach3の操作画面からTABキーを押すと
MPGモードの操作画面が開きます。このMPGモード画面右上CALボタンをクリックすると下図のCalibration MPG'sの
ダイアログが開きます。
①ダイアログのMPG#1ラジオボックスにチェックします。
②Cal Detent Sizuボタンをクリックし、ロータリーエンコーダーのダイヤルを左右どちらかへ1目盛り動かすと
 右ボックスに4等の数値が入ります。
③次に下のCal Max Speedボタンをクリックし、ロータリーエンコーダーのダイヤルを左右どちらかへ通常使う速度で
 回転させると右ボックスに数値が入ります。
④今度はCal Step/vel Trans.ボタンをクリックし、ロータリーエンコーダーのダイヤルを左右どちらかへ早い速度で
 回転させると右ボックスに数値が入ります。
⑤次に右側のCalculateボタンをクリックして下のSaveボタンで保存します。この操作は何度でも出来るので最良の
状態を探すと使い易くなるそうです。




参考
余談ですが、下がソフトウエアー(Sketch)のテスト用にジャンクボックスから集めた
部品で作ったテストボードですが、これだけでもCNCコントローラーとして充分使えます。



完成したパラレルポートとUSBのハイブリッド型MPG



短い動画ですがご覧ください。



使ってみての感想
 これまでは、USBテンキーパッドのボタン定義を変更した簡易型を使ってましたが、やはりロータリーエンコーダーを
使ったMPGはスピーディーで使い勝手が良いですね。このMPGは新規購入部品が3,000円ほどで安価に完成しました。


以上、皆さまのお役に立てれば幸いです。


MENUへ戻ります。







inserted by FC2 system