2017年06月25日

ステッピングモーター・ドライバ


コントローラには、ステッピングモーターを制御する A4988 というIC を載せたモジュールが搭載されている。これがどういうものなのか、調べてみることに。使うだけでもある程度は知っておかないとならないが、コントローラを自作したいと思っているわけで、まじめに調べておかないとならない。

    基本的なことを書くと、STEP , DIR の2つの信号で制御する。DIR で方向を指定して STEP で最小単位回す。
    最小単位は、1/1 フルステップ 〜 1/16 マイクロステップ で設定が出来るようになっている。
    仮に 1/16 マイクロステップで 100 RPM で回すとすると CNC2418 では 200mm/分の速度。 5k Hz で STEP を ON/OFF しないといけない。また物体には質量があるので、いきなり 100 RPM で回すことはできない。加速度に上限があるわけだ。

    A4988 モジュールと互換性があるものとして、DRV8825 を採用したものがある。こちらの方が高機能で 1/32 マイクロステップが使え、より電流を流せる。が、それだけであるようだ。ここでは、言及しないことにする。

まずは、電源関係。コントローラ本体に電源回路が載っていて、XL4015 というDC/DCコンICで 12V 5A までの電力を連続して供給可能。 IC自体 の電流制限は 7A --- 瞬間的には 7A になるのだったか?忘れてしまった。

    ちなみに、aliexpress などで XL4005 のモジュールが安く手に入る。これも 5A なので、自作する場合に使えそう。 後で調べたら XL4015 のモジュールも 安い -- $1 ちょっと。違いは入力電圧範囲が少し。スイッチング周波数が少し。

使う上で、個々のステッピングモーターに供給する電流は、どうなるのか? まずはそこから。

A4988 というのは、ステッピングモーターにある2つのコイルを ON/OFF するだけのものではなく、PWM によって流す電流を制御している。それによって 1/16 マイクロステップでの動作をサポートしているのだ。データシートを見ると、最大電流を設定することが出来て、モジュール上では半固定抵抗で調整する。2個コイルがあるわけで、ステッピングモーター1つあたり 最大電流x2 ということになるのだが、実際は 100% + 100% という状態にはならない。ステップによってどれぐらい電流を流すか データシートに記載されている。

どうやら、フルステップの 70.701 % + 70.701 % = 141.42 % が最大。マイクロステップもフルステップの状態は通るので、最大は 141.42 % ということに。また、フルステップでは、常に 141.42 % であり、マイクロステップでは、100% 〜 141.42 % ということになるようだ。

    マイクロステップなどのモードの設定については、CNC SHILD などでは普通、ジャンパで行う。だが、付属のコントローラにはジャンパがない。どう設定しているのか要確認。

ステッピングモーターを動かしていない時でもこれだけの電流を流すのだ。5A しか供給できないのだから、電流制限は 1.18A 以下にしなければならない。余裕を見て 1A にしておく方が無難かも。

    ステッピングモーターは、17HS1352-P4130 というモデル。モーター厚みは 34mm で、あまりパワーがありそうな感じではない。
    ・Step Angle: 1.8 Degree
    ・Rated Current 1.33A
    ・Rated Voltage: 12V - 24V DC
    ・Holding Torque: 1.26N.m
    ・Shaft Radial force: 2.2Kg/cm

    必要なトルクさえあれば良いわけだし、別に定格まで電流を流さなくとも良いだろう。とりあえず 1A ということに。

    具体的な電流制限だが、Vref に入力する電圧と、電流値を検出する抵抗の組み合わせで行う。計算式は、
     Vref = 8 x 最大電流 x 抵抗値
    なのだが、 モジュールの抵抗値には 50 mΩ と 68 mΩ の 2 通りがあるそうだ。めんどくさいが確かめておいた方が良さそうだ。--- USB 顕微鏡で見てみたところ 付属のもの、別途入手したもの共に R10 - 100mΩであった。
    0.1 Ωで 1A であれば、Vref が 0.8V になるように調整すれば良い。

    そして新たな発見。片方に URL が記載されていた。
     ・http://reprap.org/wiki/StepStick
    これでパターンの詳細と回路図が入手できた。以下がオリジナルである。



さて、動かさなくても 1A x 1.4142 x 3 = 4.25A -- 51W も必要なのか? 静止状態では、そこまでは必要ないらしい。だが、制御可能なのかどうか?

データーシートを見ると ENABLE という信号線がある。これは、FET のみの制御で FET を OFF にしてモーターに電流を流さないというもの。モジュールにも信号線が出ていて、OR 接続で Arduino の D8 -- Stepper Enable/Disable に接続されている。OFF にしてしまうわけで CNC としてはどうなんだろう? トルクがかかっていなくて、動いてしまう可能性があるわけで、使えないんじゃないか?

    GRBL 1.1 ではじめて sleep mode が付いた。スピンドルを止めて、EN を OFF にしてしまう。0.9 では、この機能が使えないわけだが、使えたとして、ちゃんと再開できるのか? 

ドライバICによっては、自動カレントダウン機能を持っているものがある。
 ・https://www.orientalmotor.co.jp/tech/glossary/sa06/
たとえば、静止状態では、50% 電力を減らすというものがある。

もし使えるポートがあるならば、抵抗を1本通して Vref に接続し、Vrefの電圧を上げ下げすることで、カレントダウン機能を実現できるのだが... 残念ながら、Arduino のポートは余っていない。そのうえ A4988 モジュールにも Vref ピンは出ていない。モジュールを改造すれば、対応可能かも知れない。

    入手した回路図を見ると SLEEP は、プルアップされている。パターンカットして SLEEP の端子を別目的に使えそうだ。おそらく、 Vref を接続するのが良さそう。Vref は、半固定抵抗に接続されているので、そこからジャンパ可能。ただし、CNC SHELD などでは、RESET と SLEEP が接続されている。これもパターンカットしたうえで、RESET もプルアップする。これで Vref が外に引き出せたことになった。ポートを 抵抗を介して Vref に接続するとして、Z で通常、L で カレントダウンになるが、抵抗値がまた微妙。モジュールによって変わる上に、5V 系と 3.3V 系で共用できない。なかなかにめんどくさい。DAC を直接接続してしまいたいような ...

    あと気が付いたのだが、ROSC というピン。後で入手したものは 0Ωで GND に接続されているが、付属のものは、153 -- 15kΩである。さらに、入手したオリジナルの回路図では、10kΩ。この設定の違いで動作が微妙に違うらしい。



ところで、常時 50W 〜 60W で発熱するようなものであることが分かったわけである。スピンドルは、もっと発熱するが止めるという手立てがある。常時というのは、やはり厳しい。

こんなものを、密閉した空間に置いても良いのかどうか? しかも、切りくずと共にである。切りくずが宙に舞うってのも普通にあるらしいし。

ちょっと怖くなってきた。防音箱で動作させるのは、考え直さないといけないようだ。



付属 コントローラについて。



全体はこんな正方形。裏のレールに取り付けるのだが、どの方向で取り付けても良いようだ。電源回路は XL4015 を採用した 12V 5A が右下。A4988 モジュールの下に 3端子レギュレータによる 5V 電源がある。



コントローラには、WOODPEKER CNC GRBL0.9 とシルクが入っている。LED がいくつかあって、電源が正常か?また通信できているかいるか?確認できるようになっている。

下部には、ピンヘッダが付いている。Xen 等は、リミットスイッチを接続するためのもの。それに加えて(このコントローラでは)未使用のピンが出力されている。未使用とは言っても、だいたいは役割が割り当てられている。完全に未使用なのは、A6,A7 ぐらい。



スピンドルは PWM 制御される。ドライバには、IRF540NS というパワーMOSFET が使われている。VDSS = 100V. RDS(on) = 44mΩ. ID = 33A だそうで、オーバスペック。ただまともに動かすには、ゲートに 4.5V ぐらいはかけないといけない。3.3V 系でコントローラを自作する場合、ドライバを別途さがさないと。

    フルブリッジのドライバ IC として L298N というのがある。2 ch あって 46V 2A x2 まで。付属の AC アダプタは 24V 5.6A で ステッピングモータに 51W / 0.95 の電力を食われるとすると、 24V 3.2A ぐらいが スピンドルに回せる上限。2ch をパラレル接続すれば ... 使えるかも。で、例によって aliexpress では、かなり安いモジュールがある。

    スピンドルでは使えないが、参考までに安いフルブリッジのモジュールを探してみると。
     ・ L9110 12V 0.8A
     ・ MX1508 10V 1.5A (peak 2.5A)
    こういうのがある。いずれも 2ch 。模型用の DC モーターやスピーカーを駆動するのに使えそう。メモしておく。
    パワーMOSFET だと耐圧と 駆動電圧に比例関係があって、なかなか選択が難しい。とりあえず 耐圧 30V で 3.3V で駆動できるものとして FDD6670A とか。

リミットスイッチの接続

リミットスイッチは Y方向なら 前後の2つがあるわけで 、スイッチを2つ付けられるようになっている。が、信号線は1本で 単にパラレル。これを GND に落とすと リミットになったと認識する。ググってみたところでは、XY はリミットスイッチというよりは、ホームポジション検出のために使われているようだ。その目的では、フォトインタラプタを使うことが多いような感じ。
フォトインタラプタを使うには、抵抗が2つ必要。ひとつは発光側の電流制限抵抗で 220 Ω程度。もうひとつはフォトトランジスタに付けるもの。 エミッタ を接地して フルアップという接続例があったが、論理が逆になる。GRBL が対応しているのだろうか? 


実は、秋月で売っている KI1233 を使うと機械式スイッチと同じ論理になる。電流制限抵抗も内蔵されているので、+5V を接続するだけで良さそう。
これを使う方針で検討しようと思う。

Z軸については、いろいろな使い方をされている。エンドミル自体を スイッチとして使うやり方があるのだ。基板を作る場合など 基板が多少歪んでいても、heightmap を作成することで、掘りの深さを一定にすることができたり。この heightmap を作成するには、XY を格子状に動かして、高さを測定する。

ただ、ステッピングモーターは急には止まらない。Z軸が接触しても、わずかには行き過ぎる。材料を痛めたり、テーブルを痛めたりしそうである。その対策として、ばねが付いたものを考えてみた。

1) タクトスイッチの中のバネ。

タクトスイッチの中にお椀状のバネが入っている。中央がくぼんでいて、下にある接点と接触する構造である。これを取り出して、テーブルの上に置く。XY の原点が分かった後なら、どこに設置してもピンポイントで接触させることが出来るだろう。



タクトスイッチには、こういうタイプもある。テープで貼ってあるだけだから、接触させたい部分を切り抜くことで同じ目的に使えそうだ。

ただ、タクトスイッチは、ストロークというか、押せる距離が短い。0.1mm とか 0.2mm ではないか? 短すぎて用をなさない可能性がある。

2) Spring Test Probe



基板の冶具として使われるもので、テストピンというものがある。はんだ付けすることなく、スルーホールと接続する目的で使われるもの。ピンの中にスプリングが入っていて、ピンの先が動くようになっている。aliexpress で、P75-LM2, P75-B1 などをキーワードに検索するといろいろなタイプが見つかる。
どう使うのが良さそうか具体的イメージはないのだが、テーブルに突き刺して、エンドミル、あるいは ER11の縁やモーター と接触させるとか。エンドミルの代わりに ER11 に取り付けて ... というのもあるかも知れない。

とかいろいろ考えたのだが、根本的に誤解してことが1つ。Z のリミットは、あくまでリミットで 高さを検出するための端子は別にある。--- A5 probe 。付属のコントローラでも、同じはず。

 ・https://cnc-selfbuild.blogspot.jp/2016/05/cnc.html
GRBL にはホーミングサイクル機能というのがあって、右奥上に移動させて マシン原点(0,0,0)にする。これの設定項目が沢山あるようだ。それはともかく、上端を検出できるようにスイッチを設置したい。

 ・https://cnc-selfbuild.blogspot.jp/2016/05/cncz.html
プローブについてはこちら。aliexpress で、プローブ用のツールは確かに売っている (cnc Touch Plate で検索) 。売っているのはゴム足にプレートを付けたようなもの。まぁこういうもの自作するのも楽しいかも。

    良く分からないが、プレートをゴムじゃなくてバネで支えるようにしたものとかどうか? 形状はペットボトルのキャップに下からプレートを入れたような形。-- これは単なるイメージで、もっと背が低くて良いし、四角でもいい。底面とプレートを抑える縁の精度さえ出ていれば良いわけだから、木を削り出しても良さそうな。バネの入手の方が難しい。なんでもよければ、百均の木製せんたくばさみとか。

さて、porobe 以外の機能について、興味が出てきた。
 A0 Reset/Abort
 A1 Feed Hold
 A2 Cycle Start/Resume
 A3 Coolant Enable (出力)

たぶん A0 は、緊急停止ボタン。A1 はポーズボタン A2 は、それを再開するボタン。この中では、A0 だけはとりあえず付けたい。

ちなみに、D13 も出力されているが、スピンドルの回転方向。フルブリッジのドライバを使ったときだけ意味がある。あと、A4,A6,A7 は未使用。GRBL をソースからビルドすることにして、改造するなら、好きに使える。




もし電源が壊れたら? 

付属の AC アダプタは、PSE マークがないため、自己責任で使わないといけない。あまり考えたくないことだが、壊れることもあるかも知れない。また PSE マークがないわけで、人に譲るときに問題があるし、そもそも、そういうものを使いたくないという人もいるだろう。

とりあえず 同じものは売っているようだ。24V 5.62A で探すと 1つだけ見つかる。だが、壊れた時には買えないかも知れない。

で、どうするか?ノートPC あるいは 小型PC用の AC アダプタを2つ使うのが良いのではないか? これなら PSE マーク付きの入手もできるだろう。

ひとつは、ステッピングモータ+コントローラ用。12V 以上で 60W クラス(以上)ならなんでも良い。19V が多いと思われる。12V の場合 12V出力の DC/DC を通すわけだが、多分問題ない。で、スピンドル専用がひとつ。90W 以上で 24V というのがあればそれで良いが、19V でも良いのではないか? 2電源にするためには、パターンカットして、電源を1つ引くか、または、専用のモータードライバを用意するか。どちらにしても、ちょっとした工作は必要。

コントローラを設計する際に、考慮すべきことだろうとも思うのでメモしておく。


posted by すz at 02:21| Comment(0) | TrackBack(0) | CNC
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/180144749
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック