2013年12月7日 星期六

Marlin LCD 控制面板功能介紹

拍照的這天有點冷...


選單項目,在 "Marlin\LCD Menu Tree.pdf" 可以找到完整的項目表(是舊版的,某些項目已經有更動。)。

Prepare: 準備工作


  • Disable Steppers: 停止馬達,讓機器可以用手拉動擠出機、列印台。
  • AutoHome: 三軸歸零
  • Preheat PLA: 預先為PLA加熱
  • Preheat ABS: 預先加熱ABS
  • Cooldown: 冷卻擠出頭
  • Move Axis: 移動各軸機械
    • Move 10mm: 移動10mm
    • Move 1mm: 移動1mm
    • Move 0.1mm: 移動0.1mm
      • Move X: 左右移動X軸擠出機台車
      • Move Y: 前後移動Y軸列印台
      • Move Z: 上下移動Z軸擠出機台車
      • Extruder: 擠出機進/退料
        • X:+000.0 (轉動旋鈕,移動台車。)

Control: 機械控制

  • Temperature: 溫度控制項目
    • Nozzle: 設定擠出頭目標溫
    • Fan Speed: 風扇速度,0最慢,255最快。
    • Autotemp: ??
      • Min: ??
      • Max: ??
      • Fact: ??
    • PID-P: 溫度PID控制的P值(建議不要修改)
    • PID-I: 溫度PID控制的I值(建議不要修改)
    • PID-D: 溫度PID控制的D值(建議不要修改)
    • PID-C: ??
    • Preheat PLA Conf: 預熱PLA的設定
      • Fan Speed: PLA預熱時風扇速度
      • Nozzle: PLA預熱時的擠出頭目標溫度
      • Store memory: ??
    • Preheat ABS Conf: 預熱ABS的設定
      • Fan Speed: ABS預熱時風扇速度
      • Nozzle: ABS預熱時的擠出頭目標溫度
      • Store memory: ??
  • Motion: 馬達控制項目
    • Accel: 預設XY軸的加速度
    • Vxy-jerk: 當XY馬達速度變化低於這個設定值,就不會做加速或減速,而是直接改變到新的速度。
    • Vz-jerk: 當Z馬達速度變化低於這個設定值,就不會做加速或減速,而是直接改變到新的速度。
    • Ve-jerk: 當E馬達速度變化低於這個設定值,就不會做加速或減速,而是直接改變到新的速度。
    • Vmax x: X軸最高速限(mm/s)
    • Vmax y: Y軸最高速限(mm/s)
    • Vmax z: Z軸最高速限(mm/s)
    • Vmax e: 擠出軸最高速限(mm/s)
    • Vmin: 最低速限
    • Vtrav min: ??
    • Amax x: X軸加速度上限
    • Amax y: Y軸加速度上限
    • Amax z: Z軸加速度上限
    • Amax e: 擠出軸加速度上限
    • Arecract: 擠出軸倒抽加速度上限
    • Xsteps/mm: X軸移動1mm,步進馬達需要走幾步。
    • Ysteps/mm: Y軸移動1mm,步進馬達需要走幾步。
    • Zsteps/mm: Z軸移動1mm,步進馬達需要走幾步。
    • Esteps/mm: 擠出軸移動1mm,步進馬達需要走幾步。
  • Store memory: 儲存目前設定,下次開機使用目前設定。
  • Load memory: 取用之前儲存的設定。
  • Restore Failsafe: 取用任體燒錄時的設定。

No Card 無卡片
Print from SD 列印SD卡內的 G code 檔案
Change Card: 如果SD卡抽換過,通之控制板重新讀取卡片內容


Tune: SD列印時可以做的手動修改

  • Speed: 列印速度微調,單位是百分比。
  • Nozzle: 擠出頭溫度。
  • Fan Speed: 風扇速度。
  • Flow: 擠出量微調,單位是百分比。






2013年12月5日 星期四

塑膠零件埋入金屬螺帽

Prusa i3 的塑膠零件中,有幾個需要埋入 M3 螺帽的地方。 模型上預留了孔位,但是列印出來後,有孔位太小的問題。如果硬塞,可能會把塑膠件撐破;如果想打磨擴孔,耗工費時又不見得能挖得漂亮。利用塑膠遇熱會融化的原理,可以很輕鬆得將螺帽塞入。先用較長的螺絲釘穿過塑膠件,然後在螺絲頂端鎖上螺帽。用打火機加熱M3螺帽約十秒,之後盡速依照預留孔位的方向,把螺帽拉進預留孔。就位之後要耐心等待降溫,避免額外的力量,讓螺帽的位置被移動產生誤差。

加熱塞入之後,應該就沒機會再取出做修正了,所以務必小心!!


2013年12月2日 星期一

Slic3r 1.0.0RC1 新功能之 "Start Perimeters at Concave Points"

3D列印最外圈的起始點,無可避免得會在表面留下痕跡。每一層都會有這個痕跡,如果沒有把起始點統一安排在一條線上,整個作品就會變麻子臉;反之安排在同一條線上,又會變成一道疤痕。實在是很傷腦筋。

為了減少這個問題,Corey Daniels 想出了一個辦法:把起始點,藏到模型凹槽的地方,這樣這道疤痕就會變得比較不明顯了!於是在 Slic3r 1.0.0RC1 中,加入了這個新功能:"Start Perimeters at Concave Points"。 外圈起始點從凹點開始!



為了驗證這個功能,特別畫了個"小精靈"形狀的模型來做切片。

切片完成之後,將G code丟到 http://gcode.ws/ 去觀察:

這張是沒有開啟"Concave Points"的切片,藍色點是外圈的起始點,沒有被安排在凹陷處。


這張是開啟"Concave Points"的切片,藍色點是外圈的起始點,安排在凹陷處,可以讓整排的疤痕隱藏在這個不明顯的地方。

使用Slic3r的朋友們,趕快去啟動這個新功能吧!!

參考資料

2013年11月28日 星期四

[進階] 調整 Marlin 的 Stepper step pulse width (步進馬達控制訊號寬度)

使用4988的朋友請掠過此篇。
[尚未驗證]


步進馬達控制晶片tb6560需要比較寬的步進控制訊號,所以需要修改Marlin韌體,拉長控制訊號進入高電位的時間。

修改 stepper.cpp -> babystep

   "float x=1./float(axis+1)/float(axis+2); //wait a tiny bit" (兩個)
   "float x=1./float(axis+1); //absolutely useless" (兩個)
這行利用除法運算來拖延程式執行的時間,用來產生控制腳位拉高電會後維持高電位的延遲。複製這行,執行兩次,就可以拖延兩倍的時間。依此類推。



3D印表機 零件採購資訊

採購資訊僅供參考,零件的品質由店家擔保!

另外可以參考網友蔡富名整理的採購資訊~

壓克力

阿宏壓克力 - 露天
特別聲明:i3 壓克力零件的切割,屬於"重製"別人設計好的作品,非"自行創新設計",並不符合 FabLab Taipei 鼓勵大家自己創作的原則。而且切割數量太多。即日起,若非自行創作設計的作品,FabLab Taipei 不再提供雷射切割的服務。敬請見諒。

螺絲螺帽牙條

高來螺絲
電話: 02-25537717
地址: 台北市大同區承德路二段132號

滑套、軸承

五連軸承
電話:02-2557-5281
住址:總公司 103 台北市承德路2段138號

掏寶-廣發軸承

光軸

勁亨軸承有限公司
電話: 02-2281-1666
住址:新北市蘆洲區和平路114巷2號1樓

掏寶-廣發軸承

彈簧

雅銅彈簧
電話:02-2557-3852
住址:台北市大同區興城街9號1樓

鐵氟龍製品

資峰塑膠

馬達

萬泰電器 - 掏寶
宇輝 - 掏寶

電源供應器

金華電子
露天拍賣

同步齒輪、皮帶

皮帶 - 掏寶
同步齒輪 - 掏寶

控制板

控制板套件 - 捷泰 - 掏寶
控制板套件 - 創客基地 - 掏寶
LCD控制板 - 捷泰 - 掏寶

擠出頭

購買前請記得只定要Wade型態的。別買錯囉~
如果之後想改裝成遠端送料,再購買Bowden型態的 J-Head。
J-Head - 熔普三維
J-Head - 捷泰 - 掏寶

擠出軸

擠出軸 - 露天

Prusa i3列印件

(2014/01/28) 現在已經有很多列印件供應商,可以在拍賣上面找到他們。所以我就不再接受代印的請求了~
一套 i3 列印件的代印費用2500元,才質為PLA,顏色有半透明紅/藍。
交期約一周。
細節請來信詳談:kcee.tw@gmail.com

如果可以整套從頭到尾一次列印出來,需要的時間估計是 28小時37分(實際上會增加約10%)。需要的PLA材料估計約300公克(239.7立方公分*1.25比重=299.625公克)。




2013年11月25日 星期一

RepRap Prusa i3 平台自動補正

平台校正不但費時,而且經常失敗,時在是很令人洩氣!期盼了好一陣子,Marlin終於將平台自動補正的功能加進來了!!這個功能將原本Z軸的Endstop,改裝到擠出頭的旁邊,讓Endstop直接接觸列印平台,讓Marlin值接測量到平台的實際位置。不但如此,Marlin會測量平台上三個不同位置,然後計算出整個平台傾斜的狀況,並依此補正列印空間的水平方向,讓列印做品跟著平台一起傾斜,作品本身的三維維持垂直。如此一來,就不必每次列印前,都要耗費時間跟精神,手動做平台校正工作。



硬體


伺服馬達我選用SG-90,比較輕巧,耗電也不多,可以直接使用RAMPS的5V電源而不至於讓RAMPS當機。
i3用的伺服馬達支架,以及探針腳,我放在這邊:
http://www.thingiverse.com/thing:182889

探針的微動開關,直接使用用Z軸的EndStop。不過走線比較長,要重新佈線。
探針的最低點,要比噴頭的最低點還低,但不要低過一公分,避免探測過程中發生碰撞。

伺服馬達接線如下圖所示:

韌體設定步驟

預先燒錄


  • 將configuration.h中以下這幾行的註解符號刪去(行首的 "//" 刪掉)

#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 165,60} // X,Y,Z Axis Extend and Retract angles


  • 將 NUM_SERVOS 改為1

#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command


  • 將 Marlin 燒入 RAMPS
  • 燒錄完畢後,伺服馬達會移動到60的位置。
  • 使用M code "M280 P0 S{angle}"可以控制伺服馬達轉動到指定的位置(例如M280 P0 S60),找出探測時應該要在幾度,收起探針應該要幾度。假設找出來的度數分別是165度跟60度。
  • 將找出來的度數填回"SERVO_ENDSTOP_ANGLES"。然後重新燒錄Marlin。

測量探針與擠出頭的相對位置

  • 在列印台中央做個小記號,然後移動擠出頭的位置,讓擠出頭正好碰觸記號。
  • 用G code "G92 X0 Y0 Z0"讓 Marlin 把現在位置當作原點。
  • 用G code "G1 Z30" 把Z軸抬高。
  • 用M code "M401",讓伺服馬達移動到探測的位置。
  • 用控制軟體移動XY軸,讓探針接觸點在記號的正上方(這個步驟不必非常精確,位置大概對就好)。
  • 用控制軟體,讓Z軸每次下降0.1mm,並檢查探針是否被觸發。可以用M code "M119"來確認是否觸發。這個步驟必須非常精確,要測量到探針剛好被觸發時Z軸的高度。
  • 觸發後,使用M code "M114"讀回目前XYZ座標。(如果有LCD,可以直接參考LCD上的數據。控制軟體上的XYZ座標會有錯誤,請不要參考。)
  • 讀出來的座標,乘以負一之後填入設定檔。假設M114讀回來的座標是 X:24.3 Y:-31.4 Z:5.1,則在設定檔中,找到以下這三行,並且把數值如下填好。

#define X_PROBE_OFFSET_FROM_EXTRUDER -24.3
#define Y_PROBE_OFFSET_FROM_EXTRUDER 31.4
#define Z_PROBE_OFFSET_FROM_EXTRUDER -5.1

設定測量位置


  • 這四個參數用來設定測量面的邊界,請依照機器XY工作範圍的邊界做縮減後,填入設定檔。如果手邊的機器是 Prusa i3,可以直接使用以下的數據。

#define LEFT_PROBE_BED_POSITION 30
#define RIGHT_PROBE_BED_POSITION 140
#define BACK_PROBE_BED_POSITION 140
#define FRONT_PROBE_BED_POSITION 30


  • 測量過程中XY軸移動的速度,單位是mm/min,建議用預設值就好。

#define XY_TRAVEL_SPEED 6000


  • 探測前抬高Z軸,避免探測腳與平台相撞。可以先設到50mm。如果有把握不會撞到,再回來改。

#define Z_RAISE_BEFORE_PROBING 10


  • 探測過程中抬高Z軸。如果平台沒有傾斜得很厲害,探測過程中應該是不會撞到平台的。用預設值就很安全了。

#define Z_RAISE_BETWEEN_PROBINGS 10

最後燒錄


  • 相關設定都完成了,再燒錄一次Marlin,機器就具備平台自動補正的功能了!

G-code Prefix修改


機器只會照著Gcode的指令工作,一般切片軟體產生出來的G code,並不會通知機器要做平台自動補正。如果沒有加上自動補正的命令稿在 G code Prefix裡面,那就沒辦法享受到自動補正的功能,甚至還會造成機器的傷害。千萬要小心、耐心做好以下的步驟。

KISSlicer

M104 S<TEMP>; 開始加熱擠出頭
G92 Z0;  目前的Z位置設為原點
G1 Z10;  Z向上移10mm,避免探針放下時發生碰撞。
G28 Y;   Y軸歸零
G28 X;   X軸歸零
G1 X100 Y100 F6000;  擠出頭位移到平台中心
M401;  放下探針
G28 z;  Z軸歸零
G29;  平台補正偵測
G1 Z5 F3000 ; 抬高Z軸
M109 S<TEMP>;  等待溫度到達工作溫度
M82;   E軸使用絕對座標




Slic3r

M104 S[first_layer_temperature]; 開始加熱擠出頭
G92 Z0;  目前的Z位置設為原點
G1 Z10;  Z向上移10mm,避免探針放下時發生碰撞。
G28 Y;   Y軸歸零
G28 X;   X軸歸零
G1 X100 Y100 F6000;  擠出頭位移到平台中心
M401;  放下探針
G28 z;  Z軸歸零
G29;  平台補正偵測
G1 Z5 F3000 ; 抬高Z軸
M109 S[first_layer_temperature];  等待溫度到達工作溫度
M82;   E軸使用絕對座標




修改好之後重新做切片,就可以開始測試平台自動補正的功能了。
實際使用時Z軸高度可能還是會有些誤差,需要回頭微調 Marlin 中的 Z_PROBE_OFFSET_FROM_EXTRUDER 參數。

參考資料