古人智慧

Just Do it!
上士聞道,勤而行之;中士聞道,若存若亡;下士聞道,大笑之。不笑,不足以爲道。
~ 道德經 41

「實現夢想不是追逐成功,而是在於賦予生命意義,人生中的每個決定與聲音都有其重要含義。」"The key to realizing a dream is to focus not on success but on significance — and then even the small steps and little victories along your path will take on greater meaning."
電視名人-歐普拉·溫芙蕾(OPRAH WINFREY)

搜尋此網誌

Translation

2016年10月28日 星期五

[3DP] Prusa i3,Z軸升級8mm螺桿(絲桿) 與 電感式近接開關(接近開關)

看到Prusa i3的原創發表Prusa i3 MK2這麼多神奇的功能,讓我對心愛的老爺機i3的升級有了極大信心。是的,這次參考MK2的精神,升級Z軸的螺桿從5mm到8mm,然後再加上電感式近接開關。
升級Z軸的螺桿5mm到8mm的部分最擔心部分是怕干涉到旁邊8mm直線軸承的空間,參考MK2後再把X軸的馬達電機端的SCAD code調出來,發現垂直空間是有干涉,但是T型的螺母是鎖在表面,並不會直接影響到整體結構,這讓我大大的松一口氣。。。
然後,這近接開關也是新的嘗試,首先上網找資料後這近接開關有不少規格,包含直徑、感應距離,還有NPN與PNP兩種type。其中NPN與PNP讓我最困擾的原因是這種近接開關只有12v,幾乎找不到有5v驅動。這就影響到如何與Arduino的input pin的接線,因為近接開關的觸發 pin是以12v為基準,這會燒掉Arduino. 
經過Google大量的搜尋,我決定買NPN,原因是NPN的觸發的pin是low enable,這樣的邏輯就不擔心12v的問題,在output pin與5v做pullup那就與機械式switch相同,可以用同樣的接法與電控板連接。

先分享測試的結果:
這鋼板是一年前為了做實驗印ABS的線材,可以讓底座熱傳導更好。沒時間做就放到現在,剛好近接開關又買錯4mm的,拿來使用真是速配!!!
這測試STL是100x100mm的外框,裡面有2mm/3mm/5mm的圓,來測試平台黏著與Marlin的加速參數設定的穩定度。這結果讓人滿意~~~
《自動Z軸校正真有效》

《只有一個掉落,應該是膠水沒塗到吧》

《尺寸正確,沒變形》


詳細製作過程分享:
材料清單:
T型8mm螺桿(絲桿)/300mm, 8mm導程
彈性聯軸器5x8x25mm
 LJ12A3-4-Z/BX NPN NO常開 12v 4mm測距(不小心買錯了,建議買測距6mm以上) 

X軸的結構設計:
主要是把T螺母的空間讓出來,還有挖兩個螺絲孔來固定這個T型螺母。
還有,Z軸頂端的固定座也要修改,讓8mm的螺桿可以穿過。

實體圖分享:
《馬達電機端 前視圖》

《馬達電機端 後視圖》

《T型螺母》

《埋深螺母》

《8mm螺桿》

《Z軸頂端與X軸零件一覽表》

《X軸的可調皮帶功能》


《Z軸原來的調整器保留》

《完成品》

《開始打印LCD控制器外殼》

《第一層非常穩定,連字母都很老實貼的牢牢的》

Marlin: configuration.h 
在Marlin的source code裡面,在Configuration.h內可以找到這一行
#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,400,96.2};
把Z軸的部分改為400,,就可以用這個T型8mm螺桿


近接開關結構設計:
因為不想改變現在的擠出機結構,因為目前現役這個擠出機是我自己設計而且用了1年多非常穩定。所以,就考慮到做個簡單的holder再用熱熔膠固定。



近接開關接線圖:
棕色接在12v電源,黑色是觸發pin,藍色是ground。

當近接開關接好後,先開機然後拿個金屬的東東接觸近接開關的底部,觀察近接開關頂部是否有亮燈,表示接線無誤。

然後,開始改Marlin。
Marlin: Configuration.h
在Configuration.h裡面找到這段code,我是設定近接開關接到原Z軸Min的pin腳。
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.

如果要Z_Min 與 Z_Probe共存的話,那要在pin_ramps.h裡面
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
  // Define a pin to use as the signal pin on Arduino for the Z_PROBE endstop.
  #define Z_MIN_PROBE_PIN  2
#endif

在Configuration.h改
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
那這個近接開關的黑色與藍色線要接到X_MAX的位置,也就是第2個位置(在X軸的下一個)

自動Z軸Marlin的修改:
在Configuration,h
把這兩段的註解“//”拿掉,再設定測點。
#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
 #define AUTO_BED_LEVELING_GRID
 #if ENABLED(AUTO_BED_LEVELING_GRID)

    #define LEFT_PROBE_BED_POSITION 15
    #define RIGHT_PROBE_BED_POSITION 170
    #define FRONT_PROBE_BED_POSITION 20
    #define BACK_PROBE_BED_POSITION 170

最後,把code編譯後upload到Arduino,就可以開始測試自動校正功能啦!!

自動Z軸校正操作:

1. 先確定近接開關與平台的距離與測點,這部分非常重要。這些測點位置是在Marlin的Configuration.h裡面寫死的。
如果用玻璃平台,先讓i3跑 G29啟動自動校正,然後用筆標註好位置,在背後貼銅箔。如下圖:
如果用整個鋼板,那就沒什麼關係。

2. M851指令,這個指令可以動態調整Z軸與平台“零點”的offset。這個非常好用,我的做法是調整近接開關感應距離內例如4mm,噴頭還沒碰到平台,這樣可以保護噴頭。再用M851調整真正的零點,M851 Z-1.8,就是真正打印是讓噴頭下降1.8mm。

3. M500,這指令是把目前的參數寫到i3的EEPROM,保持下次開機時都存在不會丟失。

至於如何把指令下給3D打印機? 很多種方式,我是使用Repetier-Host,如下圖,連上3D打印機後,在“手動控制“的功能區內的G-code欄位輸入指令即可。


Z軸校正視頻:

video


實際打印的結果。。。。
《第一層,牢牢貼緊平台,會發現Z軸馬達會上下移動》

《第二層,漂亮》

《第三層》

《第四層》

《開始印殼》

《出爐了,完整印出》

《正視圖》

《第一層很平整,但是我調的太深了,噴頭應該再高一些》

《條條分明》

《Z高很平整層層分明》


這次升級很滿意,費用不到3百元台幣,可以讓我脫離每次都要調整Z軸的痛苦。。。




5 則留言:

  1. 粉紅色的那個近接開關座STL檔可以分享嗎?
    ps:文章中的連結是錯的

    回覆刪除
  2. 請問一下 T型螺桿長度導程8mm 螺距是要買 那一種的?

    回覆刪除
  3. 請問一下螺桿直徑8mm 螺距2mm 導程8mm 長度300mm 是要買這一種的嗎?

    回覆刪除
  4. 請問一下可以要你的Marlin_i3的設定檔嗎?我用了好多天還是用不出來?

    回覆刪除