2014年12月17日 星期三

牽絲是怎麼回事


  • 回抽距離太短,噴嘴尖端沒有負壓。待噴頭抬起,塑料就從噴頭溢出。
  • 回抽距離剛好,噴嘴尖端產生負壓。待噴嘴抬起,外面的空氣就會擠壓塑料,把料推回噴頭內。這樣就不會牽絲了!!
  • 回抽距離過長,空氣從冷端灌入,結果噴嘴尖端沒有產生負壓,結果跟沒回抽一樣,待噴頭抬起,塑料就從噴頭溢出。
  • 如果是遠端送料的結構,還要考慮鐵氟龍管跟塑料之間的間隙,會減少擠出頭端實際回抽的長度。
不好意思,發文沒付圖。

2014年12月9日 星期二

拆卸列印件的方法

這是我個人的方法,不是一定要照我這樣做。不過我這個方法相當安全,提供給大家參考。

從玻璃板背後,吹熱風。一直加熱到列印件底部也受熱。利用玻璃與列印件熱膨脹係數不同的特性,讓列印件不再黏的那麼牢。

玻璃翻回正面,一側靠牆,油漆鏟刀從另一側下刀。這樣施力才能完全用於鏟起工件,施力方向也不會朝向自己的另外一隻手,避免刀具傷到手的意外。可以旋轉玻璃,從四個方向慢慢推進鏟刀。


漆刀在一般的家庭五金行可以找到,要不然也可以上拍賣找找
漆刀的刀刃可以把磨銳利的那面,再磨的更銳利,以便切入工件的最底部。



朗朗設計也提供了另一個很厲害的拖磨脫模辦法,大家也該花點時間看看裡面的示範影片!!

2014年12月1日 星期一

ATOM 2.0 DEMO

新的ATOM 2.0,重新設計了幾個一代還沒做到完美的部分。
改進的項目很多,最重要的改進,應該就屬這三張照片拍到的部分:

1.全CNC削切的金屬擠出機

2.整個重新設計過的擠料頭。包括中央飛艇輕量化結構、擠出頭位置偵測機構、擠出頭散熱風扇、工件散熱風扇、全新設計的噴嘴、鈦合金侯管。精度更高的關節球、懸臂改用碳纖維管。

3. CNC銷切的CART,加上新加入的皮帶鬆緊微調機構。

另外LCD外罩以及旋鈕也是重新設計過的。原本料架使用列印件的部分也升級成金屬的。

升級套件啊到底什麼時候才能到貨? 口水都流滿地了!!




2014年11月20日 星期四

SketchUp 輸出 STL

1.下載外掛軟體
su2stl.rbs

2.

  • 如果是2013之前的版本,將 su2stl.rbs 複製到 C:\Program Files\Google\Google SketchUp 8\Plugins
  • 如果裝了2014/2015的版本, su2stl要丟到"C:\Users\YOUR USERNAME\AppData\Roaming\SketchUp\SketchUp 2015\SketchUp\Plugins"這個位置去

3. 重新啟動 SketchUp

4. 選取要輸出的模型,然後點選 "外掛程式 ->  Export STL file


5. 選擇 Millimeters (mm) 為長度單位。


6. 儲存檔案。注意整個存檔路徑,還有檔名,都必須是英文的。

2014年10月20日 星期一

不要弄傷自己!!

玩3D印表機,有幾個容易弄傷自己的操作過程。
拜託千萬要牢記這邊的安全提醒,不要再有人因為方法錯誤而受傷了!!

1. 從玻璃上拆卸列印件
2. 逼緊束帶
3. 操作還沒降溫的加熱頭

這三個動作最常發生意外,請大家特別注意。

1. 從玻璃上拆卸列印件

因機器而異,有些人覺得列印件很容易拆卸,用美工刀就能輕鬆完成。但是美工刀的刀片是非常容易破裂的,當工件黏得比較緊時,美工刀絕對會斷裂,而且亂噴。因而受傷的網友不計其數。

拜託千萬不要再使用美工刀來拆卸列印件了!!!

筆者建議得拆卸方式,請參考這篇~

2. 逼緊束帶

逼緊束帶也是個非常恐怖的步驟。大家很直覺得會使用自己的手指頭去拉扯束帶,甚至使用指甲去頂束帶頭,而且非常用力。這時只要方向稍微偏差,力量就會朝錯誤的方向拉開。這樣會導致指甲被整片掀起。非常恐怖,有兩位網友跟我報告過自己發生了這樣的意外。

拜託,逼緊束帶時,請用兩之尖嘴鉗進行操作。

3. 操作還沒降溫的加熱頭

這應該不用解釋,大家就可以想像會發生什麼事。沒錯,就是手指頭會燙傷。發生這意外的網友為數者眾,雖然大多不會太嚴重,不過能預防還是最好。如果有需要操作加熱中的擠出頭,請務必戴手套。不要很有自信的認為自己會記得使用鉗子去夾擠出頭,但是總是會在情急之下/腦袋不清楚時,不自覺的用手去摸擠出頭。燙傷是很痛的!!

工作手套請乖乖戴上!!


需要貼照片來讓大家心理有所警惕嗎??讓我再想想...

2014年10月14日 星期二

擠出機步進馬達的 Steps per Unit 該如何計算?

這邊 Steps per Unit 指的是塑料往前推進1mm,步進馬達須要走幾步。依此定義,可知計算方式可以用「步進馬達轉一圈需要的步數 除以 步進馬達轉一圈塑料往前推的距離」來求解。

步進馬達轉一圈需要的步數這樣算:

(360/馬達一步走幾度)*微步進細分數

馬達轉一圈塑料前進的距離這樣算:

2 * pi * (送料齒輪半徑 + 塑料半徑 - 齒痕深度)

2014年8月4日 星期一

PID控制動手玩玩看



PID三個參數到底該怎麼調才好,真的是一門藝術。

雖然在Marlin韌體內有提供自動測量的功能,但是測得的結果,不見得能令人滿意,還是需要調整。可是到底該怎麼調整?從哪個參數開始動手?數值該增加還是該減小?會不會調整了這個,又需要回頭調整上一個?整個調整過程實在是亂七八糟,不容易理出頭緒。在加上實驗需要時間,可是有一直找不出最佳參數,實在有夠累人。

今天我不曉得是哪根筋不對,突然想說可以用excel模擬PID溫度控制,這樣就可以很快得得到實驗結果,增加調整PID參數的經驗。雖然沒辦法直接透過模擬獲得擠出頭加熱需要的PID參數,但是至少可以熟悉調整PID參數對溫度控制的影響。

下載excel並且開啟後,可以看到左上角有可調整的參數,中間是模擬過程,右邊有兩個模擬結果的圖表。模擬參數分成兩組,前面幾項是環境變數,最後三項是PID值。

受熱物比熱:每公克的受熱物值,需要多少卡的熱量,能上升1℃。水的比熱為1(卡/公克-℃)
受熱物質量:(這不用解釋吧...)
初始溫度:(這不用解釋吧...)
環境溫度:(這不用解釋吧...)
目標溫度:(這不用解釋吧...)
散熱常數:跟受熱物散熱速度相關的常數。系統散失的熱量,我這邊用 (當下溫度 - 環境溫度 ) x 散熱常數來模擬計算。散熱常數越大,系統散失熱量的速度就越快;系統溫度跟環境溫度差異越大,散失熱量也越快。

PID:分別是比例控制常數、機分控制常數、微分控制常數。
系統熱量供應:這邊相對應於加熱棒輸出多少百分比的功率。這邊"系統熱量供應"的模擬計算公式如下:

"這次的"系統熱量供應 =
        P x 這次取樣的溫度誤差 +
        I x 從系統開始以來每次取樣的溫度誤差總和 +
        D x (上次取樣的溫度誤差 - 這次取樣的溫度誤差)

P:比例控制常數。誤差值乘上P值,再加回系統熱量供應。

如果只有P,I跟D都設為零時,我覺得可以把他比喻成開車的時候,油門只會"直接"踩到某個定值,或是完全放掉。不會微調油門的力道。理論上只用比例控制,仍然可以讓溫度控制在目標溫度附近,但是震盪的狀況會比較嚴重。就像司機開車,總是猛踩油門,又猛踩剎車,車子會跑,速度也有,只是乘客會暈到死...


D:微分控制常數。溫度誤差對時間的曲線圖,是一個二維曲線。而對二維曲線微分的幾何意義,則是斜率。所以微分控制,實做上是取上一次採樣與這一次採樣的溫度誤差相減,再除以兩次採樣的時間間隔,算出斜率。用斜率乘上D,再加回系統熱量供應。

D值的效果,我會把他比喻成"提早減速"。當車子的速度接近司機想要維持的速度,速度還沒超過之前,有經驗的司機就會開始預先減小油門。不要等速度衝過頭再來踩剎車,減少車子加速減速的震盪,讓乘客舒適不暈車。不過該提早多少時間開始減速、該減多少速度不要減過頭或是減太少,就要靠D值的大小來調整了。

 加入D "微分控制",可以讓系統較快穩定得達到目標溫度。

 合適的D值,能讓溫度快速又穩定得恆定在目標溫度,而且沒有衝過頭的問題。

 D值過大,提早剎車煞的力道多了,反而會讓系統不穩定得震盪。


再繼續加大D值,甚至會讓控制結果發散不能收斂到目標溫度。



I:積分控制常數。積分在這邊的概念,是把過去所有的誤差加總起來。積分控制當然就是拿積分控制常數乘以過去所有誤差的加總,,再加回系統熱量供應。

積分控制多用來校正穩態誤差。當溫度穩定下來之後,溫度離目標溫度仍然有些微的誤差,這就是"穩態誤差"。如果為了穩態誤差而調整P值,整個系統的穩定度會大受影響。積分控制靠累積穩態誤差,讓這個誤差的效應因累積而放大,再乘以機分控制常數,就可以消彌穩態誤差。

以上是我對PID控制的一些想法。特別注意我介紹的時候,順序是PDI,用意就是建議大家調整的時候,可以先來回調整P、D這兩個常數(I歸零),覺得系統穩定、滿意了,再針對"穩態誤差"來調整 I 積分控制常數。

修改受熱物的質量、比熱,可以觀察受熱系統熱含對PID控制的影響。修改散熱常數,則可以觀察系統散熱情況(多加了風扇吹喉管),對系統穩定的影響。透過模擬實驗,多改幾組環境,並且調出相對應的PID值,應該可以更熟悉PID控制這門藝術~

參考資料

關於PID的認識與討論?








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規格書第七頁。