Sponsored Contents

diyの最新記事

Image credit:

悪戦苦闘を乗り越え、中華CNCついに動く。長期間を要した犯人探しと対策の経緯をお伝えします

なぜか「iPhone」なサンプルデータで動作確認。そして犯人は2人でした

宮里圭介 (Keisuke Miyasato)
2017年9月29日, 午後06:00 in Diy
182 シェア
71
45
0
66

連載

注目記事

iPhone Xのナゾを実機でズバっと解決 カメラ機能はすべての面でワンランク上

iPhone Xのナゾを実機でズバっと解決 カメラ機能はすべての面でワンランク上

View

人気記事


ここ最近、数回にわたってあれやこれやとしてきた中華CNC。なんとか組みあがったところまではいきましたが、動作確認をしたところ途中で止まることが判明しました。

悪い期待を裏切らないというか、予想通りというか......まー、最初から問題なく動くとは考えていませんでしたけどね。ということで原因を探りつつ、対策していきました。

基本的な使い方を学びつつ動作確認へ

多少のトラブルがありつつも、一応形になった中華CNC。あとは電源を入れて動かして、無事に動作するのを見届ければ完成となります。......まともに動いていれば前回の最後で動作確認して終わりなわけで、そうしていないってことで多少は予想ついてるかと思いますが、ええ、まともに動きませんでした

その話は後ほどするとして、まずは動作の大ざっぱな流れを紹介しておきます。簡単に言うと、デザイン用のソフトを使ってデータを作成、それをGコードで保存、コントロール用のソフトを使って中華CNCへGコード送信、中華CNCがGコードに従って動く、といったような流れです。ちょうどいい図が付属していたので参考にどうぞ(中国語ですが)。


▲説明が中国語なので、雰囲気で。大体の流れはなんとなくわかるかと。ポイントは緑色で囲まれたところです


中華CNCへGコードを送るのに使うのが、「grblControl」というソフト。このソフトは、組み立てマニュアルと一緒に8cm CDに収められていました。また、動作確認に使えるサンプルデータも収録されていたので、ありがたく利用させてもらうことにします。ということで、さっそくこのソフトを動かそうとしたのですが、ファイル名を見てダブルクリックする手が止まりました。


▲ファイルはとくに圧縮などされておらず、そのまま入ってました。コピーすればいいだけなのは楽ですが、二重拡張子とは


「grblControl.exe.exe」ときましたか。二重拡張子なんてウィルスに感染している、もしくは偽装ファイルという印象しかないため、これを躊躇なくダブルクリックできるのはよほど豪胆な人か、もしくは何も考えていない人しかいないのでは......。

不安しかないので、いくつかのウィルスチェックソフトを使って確認してしまいました。結果はシロ。あまり信用できないものの、とりあえずこのソフトを使うことにします。

動作確認の基本は動くとわかっている組み合わせで使うことなので、ここでいきなり代替に手を出すのはいい手とは思えないからです。なにか専用のチューニングやら改造やらが加えられてる可能性もありますからね。動作確認さえ終われば、本家から最新版をダウンロードして使うのも、「bCNC」など別のソフトを使うのも自由です。

ちなみに、PCと中華CNCとはUSB接続が必要です。USB接続ではあるのですが、実際に行なわれるのはシリアル通信。中華CNCの基板には「CH340G」というUSBシリアルチップが載っていて、これを使ってArduinoとの通信を実現しています。

このチップ、別途ドライバーが必要となるので、これもインストールしておきましょう。このドライバーも8cm CDに収録されていましたが、インストーラーだとウィルスが怖かったので、ダウンロードし直して使いました


▲ウィルスが怖いのでドライバーだけはダウンロードしてインストールしました。もちろん、ウィルスチェックは忘れずに


「grblControl」の使い方は「CNC使用指南.pdf」というファイルで解説されてるのですが、中国語なので微妙にわかるようなわからないような......。ということで、動作確認で必要な基本部分だけ解説しておきます。


▲最初の動作確認で主に使うのはソフトの右側。XYZ軸の動作確認、スピンドルモーターの動作などを操作します


まず最初に使うのは、前後左右ボタン(1)と昇降ボタン(2)、そしてスピンドルモーターの操作ボタン(3)。ステップ設定はPresetsボタン(4)から変更できます。「1」や「0.1」くらいの小さなものにしてから、前後左右、昇降ボタンで思っている通りにスピンドルモーターやテーブルが動くかを確認するといいでしょう。
XY軸が逆に動くようなら、基板と接続してるステッピングモーターの配線が逆になっているので、入れ替えてやりましょう(私はまんまと逆になってました)。

続いてスピンドルモーターの回転をチェック。(3)の右にあるボタンをクリックして回転、もう一度クリックして止まることを確認します。また、スライダーを動かすと600と1000の2段階に切り替えられました。モーターの回転数が変わるかもチェックしておくといいでしょう。

ここまで動作確認ができたら基本部分は大丈夫そうなので、続いてサンプルデータを使った切削テストをしてみましょう。


▲データを読み込むと、画面に切削する図形が表示されます。今回はサンプルにあった「iPhone」という文字を......って、なんでiPhoneなんだか


データの読み込みは、下部にあるOpenボタンから。データを読み込むと、切削する図形とゼロ点となる部分(5)が表示されます。先ほどの前後左右ボタンと昇降ボタンを使って刃先を移動し、ゼロ点設定ボタン(6)を押すと、その位置がゼロ点として利用されるようになります(左がXY軸、右がZ軸)。
刃先がギリギリ材料面にくるよう調節しましょう。


▲刃先が材料面ギリギリになるように少しずつ下ろしていきます。材料に食い込まないように注意


これで準備万端。最後に下部のSendボタンを押せば切削が始まります。最後まできれいに切削できれば成功なのですが、開始直後少し削ったところで動作が止まってしまいました。Consoleの表示を見ると「Serial port error 11」となっていて、操作不能。
中華CNCとPCとの接続が切れてしまい、コントロールできない状況です。別のPCと接続して同じように試してみたのですが、止まる場所こそ違っても、やはり途中で止まってしまいます。


▲エラーや現在の状況はConsoleに表示されます。今回は通信が途切れるというか、仮想シリアルポートを見失ってしまっているため、こんなエラーに


こんなときはとりあえず問題が簡潔となるよう、ひとつずつ段階を踏んで確認していきます。
まず、先の動作確認でも行ったステッピングモーターによる座標移動です。ステップを大きくして前後左右、昇降など可能な限り動かしてみましたが、特に問題はありませんでした。続いてスピンドルモーターです。実はこれが問題で、短時間でのオン/オフ動作は問題なかったのですが、10秒ほど連続して動かすテストをしてみたところ、エラーが出てPCとの通信が途切れてしまいました。

せっかくなので、以前組み立てたオシロスコープでスピンドルモータの端子部分の波形を見てみると、回転中結構な頻度で電圧幅が大きく、短時間のインパルス的なノイズが出ていることがわかりました。これが原因かもしれません。


▲スピンドルモーターのノイズがどのくらいなのか調べるため、モーターの根元にプローブをセット


▲こんな感じの大きなノイズが結構な頻度で発生していました。モーターですし、ノイズが出るのはしょうがないところですが


試しにスピンドルモーターのケーブルを外し、モーターが回転しないようにしてみたところ、最後まで問題なく前後左右・昇降動作が可能でした。スピンドルモーターさえ動かさなければ問題ないわけで、先ほどのノイズが原因という可能性がさらに高まります。

スピンドルモーターを動かすとPCとの接続が切れる問題を解決する

モーターはコイルをぶん回してますし、激しく電力を消費する部分でもあるので、ノイズ源となりやすい部分です。とはいえ、そういう部分であるからこそ、通常はしっかりとした対策が取られているものなんですが......まー、安モノですしね、これ。ということで、ノイズ対策としてできそうなことをいくつか試してみました。

1.スピンドルモーターから出るノイズを低減する

最も根本的な部分です。モーターからのノイズは電源ラインを通って基板へと影響しますので、モーターの端子部分でノイズが食い止められれば影響が小さくなるはず。手軽なノイズ対策としてよくあるのが、0.1μFくらいの小さいコンデンサーを入れることです。端子間だけでなく、モーターケース部とも接続することで効果を高めることができます。


▲端子とモーターケース、端子間の合計3か所に0.1μFのコンデンサーを入れました。容量は手元にあったもので適当です


コンデンサーを入れたところ予想通り効果が高く、スピンドルモーターを回転させて10秒でエラーが起こる、なんてことはなくなりました。切削テストも問題なくパスできることがほとんど。ただ、3回切削したところでエラーが起こってしまいました。完璧ではないにしても、かなりの進歩。効果が高い対策といえるでしょう。


2.基板のシールドを強化する

こちらはスピンドルモーターの電源ラインからくるものではなく、空間を飛んでくるノイズ対策です。制御基板のGND層やらパターンで運悪く受信してしまう電磁波が多少なりとも防げれば動作が安定するのではないか、といった狙いがあります。

具体的には、0.3mmのパンチングアルミ板を基板と本体フレームの間に挟みました。なぜこの材料かといえば、単純に材料箱をあさったら出てきたから。パンチングである必要も、アルミである必要も、0.3mmである必要もないので、適当な金属板を入れればいいかと思います。


▲厚紙にアルミ板を貼ってカッターで切断。ポンチでねじ用の穴をあけたという、超簡単なものです


注意したいのは、0.3mmと薄いとすぐに曲がり、基板上の部品とショートしてしまうこと。なので今回は適当な厚紙も一緒に挟んでいます。ちなみに、これを入れたからといってエラーに対する効果は特にありませんでした。インパルス的なノイズを見ると不安になる人の精神安定剤みたいなもの、とでも思ってください。


3.USBケーブルを交換する

付属のUSBケーブルは太目でフェライトコアまでついてるので、信頼しきってました。見た目でいえば、これ以上ノイズに強そうなケーブルはそうそうないのですが。

一応交換してみるかと、「多重シールドが信号品質を維持」「金メッキコネクタがより良いパフォーマンスと耐久性を実現」という売り文句が気になった「Amazonベーシック USB2.0ケーブル 1.8m Aオス-miniBオス 7GUK」を買って使ってみたところ......

エラーが消えました。マジかよ。


▲付属のケーブルは、中の線が28AWG/24AWGという標準的なUSBケーブルです。ケーブルが太くて固めなのでシールドもしっかりしてそうですし、フェライトコアまでついてるのに


目を疑いましたね。
ケーブルの効果を見るため、わざわざスピンドルモーターのコンデンサーを外してまでテストしたのですが、これがビックリするほどエラーが出ません。一応交換してみるか、というくらい軽い気持ちだったのですが、「これだけでいいじゃん」となるとは......。

試しに付属ケーブルに戻してみましたが、早々にエラーが出て止まります。USBケーブル経由で運ばれたノイズがPC側に影響を与えていた、と考えるのが妥当そうですね。怖っ。

実は、さらに次の手としてコントロール基板のGNDをフレームに落とすというのを考えていました。現状の基板はフレームに固定する穴が浮いていて、GNDに接続されていません。つまり、フレームと基板上のGNDは直接的には接続されていない設計です。


▲透かして見るとわかりますが、固定ねじの穴がある部分にはGND層がありません。基板のGNDはフレームと直には接続されないようになっています


ただしこれは良し悪しがあって、基板のGND強化にはつながりますが、フレームを伝って入ってくるノイズに影響される可能性があります。接続した方がいいか悪いかはやってみないとわかりません。
ノイズが一向に減らないのであれば試してみる価値はあるだろうと考えていたわけですが、わざわざこういった設計になっているってことは、接続しない方がいいという設計思想なのでしょう。たぶん、ですけど。

すでに、大幅に状況を改善できる「スピンドルモーターへのコンデンサー追加」と、「USBケーブルの交換」という2つの対策ができている以上、これは試さなくてもいいだろうということで保留しました。もしなにか問題が起こった場合は、追加で試してみたいと思います。

ということで今回まともに動かなかった原因は、主犯がスピンドルモーター共犯がUSBケーブルという2人組だったようです。サンプル以上に長い切削は試していませんが、今のところ問題ないようなので大丈夫でしょう。

サンプルがまともに削れるようになりました

まとめて書いてみると割とあっけないのですが、コントロールソフトが悪いんじゃないかとか、制御基板のファームを変えてみるべきではとか、そもそもまともに動かない組み合わせではないのかとか、電源アダプターが怪しいのではないかとか、散々悩んで時間がかかってしまいました。

自分のスキル不足もあり、ここにたどり着くまで結構遠回りを......。最悪、手持ちのArduinoにCNCシールドを追加して、制御基板の入れ替えまで考えてましたしね。

まー、動いてしまえばこっちのもの。オッケーです。

ということで見てくださいよ、無事にサンプルが削れたこのMDF板を!


▲深さが浅いので見づらいですが、しっかりと掘れてることが確認できました。左下の「P」で止まってるのとか、無数の穴は失敗の跡。


普通に動くって、すばらしいですね。なお、周囲を見ると失敗した跡や穴が開いてたりしますが、これらは通信エラーで止まっていた時の痕跡です。通信できなくなるとPCからコントロールが効かなくなるため、電源を引っこ抜いて止めるしかなくなるのが辛かったです。いつ壊れるかひやひやしていたもので。

制御用のArduinoで使われているGrblについてちょっと調べていたら、使われていない機能がいっぱいあるようです。Grbl 1.1の機能を斜め読みしてみたら、範囲を超えた移動を制限できるリミットスイッチが付けられたり、動作のリセットや一時停止スイッチが付けられたりといったように、中華CNCキットを組み立てただけでは使えない機能を追加できるのが非常に魅力的です。


▲こんな感じにスイッチやノイズフィルタを配線することで、リミットスイッチが作れます。範囲外まで動かしてCNCを壊してしまう前に付けたい


ただし注意したいのは、「Known Issues」として、手元の中華CNCでも使われているUSBシリアルチップ「CH340G」だとエラーが発生する問題があるとか書かれていること。......あれ?これってもしかして、今回モロに苦労していたことなんじゃ......。これとは別の問題としてエラーが出るとなると、また悩みどころになるんですけどね。


ということで、ひとまず動作まではできたということで、今回はこのあたりで。
まだレーザーの方に手を付けていませんし、Grblのバージョンを1.1に上げたい(今は0.9)、リミットスイッチを設置したい、Vカッター(今の刃先)ではなくエンドミルで削ってみたい、サンプルじゃなくて自分でモデル作りたい、配線を見直したい、切削で基板作ってみたい、アクリルやアルミにチャレンジしてみたいなどなど、やりたいことはいっぱいあります。
CNCを使った工作なんかもいいですよね(本来これが目的のはずですけど)。

とまー、夢は広がってますが、取り急ぎやらなくてはならないのは、この部分の修復です。


▲元々出力のズレなんかはありましたが、なんか気づくと割れてました。アクリサンデーがいいらしいので、あとで接着します


......それほどきつく締めていた覚えはないですが、モーターの振動などもあって割れてきちゃったようで。積層プリントの弱点っぽいですね。ちょっと、あとで接着剤流し込んで直しておきます。


関連キーワード: diy
182 シェア
71
45
0
66

Sponsored Contents