2014年4月1日 星期二

初學者應該如何開始呢?

真是大哉問阿,該從哪開始著手呢?我認為,應該要先從燒壞幾顆4988控制板開始著手。

不燒壞點什麼零件,怎麼能自稱是Maker呢? XD

所以說,如果你是個打算自己從零件採購開始的Maker,我建議可以先從採購機電相關的零件開始。四至五顆步進馬達、RAMPS1.4、Arduino Mega 2560、六個4988控制模組(兩個備品)、三個微動開關,還有一些24AWG多心線、杜邦接頭組。歐,還有電源供應器NES-100-12。其實自己動手組裝3D印表機,最難搞定的,是電機安裝的部分。機械結構照著照片,大多不會裝錯,頂多是沒鎖緊,再補螺絲刀就解決;軟體設定的部份,就算是自己搞不懂怎麼設定也沒關係,使用網友提供的懶人包,也可以輕鬆過關。唯獨電線該怎麼接、電流要怎麼調整,沒人救得了你。安裝示意圖接點一大堆,實際拉出來的電線亂糟糟,實在是對不起來。就算都接對了,還要面對杜邦接頭壓接不確實,接觸不良等等用看得看不出問題的疑難雜症。然後還有馬達電流要怎麼調整的問題,就更頭大了。(這個步驟很多人都發生意外,可能會需要4988備品的步驟在這邊。)所以說電機安裝搞定了,其他部分就算是小菜一盤了。

先買電機零件,還有另外一個好處:可以慢慢再考慮到底要裝配哪款3D印表機。目前幾乎所有的RepRap積層式3D印表機,都可以使用RAMPS1.4系統,當作主要控制器。不管想嘗試看起來最簡單的SmartRAP,或是想挑戰連Sega都說很難搞的Delta型態,其他的i3、Air 2 就更不用說了,都可以使用RAMPS1.4系統。先採購RAMPS,絕對不會後悔(後悔的話請退給代理商,不要來找我  逃~)。

電機零件買齊之後,可以先參考Prusa i3組裝筆記裡面的相關組裝步驟,開始挑戰電機組裝,記得End Stop微動開關千萬別遺漏,沒裝好的話馬達是不會乖乖運作的。要特別注意,要先把Marlin懶人包裡面,溫度感應器的設定改回 "-1",還有LCD控制器也要在最開頭加回 "//" 符號,暫時關閉LCD控制器。因為還沒有安裝熱敏電阻,無法偵測溫度;由於LCD控制器的程式如果沒有溫度資料可以參考,會無法編譯。

安裝好RAMPS系統之後,就可以透過PC上Repetier-Host軟體的"手動控制"面板,開始試玩電機系統,讓三軸歸零、隨意控制三個馬達、試著把馬達控制線順序顛倒插,使馬達改變轉動方向。還有,使用M119指令,觀察End Stop的狀態。

再來,可以嘗試著調整4988模組上的可變電阻,讓4988吐出更多的電流來驅動馬達。觀察看看馬達是不是會變得更有力量? 馬達會不會變熱? 4988有沒有冒煙等等現象。當然,這個實驗可能會帶來些損失,不過不要擔心,沒燒壞點什麼,是不能自稱Maker的。

好啦,這第一個關卡,也是最難突破的關卡,如果能闖關成功,後續的3D印表機組裝、測試跟使用,應該也難不倒你。趕快去訂購零件吧!!

2014年3月26日 星期三

Marlin 溫度感應器 數值轉換對應表

(2014/03/27)Update: 自己實測了這個自動產生的對應表,結果測得的溫度與實際值仍有相當大的誤差。看來還是要回頭用測量的方式來校正溫度...

3D印表機內使用的溫度感應器,大多使用負溫度係數熱敏電阻(NTC)。溫度越高,阻值越小。 電阻值隨溫度變化的公式如下:

R(t) = R0 * Exp(B*((1/t) - (1/t0)))

其中R0是指溫度在t0時的電阻值。t0是標準參考溫度,一般規格書會以攝氏25度為參考溫度。 公式中溫度相關的參數,都使以凱氏溫度做計算,如果自己要動手做計算,記得要把攝氏溫度加上273.13,轉換成凱氏溫標,才能算出正確的阻值。B值是NTC的特性參數,請在自己所使用的熱敏電阻規格書中找出B值。

這邊提供一個方便的計算機,只要填妥 t0、R0、B值,在按下 "Try it" 按鈕,就會自動產生Marlin所使用的溫度偵測對應轉換表。把轉換表附蓋掉"Marlin/thermistortables.h"內,"temptable_1[][2] PROGMEM"所記錄的轉換表,並且確定"Marlin/Configuration.h"內,"#define TEMP_SENSOR_0"的設定值為"1"。再重新燒錄Marlin到RAMPS 1.4控制板,就可以獲得校準確的溫度偵測值。

由於部落格內不能執行Javascript,只好將計算機另外找網頁安置。請前往這個網址:
https://dl.dropboxusercontent.com/u/1325192/NTC/NTC.htm

參考資訊

阿男的部落格 - 3D列印噴頭的熱敏電阻更換

註記

熔普三維、捷泰 這兩家販售的J-Head應該都是使用這款熱敏電阻,規格特性如下,給大家做參考。

型號:B2-100-3950-1
R @ 25:K100K-1%
B25/50:K3950-1%
元素:熱敏電阻型MJB2
特性
(1)電氣特性
A:電阻值:R(25°C)= 100K±1%
B:B值:B=3950±1%(在25℃和50℃的電阻值計算出)
C:絕緣電阻50MΩ或以上DC500V兆歐表(玻璃和引線之間)
(2)熱時間常數(τ):τ≤10?17S(在靜止空氣中)
(3)熱耗散係數(δ):δ=1.1~1.6MW/°C(在靜止空氣中)
(4)工作溫度範圍:-50~+260°C

2014年3月17日 星期一

列印到一半馬達失步!! 怎麼辦?

慘...

相信大家都有這種經驗(沒遇過的實在是很幸福),一早起床發現列印作品被攔腰截成兩截,列印失步!!開始印的時候都沒問題阿,印的好好的。可是偷懶沒顧著機器,機器就跟著偷懶,出包給你看。(其實就算顧著,一樣會失步,而且束手無策。)G-code裡面幾千個指令中,只要其中一個指令造成馬達失步,整件作品就毀了。這樣失敗的作品,實在是難以見人啊!!

發生失步的原因,其實很簡單,就是工作需要的力量太大,馬達不夠力。所以解決失步的方向,不外乎加強馬達的力量(難),另外就是減輕馬達的負擔。

加強馬達力量的方法,不外乎換更大顆的馬達,或是增加供應給馬達的電流。換更大顆的馬達,得要花大錢重新買,而且買來到底夠不夠力,也沒個準。42型步進馬達的規格中,身長要多長?電流要買多少的?都要靠複雜的仔細計算才能有參考。

另外比較可行的也許是增加供應電流。大家買的馬達,額訂電流(電流上限)大約都是1.5~1.7A,但是4988驅動板上的電流供應設定,一般都不會超過1A。所以電流是可以再繼續提高的,不過4988驅動板要另外買,或是更換Rs電阻。電流提高後,還要面對4988散熱不良會燒毀的困擾,要千萬注意。

以上是增加馬達力量的方法,除了既有4988驅動板的電流調高到接近1A以外,其他方法可行性都不高。另外一方面要設法減低馬達的負載,可以嘗試的方法就比較多了。

1. 放鬆皮帶的鬆緊度
皮帶太緊,會增加馬達軸,還有墮輪的摩擦力。合適的鬆緊度,有助於馬達順利運轉,而且兼顧定位的精準度。

2. 減少馬達的負載重量
列印平台的玻璃、列印台底板(有些人使用金屬),是Y軸負荷重量的主要來源。使用較薄的玻璃,或是用玻纖板替代原有的玻璃,可以減輕重量。在強度充足的前提下,列印台底板上盡量鏤空,或使用更輕的材質,也可以減少Y軸馬達的負荷。

X軸最大的重量負荷,來自擠出機馬達。如果把擠出機構改成遠端送料 Bowden 型態,可以大幅降低X軸馬達的負荷。

3. 降低列印速度
車開慢一點,需要的力量就減低了,這不需要再解釋吧~~

4. 降低加速度
這其實是最有效又實惠的解決辦法,可以印得又快又穩。

牛頓運動定理中提到 F(力量) = M(質量) x a(加速度)
當加速度減小,所需的力量也會等比例得減小。雖然質量減小也有幫助,可是質量能減小的比例有限。加速度減小,可以改善失步,但是不代表"最高列印速度"也會跟著降低。只是加速到最高速度需要的時間會增長而已。所以降低加速度,但是不降低列印速度,仍然可以保有相當快的列印速度。只犧牲一些些列印時間,但是又不會失步,一舉兩得!

加速度的設定,建議可以直接透過 LCD修改 Marlin 韌體裡的參數,然後儲存到 EEPROM 裡面。也可以直接修改 Marlin 的 Configuration.h 設定檔,再重新燒錄到 2560 控制板。再不然也可以在切片軟體裡面設定。

Marlin 的加速度設定,分為 Default (預設) 與 Max.(最高) 兩個部分。 Default 是當 G code  執行 G0、G1 等"移動指令"時所使用的加速度,預設值是 3000mm/s2。當 G code 執行 M204 ,嘗試著要修改 Default 加速度時,設定值不能超過 Max. 加速度的值。直接把 Max 加速度設定到3000mm/s2以下,才能有效避免 G code 裡面的 M204 又把加速度調高。

LCD 控制板內選擇 "Control -> Motion -> Amax x" 與 "Control -> Motion -> Amax y" 可以修改 Max. 加速度。修改好後記得要使用 "Control -> Store memory" 把設定值存入 EEPROM 中,下次開機才不必重新再調整一遍。

如果想從 Marlin 的 Configuration.h 做修改,請找到這行:
#define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}
把兩個 "9000"的數字調低到合適的數字,再重新燒錄韌體進 2560 控制板。
如果之前使用過 EEPROM 記錄設定值,記得要在LCD選擇"Control -> Restore Failsafe",清除EEPROM中的設定,才會讓燒錄進去的設定值升效。
修改成 #define DEFAULT_MAX_ACCELERATION      {1500,1500,100,10000}


切片軟體 KISSlicer 的加速度設定,在 "Printer -> Speed -> XY Accel [mm/s^2]"


Slic3r 的加速度設定,在 "Print Settings -> Acceleration control (advanced)" 。 如果填 0 ,Slic3r 會使用 3000mm/s2這個預設值。請把這個框框裡所有的 0 ,都修改成合適的加速度。


至於加速度設定多少會合適呢?建議可以用二分法慢慢做實驗。預設值是3000mm/s2,所以第一次測試時使用1500mm/s2。如果不會失步,就再提升至 1500-(3000-1500)/2 = 2250mm/s2;如果會失步,就要再降低至750mm/s2。重複幾次測試之後,應該就可以找出自己機器的合理設定值了。另外要注意,測試時列印速度也許可以設高一點,譬如100mm/s,而且千萬要記得關閉切片軟體的 auto cooling 功能,要不然測試時使用較小件的模型,會讓切片軟體強迫減慢列印速度,導致實驗不準確。

KISSlicer 中,每層列印時間至少要10秒的設定,改成0秒,避免列印速度變慢影響實驗結果。

Slic3r 中,"Enable auto cooling" 自動降溫要取消勾選,避免列印速度變慢影響實驗結果。


以上,希望大家列印時都可以不必再提心吊膽,安穩睡個好覺!

2014年3月12日 星期三

Prusa i3 做搭橋速度實驗

i3 抓來做Bridge 測試,Slic3r的Speed中,Bridges speed 依序測了 60->30 ->90->70->50 (mm/s)。
溫度我設180度,層高0.2。

測試模型在這邊:
http://www.thingiverse.com/thing:269679

Bridge的速度設定在這個地方


看起來速度設60mm/s最理想


ATOM小改裝

1. 4988加上散熱片

2. 晶晶腸散熱片塗上散熱膏

2014年3月10日 星期一

Moai 石像四人組

ATOM的第一盤成功作品,Moai 石像四人組。一次印四隻,是為了測試牽絲的問題。這次回抽距離5mm,速度50mm/s,牽絲問題已經獲得有效的控制了。應觀眾要求,印小模型來看精細程度。Moai 高度30mm,小小的。
前兩盤遇到溫度設太低、溫度PID控制不夠理想、線路接觸不良造成馬達罷工等問題,第三盤中於有比較理想的成果。

模型下載網址:
http://www.thingiverse.com/thing:144668

切片軟體使用KISSlicer,溫度設定200度,列印速度50mm/s,回抽距離5mm,速度50mm/s。設定值給大家做參考。


照片100%直接切圖,0.2層高的紋路清晰可見。看起來水平水波文的問題真得相當相當輕微。比使用牙條帶動Z軸的機器要好相當多。

左邊是ATOM印的,右邊是我的i3 1號印的。

擠出量校正

擠料量校正,是一個很基礎的問題,可是卻相當複雜。因為影響擠料量的因素不易掌控,而且測量擠料量的方法又不易觀察。切片軟體在計算擠料量的時候,可以依照完全理想無誤差的方式去計算。但是實際上塑料的直徑、擠料齒輪的直徑、層高的誤差,都會影響最後擠出線寬的大小。雖然切片軟體可以提供設定值,在切片之前就針對誤差做修正,但是到底該增加擠出量還是減少,仍然不容易決定。

最容易觀察出擠料量是否正確的地方,是模型得平面封頂。如果擠料量越正確,應該可以擠出越平滑的頂面。擠料量太少,會出現縫隙,擠料量太多,會向上溢出,一樣不平整。

另一個值得一提的是,就算擠料量正確了,在列印最底層時,擠出頭跟列印台之間的距離誤差,會嚴重影響第一層列印的平整度。擠出頭太高,會使線與線之間出現縫隙,甚至直線本身就出現抖動的現象;太低的話,塑料會向上溢出,甚至是根本擠不出料來。

擠料量過多,溢出表面。

擠料量太少,出現間隙。


綜合上面提及的各種問題,這邊設計了一個校正擠料量的測試流程給大家參考。

1. 列印測試薄片

  • 列印一個長寬高20x10x2mm的薄片,層高0.2mm,頂/底面厚度3層,內部填充選用蜂巢狀,密度15%。

2. 觀察薄片封頂狀況

  • 如果擠料量不足,封頂會出現線條之間有間隙,或是凹陷;如果擠料量過多,線條之間會出現過多溢料,需要減少擠出量。

3. 調整列印時的擠出量,再重複列印薄片

  • 使用Repetier-Host控制印表機的話,可以直接從手動控制面板,調整"擠出頭擠出速度倍率"。或是直接下命令"M221 S70" (70是指擠出量是Gcode標定的百分之70)做調整。
  • 也可以直接使用LCD控制板做調整:開始SD卡列印後,修改 Tune -> Flow,單位一樣是擠料要加減多少百分比。

4. 重複先前步驟,當封頂表現符合期待,把當時需要加減的百分比,套用至Marlin韌體內的擠出軸steps per unit參數。

  • 修改 Marlin 設定檔 configuration.h 內"DEFAULT_AXIS_STEPS_PER_UNIT" ,直接在E軸欄位上加入要修正的百分比。如果需要修正的百分比是 113%,修改後的程式碼應該長的類似這樣:
  • #define DEFAULT_AXIS_STEPS_PER_UNIT {160,160,4000,750*1.13}
  • 修改後再重新燒錄Marlin到控制板中。

  • 如果控制板有開啟EEPROM設定記憶功能的話,也可以直接利用LCD控制板做修改,就不必重新燒錄Marlin。一樣的例子,如果需要修正的百分比是 113%,可以開啟控制項目:Control -> Motion -> Esteps/mm,將數值改成原本數值乘以113%後的結果,例如750x1.13=847.5。(這邊似乎不接受小數點,如果很在意精確到小數點也不能漏掉,請用重新燒錄Marlin的方法。)
  • 設定完數值之後,記得要利用選項Control -> Store memory將設定值寫入EEPROM,這樣重開機之後會使用這次修改的值來運作。
5.校正平台對擠出頭之間的距離

  • 當擠料量正確之後,再校正平台對擠出頭之間的距離,會比較有意義。觀察的方法類似。當列印第一層的時候,如果填滿底面的線條很鬆散,有間隙,甚至會發抖,代表擠出頭太高,需要調低一點;當底面填滿時有溢料、擠出料高於噴頭,那就是需要把擠出頭調高一點。來回調個幾次,相信就能夠獲得滿意的結果。


擠出頭與列印平台的距離剛好時,底層填滿理想的狀況。

底層填滿出現溢料的現象

底層填滿出現間隙,附帶得出現黏著不良。


圖片來源、參考資料

http://www.tantillus.org/Tutorials.html