ガス冷却ペルチェ方式霧箱 その5 CNCマシンのMACH3コントローラ作製

CNC加工機
工房にはCNCマシンが2台あります。
一台は2016年の独身の日にAliexpressで購入したもので、CNC1610という加工エリアが公称180x100mmの小型のもの、そしてもう一台が神から賜りしCNC3040です。
こちら

 

もうどう考えてもこっちがほんまもんです。
加工エリアは広いし、送りねじは3軸ともボールねじです。素晴らしい。
ということで、こちらをメインマシンにしております。「しております」と書いているものの、未だ何も本格的な切削をしておりません。が、この度アルミの削り出してパーツを作る必要が出てきました。それが作成中のガス冷却ペルチェ方式霧箱のキーパーツであるエタノールのプールです。
作製中の霧箱は「林式霧箱」の構成とする予定です。この林式霧箱の特徴の一つはチャンバの底にアルコールのプールが配置される点です。このプール部分は底部裏面に貼りつけるペルチェ素子によってマイナス数十度まで冷却する必要がありますので、熱伝導性が良い材料で作る必要があります。また低温下で液体のアルコールをためることを考えると隙間が無いようにプールとベースを一体で作りたいところです。接着剤やパッキンは低温下での信頼性がいまいちだと思っているのです。
そのような理由から、熱伝導性の良いアルミ板材を削ってプール一体のベースを作ることを考えています。それならせっかく手元にあるCNCを使わない手はありません。
そんなCNC3040ですが、一つ使いにくい点があります。それはコントローラがMACH3で制御されることを想定しているというところです。
MACH3はすでに何年も前に購入して持っておりますので、それを使えばいいのですが、MACH3はパラレルポートが必要です。またWindows7以降ではうまくうごかないことがあるのです。
MACH3のパラレルポート経由の制御は独特でして、昔風に言えばハードウェアを直接叩いています。パラレルポートをパラレルポートとして使うのではなく、単にピン数の多い入出力ポートとして使っているのです。よって、先っちょにプリンタがつながることのみを想定したようなUSBパラレル変換ケーブルでは全く動きません。多少の例外はありますが、基本的に本体にパラレルポートが必要なのです。ということで、最も安定に使えるシステムはWindowsXPが動作しているデスクトップPCあたりになってしまいます。
実際当工房のレーザ加工機改の制御はXPマシンで行っております。
このような使いにくさを解消する方法はいくつか考えられます。その中で私がまずやったのはこのCNC3040のコントローラをGRBL経由で動かすことです。GRBLの出力をMACH3の出力と同じになるように配線レイアウトを調べて接続することで動くものができました。GRBLはArduino経由で動かしますのでPC側に必要なポートはUSBです。またコントローラソフトも複数から選択でき、もちろんWindows10で問題なく動きます。つまりMACH3が持つOSとハードウェアの制限をいずれも解消することができるのです。
が、GRBLは私にはいまいち使いにくいように思われます。やっぱ長年使ってきたMACH3のほうがいいのであります。
ということで、今回は別のアプローチをすることにしました。
それがこちら、

このボードを使うことでMACH3をUSB経由で動かすことができるらしいのです。
MACH3のハードソフトの制限はずっと前から世界中で問題視されてきましたのですでにソリューションはあり、この手のボードは何種類も発売されています。
その中から、みら太な日々らしく最も安いものを購入しました。それでも4000円以上したんですよ。今見たら2000円くらいまで下がってますが(笑

ま、放置していた私が悪いので値段のことはおいといて、つくっていきたいと思います。

ボードにはずらりとターミナルが並んでいます。

付属のディスクには例によってあまり詳しくない説明があります。マニュアル自体はほとんどソフトのインストールと設定のみで、ハードウェアについてはこの接続図と、

もう少し具体的なポート名つきの接続図があるだけです。
まあこんだけあれば十分なわけですが。

これらの情報から分かったことは、このコントローラは後段にモータドライバとリミットスイッチ、スピンドルを回すためのインバータ、そしてマニュアルコントロール用のいわゆる手パが接続されることが期待されているということです。つまり、本来のMACH3出力であるパラレルポート(とパラレルケーブル)接続に対応したコントロールBOXと接続することは期待されていないということです。

これはどういうことか、もう少し詳しく見ます。
従来のパラレルポート接続はPCのセントロニクス規格に基づくロジック出力ですから電圧は5Vで、取り出せる電流も微々たるものです。よってそれに対応するコントロールボックスも入出力は5Vレベルになっています。ので私の手元にあるコントロールBOXもそうなっています。したがってGRBLの出力を行うハードウェアであるArduinoの5Vロジック入出力をそのままつなぐことができたのです。

一方今回のボードを見てみますと、モータドライバへの出力を行っているこの部分は5V系のようです。

が、リミットスイッチが接続されるこちら側は24Vになっています。

これは面倒です。
CNC3040のスピンドルの回転速度制御はコントローラと一体になっており、モータには二本線が入ってますので、おそらくDCブラシモータがついていてPWM制御と思われます。
一方このボードは後段にインバータが接続される、つまりスピンドルがACモータであることが期待されており、インバータの周波数制御に0-10Vの電圧が使われるようなのです。
私はインバータ触ったことがないのでよくわからんのですが、オムロンのwebページを見てみますと「アナログ制御」の項目に「インバータの設定周波数指令をアナログ信号で行うこと。アナログ信号:0-5V, 0-10V, 4-20mAなどの連続的な信号」という記載がありますのでおそらくこれでしょう。
そういいつつも、スイッチ回りは単にプルアップポートをGNDに落とすだけなので電圧は関係なさそうであります。インバータ繋ぎませんのでこのスイッチポート(上の図のI1-4)が5Vで動けば直結できます。
ということで調べてみましたところ…..残念ですが10V以上かけてやらないとスイッチ状態の変化をUSB側に出力してくれませんでした。
ということで、結論は「このまま直接つなぐことはできない」です。
少なくともスイッチポートに10V以上の電圧をかけてやる必要があり、またコントローラBOXとの間に5V-10V(以上)の電圧変換回路を追加してやる必要があります。
もちろん手元のコントローラBOX使わずに、このボードにモータドライバとリミットスイッチを直接接続すれば簡単なんですが、せっかくあるコントロールBOX使わないのももったいないですよね。ということでこの部分を作ることにしました。

まずは部品集め。必要なものがすべて手元にあることはわかっておりますので持ってくるだけです。

こちらは昇圧DCDCコンバータ。USBの5Vを10V以上に持ち上げます。

このボードほんに便利です。効率は大したことないですが、なんといってもUSBや乾電池レベルから簡単に30Vまでの電圧を得ることができます。
こちら

一枚50円もしません。持っといて損はないです。

接続を確認するためには、以前作ったこのGRBL変換ボックスを使います。これとこの自分の投稿記事を参考にすれば接続を間違うことはないでしょう。

箱はこのあたりで。
パラレルコネクタも買い置きを出してレイアウトしてみます。電圧変換基板は小さくまとめられると思いますのでどっか隙間に入るでしょう。

ケースはカホパーツのジャンク市で入手したものです。GRBL変換BOXにも同じシリーズのものを使いました。今回のボードは一回り大きいものを使います。

ディスクには必要なソフトが入っていますので、それをインストールしていきます。

なんとこのディスクMACH3が入ってるんですよ。いやいかんでしょこれは。
もちろん海賊版、つか不法コピー品ですが何の記載もありません。

インストールのガイドには「ライセンスキーをインストールフォルダに置け」という指示と共に、ライセンスキーファイルも同梱されています。いかんでしょ。

とかおもいつつインストールを終了するといきなりこれ。ちなみにOSはwindows10です。

このまま再起動を繰り返してどうにもなりません。MACH3とwindows10の相性がここまで悪いとは。
おそらく前述した「ハードウェアを直接叩きに行くドライバ」が悪さをしているものと思われます。あとから読んだらインストールガイドには「このドライバ入れるなよ」と書いてありました(笑

結局こうなりました。しゃーない。

気を取り直してWindows7マシンにインストールします。PCはいくらでもあるのです。この程度じゃ何のダメージもありません。

で、そのドライバを入れない代わりに、USB経由でボードをコントロールするためのプラグインが入ってました。なるほど。プラグイン経由でUSB側に流すんですね。仮想パラレルポート的なドライバを使うのかと思ってました。

接続するとあっさり認識。

詳しくテストしていきます。

MACH3起動します。
前述の違法ライセンスキーファイルですが、こういうのもなんですがよくできています。
MACH3はライセンスキーファイルを正しくインストールすると購入時に登録する名前がタイトルバーに表示されるんですが、このインストールキーファイルでは何も表示されません。いかんでしょこれは。

Diagnostics画面でスイッチの認識を確認します。

状態変化が認識されるとこの辺に変化が出るはずです。

適当なポートをGNDに落とします。

すると、ピン設定に従って信号が検出されます。

インストールマニュアル通りの設定だとHomeスイッチは全部並列接続ですのでM1~M4が全部ONします。つまり上の写真は正常な反応ということです。

同様にリミットスイッチ側も正常であることを確認します。

問題は、この検出が約10V以上の入力電圧を必要とすることです。
ということで件の昇圧DCDC基板が必要になるのです。

とにかく、ボードの動作確認ができましたのでケースに組み込むべく加工を行います。

実にシンプルなケースです。

まずUSBコネクタを出す穴から。ボードをレイアウトしておおよその位置を出してそこに穴開けます。

もう一段大きくして、

ハンドニブラで、

四角く整えます。

ここで改めてボードを当てて位置を確認し、切り広げる方向を微調整しながら穴を大きくします。切り口を黒マジックで塗ると見栄えが良くなります。豆知識。

ばっちり。

内側の様子。

ボードの位置を決めたら、ねじ止め用の穴を開けていきます。オートポンチで穴位置出して、

3.5φ穴開けておきます。これでボード側の加工は終わり。

続いて反対側にパラレルポート取り付け用の大穴を開けます。手順は同じ。

ほんとはきれいな等脚台形の穴開けて内側からコネクタを覗かせたいところですが、そんな加工技術は持ち合わせておりません。汚い切り口を隠すように外側からコネクタをかぶせます。

実際の切り口はこんなに汚いのです(笑

穴加工が終わりましたので、ボードとコネクタを固定して配線をしていきます。

ねじ止めして、

ゴム足貼り付けます。

GRBL変換ボックスより一回り大きいです。

そのGRBL変換ボックスを開けて、配線を確認します。
GRBL変換ボックスのArduino側のポートレイアウトはここにありますので、これと同じポートを同じコネクタ位置にはんだ付けしていけばいいわけです。

パラレルコネクタに、

リード線はんだ付けしていきます。

熱収縮チューブを忘れずに。

三連休の中日をまったりと過ごしております。
ハンダ付けは順調に終了。

お次、電圧変換回路です。
汚くて申し訳ないですが、無いよりましな回路図はこちら。ちなみに最終的に作り直してもっと簡単なものにしています。それは後ほど。
信号はCNC3040→PCへの一方通行ですので簡単な回路です。5Vでプルアップしたベース電圧がCNC側のスイッチオンでGNDレベルに落ちると変換ボード側の12Vが遮断されてポートがハイレベルになります。

作っていきます。

トランジスタはみんな大好きC1815.

電流制限抵抗は1kくらいで。

XYZ軸用に3チャンネル作ります。

配線して、

CNC3040側の接続。なんや分からんと思いますが(笑

変換ボード側も接続していきます。

とりあえず必要なところだけつなぎます。

動作テスト。

まずモータが回るか確認。こちらは順調。電圧変換も何もないですから動くはずであります。
が、リミットスイッチをどれも認識しません。あれれであります。

実はここまでコントローラBOX側の回路を見ておりませんでした(笑
舐めてはいかんですね。ちゃんと確認しましょう。といいつつ、おそらくこれでいいだろうという回路図があるだけで、ほんとに手元のBOXのものであるかどうかは実はわかってないんです(笑

で、改めて回路図を見ていますといくつか間違いに気がつきました。
いや正確には間違いではないのですが、余計なお世話をしていました。
CNC3040BOX側のモータドライバに接続されたポートはすべて5Vでプルアップされています。

一方で変換ボード側にもこんな感じでプルアップをしておりました。
この抵抗はいらないです。あっても問題はないですが、両方でプルアップする必要はないですし、5Vといいつつ両者の電圧には微妙に違いがありますのでぶつかるのは避けたほうがリスク低減になります。ということで、これは外すことに。

それよりも問題はリミットスイッチです。単純にフォトインタラプタがつながっているだけなのになんで動かないのかな。
改めてBOX単体での動作確認をしてみます。
ピンの電圧をモニタしながら、フォトインタラプタの間に邪魔板を入れると、このようにちゃんとハイレベルになります。

で、邪魔板を外すとこのようにちゃんとローレベルに落ちます…..ん?
いやいや確かに電圧は大きく落ちるのですが、なぜか0.8Vも残ってます。高すぎじゃないですか?C1815のベースに0.8Vも加えたら完全にONします。ということは、C1815のベースに印可される電圧は、リミットスイッチ遮断時5.28V(C1815はON)、リミットスイッチ非遮断時0.82V(C1815はやっぱりON)ということで、状態変化しないじゃないですか。

なんで0.8Vも残っているのかはわかりません。が、これを何とかしないとリミットスイッチの変化が検出できません。
まずは何とか動かしたいということで、原因究明はさておいて対策のみやることにしました。この0.8Vをもう少しだけ低くしてやればいいだけですので、直列にダイオードを入れます。信号は一方通行ですのでこれで十分です。

ダイオードは必ずVfを持っていて、単純に言えばVf以下ではONしません。このVfはPN接合面のバンドギャップに起因するものですので印可する電圧にかかわらず降下する電圧は一定です。シリコンダイオードだとだいたい0.6V下がります。ので、これを入れればよいはずです。

電圧変換回路を作り直します。
それと、CNC3040BOXのスイッチポートも全部プルアップされていることが分かりましたのでこの部分も不要ですので外します。
結局回路はずいぶんと簡単になって、こうなります。

では作っていきます。
回路が簡単になったので、プローブ用も含めて4チャンネル分を小さな基板に乗せることにしました。

ハンダ付けしたものを接続して、

配線していきます。

動作確認したところばっちり3軸ともスイッチを認識しました。

原点復帰動作を動画で。

蓋を閉めて変換BOXの完成です。

テスト切削をしてみます。

データはfusion360で作っています。作り方はネット上にたくさん情報がありますのでそちらを参考にしてください。とても簡単です。例えばこのあたりが分かりやすいです。

100均のMDFを削ってみます。

動画で。

出来ました。5分くらい。

ええ感じであります。

外します。

狙い通りの寸法で上がっております。

素晴らしいです。
レーザ加工機に続いてCNCもMACH3コントロール化で来ましたので非常に使いやすくなりました。

ということで、終始ガス冷却ペルチェ方式霧箱とは関係ない話が続きましたが、ガス冷却ペルチェ方式霧箱に必要なパーツを作るための活動ということでガス冷却ペルチェ方式霧箱その5として投稿しておきます。

コメント

  1. sbin より:

    こんにちは、スマートに作成されて流石ですね。皆さん同じようにTrで組むのですね。私のにも入っています。

    ところで MDF はどうやって工程されているのでしょうか?気になりました。

  2. みら太/mirata より:

    sbinさん遅くなってすみません。
    MDFは両面テープで固定です。マスキングテープは気休めです。
    100均のやつですが問題なく使えています

  3. sbin より:

    そうでしたか、ありがとうございます。
    両面テープが隠れていたのですね。気楽に切れて良さそうです。試してみます。
    確かに中国ボード技術はすごいですね。オリジナルは何処なのか確認が必要なこともありました。
    安くなっていたので買ってポチしておきました。そろそろJW_cadから移行を考えます。Sketchupで書いていたらFusion360が使えなくなってしまいました。

    • みら太/mirata より:

      私は2Dは依然としてJW_CAD一本でやってます。DraftSightも入れてますが、fusionで吐いたdxfをJW_CADで扱うための形式に変更するためだけにしか使ってません。
      あ、fusion360はスケッチアップより遥かに遥かにできることのレベルが高いので是非

  4. みら太/mirata より:

    sbinさん、両面は外れることがありますので要注意です。
    東電工なんかのちゃんとしたやつを使うと加工が終わっても取れずに苦労し、100均で済ますと加工中に飛ぶという難しさが(笑

  5. sbin より:

    百均の厚手の両面テープでやったらばっちりでした。取れなくて苦労しました(笑)。丁度、3Dの造形物を外すときのスクレーバーがあったので使ったら外れました。とても良い感じです。

    ちょっと加工するときは JW_cad で困らないので、 Fusionは触らずでした。少し練習してみます。