2016年8月30日火曜日

3Dプリンターatomの改良(3)

次は、ステッピングモーターの音を静音化してみる。

実は、先のボード総入れ替えの際に、4つあるドライバー基板のひとつを逆差ししていたらしく、モーターが動かなくなっていた。
それで予定していなかったのだが、どうせドライバー基板を購入するのであれば、静音化してしまえというノリだった。


ネットで調べると、TMC2100という型番のモータードライバーがとても静かだということが分かり、、入手可能なところを探したところ、ヤフオクで見つけたものが一番リーズナブルだった。
TMC2100が4個セットで5764円(送料込み)。即決だったので、2日後に届いた。


このヤフオクヴァージョンは、ピンの設定が基板上でできているとのこと。ピンをカットするという面倒な作業は必要なかった。
既存のX軸、Y軸用のドライバーをそのまま差し替えた。電流の設定は必要なので、トリマーを回して脱調がないことをチェックしながら最終的に両方とも0.8Vに設定した。
今回、電流消費の多いZ軸とExtruderは交換を見送った。後日トライしてみたい。

交換後のプリントは、これも驚くほど静か。モーター動作時にキュルキュルと電子的な音を立てていたのが消えた。凄い。

ベアリングの動くときに出る機械的な擦れる音だけになった。


3Dプリンターatomの改良(2)

次は、スタンドアロン化。

atomは、PCとUSBケーブルをつないで動かすことを前提としているため、電源スイッチ以外はついておらず、プリント中もずっとPCを立ち上げたままにしておかなければならない。プリント出力したいだけの時にatom本体だけで済ませたい時があり、とても不便。

そこで、atom本体を購入した翌月にあたる昨年7月に「2004 LCDディスプレイスマートコントローラーRAMPS1.4 Reprap」を購入した。

しかし、atomについているメインボードにはLCDコントローラーがつけられないということが、商品が届いた後になって発覚した。
メインボートは Momoinololu というコンパクトなものがついていて、これは標準的なReprap仕様のものについている拡張用のコネクタも、動作させるための余分なメモリーもついてなかった。
メインボードの交換はちょっと敷居が高いなと落胆して、LCDコントローラーはしばらく眠らせたままになっていた。

1年経過して、3Dプリンターの利用頻度が増えてきたこともあり、メインボード基板も含めて更新することにした。

メインボードは、「MEGA2560 互換ボード for Arduino」にして、モータードライバーを載せる拡張基板「RAMPS 1.4 互換 コントローラ Controller Reprap 3Dプリンター 3Dプリンター基板セット」をAmazonで購入。

ボードをごっそり入れ替えて、LCDは本体の手前に固定した。

黒色だった基板が赤色に変わった。

MEGA2560ボードに ファームウェアを書き込む必要があるので、ツールのArduino をヴァージョン1.6.9にアップして、ファームウェアのヴァージョンはMarlin-1.1.0RCにした。
そして、MarlinのConfiguration.hファイルの必要な部分をマシンに合わせて書き直す。

// ★マザーボードの種類:Ramps 1.4
// The following define selects which electronics board you have.
// Please choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_RAMPS_14_EFB
#endif
// ★ 温度センサー設定:TEMP_SENSOR_0=ホットエンド用、TEMP_SENSOR_BED=ヒートベッド用
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_BED 1
// ★ ヒーター最高温度設定
// When temperature exceeds max temp, your heater will be switched off.
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
// You should use MINTEMP for thermistor short/failure protection.
#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275
#define BED_MAXTEMP 125
  // ★ 温度センサーの特性設定 for atom
  #define  DEFAULT_Kp 25.89
  #define  DEFAULT_Ki 1.35
  #define  DEFAULT_Kd 124.29
// ★メカニカル式(リミットスイッチ)用の内臓プルアップ抵抗を有効にする
//  光学式の場合はコメントアウトする。
// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
// ★ リミットスイッチの論理反転設定:NormaryOpend=true, [*]NormaryClosed=false
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
// ENDSTOP SETTINGS:
// ★ ホームポジション時のエンドストップの方向設定
// Sets direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

// ★ソフトウェアエンドストップの設定:MIN側はOFF(HWリミットスイッチ利用)、MAX側はON
#define min_software_endstops false  // If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.

// ★ホーム位置からの限界距離
// Travel limits after homing (units are in mm)
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 140
#define Y_MAX_POS 140
#define Z_MAX_POS 130
// ★ ステッピングモーターの設定
//#define DEFAULT_AXIS_STEPS_PER_UNIT   {80, 80, 4000, 91.6019707}  // default steps per unit for Ultimaker
#define DEFAULT_AXIS_STEPS_PER_UNIT   {80, 80, 4000, 195}  // default steps per unit for Ultimaker
#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 25}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {3000,3000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.

// ★ SDカード有効化
//
// SD CARD
//
// SD Card support is disabled by default. If your controller has an SD slot,
// you must uncomment the following option or it won't work.
//
#define SDSUPPORT
//
// ★ロータリーエンコーダーの方向を逆転する
// This option reverses the encoder direction for navigating LCD menus.
//
//  If CLOCKWISE normally moves DOWN this makes it go UP.
//  If CLOCKWISE normally moves UP this makes it go DOWN.
//
#define REVERSE_MENU_DIRECTION
//
// ★4行LCDコントローラー
// RepRapDiscount Smart Controller.
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
//
// Note: Usually sold with a white PCB.
//
#define REPRAP_DISCOUNT_SMART_CONTROLLER


GENKEIから入手した、atomオリジナルのMarlinソースコードの中のConfiguration.hファイルの中身を参考にして修正。
途中Extruderの送り量とエンドスイッチの設定で少し手間取った。
送り量は、今回初めて実際の送られた長さを物差しで計測して調整した。

Configurationファイルの修正が出来たら、ツール上からArduinoへUSB経由で書き込む。書き込みが終わるとLCDに文字がでてくるようになった。

SDカードを挿入したら、LCDにメッセージが出てきて、メニューからファイルが選択できるようになった。

これで3DプリンターがPCから独立でき、使い勝手がすごく良くなった。


3Dプリンターatomの改良(1)

GENKEIのatom、ようやく使い慣れてきた感じで、そろそろ改良してもいいかなと思えてきた。

一番気になるのが騒音の問題。

最初の対策は、一番簡単なFANの静音化。

ホットエンドの部分には40mm角のファン、モータードライバー基板のところには60mm角のファン、計2個がついている。どちらもチャイナ製の安いもののようだ。
電源を入れると真っ先にキィ~~ンと耳障りな音がする。

これらを、AINEXの静音ファンに交換した。




耳障りな音が完全に消えた。電源を入れたことが分からないほど静かになった。