2014年7月2日 星期三

台車皮帶打緊


重新繪製了皮帶台車,並且加入皮帶打緊的機構。用兩隻M3螺絲釘來調整皮帶的鬆緊程度。這樣的調整方法比之前使用的束帶打緊要容易控制得多,也消除了束帶帶有彈性的問題。

下載連結:http://www.thingiverse.com/thing:381577


ATOM 相關資訊

http://atom3dp.com/#intro
http://www.simplyalt.com/atom/




2014年5月9日 星期五

KISSlicer 列印支架設定

到目前為止,支架還是用KISSlicer的效果比較好,可調的參數也比較容易掌握。這邊解釋一下各個參數的意義,希望可以幫助大家掌握支架的設定。

為了顯現支架的特性,畫了一個兩個半圓相接的模型。

開啟Support標籤頁


拉動 Off / On 拉桿,啟動最基本的 Coarse "粗" 支撐。
按下Slice按鈕完成切片後,再選擇左上附近的 "Models+Paths"檢視模式,就可以預覽切片的結果。
在黑色預覽視窗的上面跟右邊,各有一支拉桿,可以用來調整預覽內容。右邊的拉桿是用來檢視單層的切片結果,如果拉到最底下,可以秀出整個模型的切片結果。

自動產生出來的支架,分成三個部分。最底下有一層棧板,用意是要讓更高層的支架有良好的基礎,避免倒塌。再往上,會有粗支架。還沒接近需要支撐的模型之前,可以紙列印粗支架,減少列印得時間以及支架所消耗的塑料量。最上面與模型接觸的部分,會列印細支架。細支架需要兼顧支撐力量,以及拆除時的難易程度。不過係支架的密度,並沒有開放參數以供調整。拆除的難易程度,主要依靠"間隙(Gap)"參數來調整。


調整右側拉桿,可以檢視單層的列印路徑。可以觀察圖中間粗支架的形狀,以及右側細支架的狀況。


Support deg 支架角度

下緣切線與水平線的夾角

這邊的角度指的是模型下緣切線,與水平線所夾的銳角度。角度大於設定值的部分,就會產生支架。所以角度設越小,產生支架的範圍就會越大。理論上,越接近水平的部分,會越需要支架,但是角度要設定多少,才會剛好能順利列印,又能盡量減少支架的面積,還是需要各自做實驗才能知道。
0度

30度

45度

60

80度

90度


Inflate Support 延伸支撐範圍

當需要支撐的面積太小時,有可能會造成粗支架的數量太過稀少,使得頂端的細支架沒有良好的基礎可以列印。這時候可以考慮延伸支撐架的範圍。Inflate Support會讓列印支架的範圍,依照下緣切線角度決定出來之後,再向外增加範圍。範圍夠大的話就能獲得較充足的粗支架。
Inflate Support 設成 0mm

Inflate Support 設成 1mm



Gap 間隙

Gap 指的是細支架與列印件之間的垂直距離。設成0的話,代表細支架與列印件之間密合,會讓支架難以拆除。距離設太大的話,列印件完全沒支撐,那支撐就白印了。平常我都設在0.4mm或是0.6mm。

Gap 0.4mm 間隙很小,觀察不到

Gap 5mm 就可以很明顯得看到細支架與列印件之間的間隙了。

Support Z-Roof 支架高度上限

設成-1代表不設上限,如果設定成正值,就會限制支架的高度,超過高度就不產生支架。如果模型在某個高度之後,只有零星不必要的支架產生,就可以靠這個功能去除不必要的支架。

Support Z-Roof 設定成 -1 。所有需要支架的地方都會產生支架。

Support Z-Roof 設定成 50mm。模型每10mm有一片樓板,第六樓就超過50mm,不再產生支架了。

Sheath Main Support 粗支架側牆

側牆可以增加粗支架的強度,但是如果支架在工件的包圍之內,側牆會變的很難清除。要不要啟用這個功能,得要自己斟酌。

沒有開啟 Sheath Main Support,粗支架單純站立在棧板上,顯得相當單薄。

開啟 Sheath Main Support,而且將 Sheath Z-Roof(牆高)設定為10mm,讓側牆的結構加強粗支架底部,提高成功率。

Off / On 粗支架密度

回頭看第一個設定值,粗支架密度。這個設定值用來選擇粗支架的密度,最細的Ultra等級,就是粗支架根細支加一樣密。越密越容易讓細支架成功,但是也花費越多時間跟材料在支架的列印上,而且更難拆除。一般我都只用最稀疏的支架就可以了。失敗的原因一般都是擠料不順造成的,增加粗支架的密度,幫助並不大。

Coarse

Rough

Medium

Dense

Fine

Ultra

2014年5月1日 星期四

Prusa i3 塑料很難塞!?


塞入這個塞子,塑料就可以順利進入 J-Head了。
塞子的脖子有點太長,請視情況自行修剪。

下載位置
http://www.thingiverse.com/thing:316900

2014年4月15日 星期二

End Stop 電路介紹

End Stop 限位開關,對許多不熟悉電子電路的同好還說,是一團難以摸透的迷霧。控制板上明明有三個腳位,為什麼接兩隻腳就可以用?微動開關上,接點有分NC、NO,是什麼意思啊?控制板上的S腳位是作什麼用的?S腳位直接跟 "-" 腳位短接在一起,為什麼不會燒毀?Marlin設定裡面,X_MIN_ENDSTOP_INVERTING 到底要設成 "true",還是"false"?

RAMPS控制板上的限位開關腳位


先來解釋RAMPS控制板上,關於限位開關的腳位。總共有六組限位開關腳位,分別定義給XYZ三軸的MAX/MIN位置。每組腳位各自有 "S"腳位、"-"腳位、"+"腳位。"+"腳位連結到RAMPS系統裡的5V電源供應系統;"-"腳位連結到接地線路;"S"腳位連結到Arduino的數位輸出/入腳位(IO),在Arduino+Marlin系統內,是設定成以一根電阻拉到高電位的"數位輸入"腳位。

電路I/O腳位的秘密


Pull high 電路示意圖

上圖中,PIN12是CPU偵測電位高低的IO腳位。透過一支10K毆母的電阻,接到系統的電源供應線路(5V)。所以當S1按鈕放開的時候,PIN12腳位偵測的的電壓會非常接近5V,軟體系統偵測這支腳位的狀態時,會讀取到"1"的結果。這個狀態下,軟體系統會定義為"Triggered"。當S1按鈕被按下,這時PIN12會直接接地,軟體系統偵測這支腳位的狀態時,會讀取到"0"的結果,判定為"Open"。這時5V的電源,會透過10K的電阻再接到接地點,所以並不會發生電源直接短路到接地線而燒毀電源供應系統(5V穩壓IC)。註1

微動開關腳位的定義




微動開關一般有三支接腳,分別為 "C"共同接腳、"NO" Normal Open 通常開路接腳、"NC" Normal Close 通常短路接腳。顧名思義,"通常開路接腳",在微動開關被放開的時候,跟"C"接腳是斷開的,被按壓後,跟"C"接腳才短路接在一起;"通常短路接腳"則是在放開時,跟"C"接腳短路接在一起,被按壓後才跟"C"接腳斷開不通電。所以透過不同的接線方法,可以選擇被按壓時,是要讓線路通電、或是要斷電。

Marlin內與限位器相關的設定


再來要了解Marlin Configuration.h裡,對於End-Stop腳位狀態的定義,要怎麼設定。一般軟體設計,都會定義IO腳位讀取值為1時,是為腳位驅動(Triggered)。Marlin裡也是這麼設計的。所以當RAMPS的S腳位浮接(不接任合線路)時,會視為Triggered。但是如果硬體線路必須要定義成S腳位為低電位時當作Triggered,這時可透過"ENDSTOP_INVERTING"的設定,改變Marlin對S腳位的定義。當設定值為"true",S腳位接地會變成"Triggered"。

另外還有 "DISABLE_MAX_ENDSTOPS" 跟 "DISABLE_MIN_ENDSTOPS" 兩個設定值,是用來告訴Marlin,是否有接 "MAX_ENDSTOPS" 跟 "MIN_ENDSTOPS"。例如沒有接MAX End-Stop的話,可以把 "//#define DISABLE_MAX_ENDSTOPS" 最前面的 "//" 刪掉,這樣Marlin就不會去讀取MAX End-Stop的狀態了。

融會貫通

綜合上述的所有設計細節,就可以融會貫通的解答END STOP相關的問題了。

如果單純使用微動開關當作限位器,那一定要接RAMPS上的 "S" 跟 "-" 腳位。因為"S"腳位在控制板CPU內部已經被Pull-up到高電位了,所以想要讓"S"腳位的狀態改變,只有把他拉去接地一途。"S"接到"+"是沒有作用的。

"S"腳位在CPU內部已經內見Pull-up電阻了,所以直接連接到"-"接地腳位,是不會燒毀的。

"ENDSTOP_INVERTING"設定值要看End-stop硬體線路的接法而定,如果希望"S"腳位為高電位或浮接時,定義為"Triggered",則"ENDSTOP_INVERTING"要設定成"false";反之如果希望"S"腳位為低電位或接地時,定義為"Triggered",則"ENDSTOP_INVERTING"要設定成"true"。

整個系統上有好幾個會改變狀態的變數,要全部融會貫通,才能設計出讓限位器正常工作的設定。如果不太確定自己能設計出對的設定,建議還是先依照i3組裝筆記內的說明進行安裝。而且務必檢查有沒有接錯,再開始做馬達的測試。

最後,祝大家列印愉快~


----
註1:ATmega-2560 的IO pin 有內建 Pull-Up 電阻在IC內部,不需要在外部電路另外安排 Pull-Up 電阻。ATmega-2560規格書第七頁。

2014年4月8日 星期二

熱敏電阻阻值實測

鑒於上回使用熱敏電阻規格書上給定的特徵值,實做出來的"溫度對電壓"轉換表,仍然與擠出頭的實際溫度有相當的落差,特地買了一個熱電偶溫度計,配合三用電表,嚐試著自己測量可變電阻的特性參數。
熱敏電阻用三用電表測量阻值,同時用熱電偶溫度計測量水溫。

實際測量的溫度對電阻表列
溫度電阻值
81.59890
80.810090
79.410540
74.612430
69.914630
65.417290
60.121200
5525600
50.131300
45.339400
39.651200
35.461800
32.271900
31.673900
25100000

利用Excel 整理出實測值的曲線圖,並且配上透過公式算出來的電阻對溫度曲線,發現B值使用規格書上載明的3950,與實測值有相當的差距。
透過調整B值,讓特性曲線盡量逼近實測值,發現B值取4300會比較恰當。不過由於我使用辦公室開飲機的熱水做溫度測量的標的,所以只能測量室溫到80度左右的電阻值,所以並不能確定80度以上,一直到300度的特性曲線,是否與B值4300的特徵相符。改天再使用加熱鋁塊來測量熱敏電阻在溫度300度附近的特性。

畫特性曲線的EXCEL在此,有興趣的朋友可以參考:https://docs.google.com/spreadsheet/ccc?key=0AgxRsa-TcCE0dFVCT0pxdk5jUG1RTG82UGRkNk1sdlE&usp=sharing

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