3Dプリンター(6)2015年11月09日

コントロールボードとモータードライバー

3Dプリンターの制御系をHackします。このブログでもいろいろ作成しているArduinoが制御マイコンになります。デジタルポートとアナログポートを使用します。

Arduinoとコントロールボード
RapRep 3Dプリンターのコントロールボードのセットです。内容はArduino mega2560 R3互換ボード、RAMPS1.4コントロールボード、A4988ステッピングモータードライバーがセットになっています。特にセットで購入する必要はありませんが、今回はセットのほうが割安になっていました。
Arduino Mega2560 R3にはファームウエアに当たるスケッチを書き込みます。スケッチはMarlinをダウンロードし、自分の構成にパラメーターを合わせて修正します。Arduino IDEからArduino Mega2560 R3に書き込み完了です。

RAMPS1.4コントロールボードの各パーツとの結線図と回路図です。D8、D9、D10と電源入力端子はターミナルブロックでそれ以外の端子は2.54mmピッチです。たいがいのステッピングモーターについているケーブルはJSTコネクターがついています。ピッチは2.54mmなのですが2個分のZ軸端子間が狭くQIコネクターに替えないと2個刺さりません。

モータードライバー
ステッピングモーターはドライバーIC Pololu社のA4988 または Ti社のDRV8825Vを使用して駆動します。モータードライバーはサブ基盤になっていてA4988とDRV8825Vは同じピン配列になっていますので差し替えや混在が可能です。混在させるときはステップモードと制御電流の設定が異なりますので注意してください。モータードライバーはステッピングモーター1個につき一つ使用しますがZ軸は2個を並列に接続しますので合計4個必要になります。ステッピングモーターの駆動は定格電流の8割程度を目安に設定していますが、A4988は結構発熱します。発熱が気になるようであればDRV8825Vを使用してください。少しは発熱が少ないようです。
  • A4988使用時の計算式
      I_TripMax = Vref / (8 x Rs)
       I_TripMax : 制御電流
       Vref : VR-GND間の電圧
       Rs : シャント抵抗値
  • DRV8825V使用時の計算式
      Ifs = Vref / (5 x Rs)
       Ifs : 制御電流
       Vref : VR-GND間の電圧
       Rs : シャント抵抗値
今回購入したGeeetechのセットに入っていたA4988ドライバーボードはシャント抵抗がR200 = 0.20Ωでしたので計算式により、
  1.5A x 80% = Vref / (8 x 0.2Ω)  で Vref = 1.92V
に設定しました。互換A4988ドライバーボードはシャント抵抗値が異なることがあります。前に購入したAsShopで扱っているA4988ドライバーボードはR100 = 0.10Ωでした。ネットで解説されているI = Vref * 2.5 という計算式はPololu社のリファレンスボードの場合でシャント抵抗がR050 = 0.05Ω時の計算式です。ステッピングモータの制御電流値の設定はドライバーICとシャント抵抗値を確認し、発熱対策を考慮した設定にする必要があります。必要なトルクが得られているようなら制御電流を必要以上に上げないほうが良いでしょう。ドライバーICには過熱防止回路が内蔵されていますので印刷途中で過熱防止回路が働いてステッピングモーターが停止するといったトラブルもあります。必要な制御電流を得るためにドライバーボードの発熱がすごいようならファン冷却を行ってください。40mm小型ファンでも十分冷却できます。ファンの音はうるさいですが印刷の出来上がりにも影響しますので付けておいたほうが無難かもしれません。

ステッピングモーター
RepRap 3DプリンターはNEMA17というバイポーラステッピングモーターを使用します。NEMA17とはシャフト径が5mmでシャフト長24mm、取り付けネジが3mmで穴間隔が31mm、深さが4.5mmという規格です。モーター長は発生させるトルクによって異なります。モーター長40mmで2相 ステップ角: 1.8 ° 定格電流: 1.5A Holding torque: 500mN.m、Detent torque: 15mN.mのモーターを使用しています。RepRapは定格電流1.3Aのモーターを推奨しています。
e-bayなどで販売時に表記されているトルクの単位はいろいろありわかりにくいです。1N.m(ニュートン.メートル)は1000mN.m、100N.cm、0.001kN.mとも表記できます。また0.102kgf.m、10.197kgf.cm、10197.162gf.cmとも表記されます。変換計算をしてくれるページがありますので参照してください。
ドライバーボード同様にステッピングモーターも多少発熱します。しかし、熱くて触れないほどというのは定格電流値を超えている可能性があります。モーターの寿命にも影響しますので定格電流値以内で使用してください。

LCD表示ユニット
表示用の20文字4行のキャラクターまたは、128x64ドットグラフィックスLCDユニットです。表示される情報はどちらでも同じでXYZ軸の位置、温度(設定値/実測値)、SDカード使用量、経過時間です。RAMPS1.4に接続アダプターを取り付けてケーブルを接続します。MarlinFirmeareでLCDの使用を設定します。参考サイトです。
このユニットには操作用のロータリーエンコーダーとSDカードソケットが実装されています。SDカードに印刷データを転送してオフライン印刷が可能になります。

温度計測センサー
RepRapでは一般的に安価なNTCサーミスター素子を使用します。詳細はこちらのページで解説されています。だいたいホットエンドやヒーテッドベッドに付属してきますが、改めて購入するのであればPTFE耐熱ケーブル付きをおすすめします。細めの2心PTFE耐熱ケーブルがなかなか見つかりません。MarlinFirmeareにはたくさんのセンサーが予め記述されていますので購入したものを選択してください。RAMPS1.4コントロールボードの温度センサー端子に接続します。極性はありません。

エンドスイッチ
XYZ軸のゼロ点検出用のセンサーです。マイクロスイッチか、ホール素子を使用した位置検出センサーです。RAMPS1.4コントロールボードのエンドスイッチ端子に接続します。MIN、MAX合計で6個接続できますがMINのみ(3個のセンサー)で十分でしょう。MAXはMarlinFirmeareで最大移動距離が設定できますので代用が可能です。

コメント

トラックバック

このエントリのトラックバックURL: http://azss.asablo.jp/blog/2015/11/09/7897490/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。