先瞧下目前已安裝至新改成遠端送料X軸安裝座的近接開關,這是歷經了10來次改版後的樣子,還在持續修訂中。:)
(注意下,如圖這風扇是裝反了,應該是有圖樣這面朝內吹才對。)
Inductive Sensor Holder

自動調平,正確的英文名應該是「Auto Bed Leveling (自動底床調整)」,目的是可以自動探測噴頭在底床不同位置 (如上左下右)時與底床的位移距離,使之得以在後續的打印過程中,動態調整Z軸的高度,達成讓第一層的打印平坦順利 (第一層打印成功,一大半後續的打印就沒啥問題了。)

讓 Prusa i3 具有自動調平功能,主要就是兩大重點:

  1. 硬體與電路的安裝
  2. Marlin 設定與校正

這裡就先簡單聊下硬體與電路的安裝部分,Marlin 設定留待另一篇分享。

硬體與電路部分主要有三個重點:
1. 選購可感應底床位置的近接開關。
2. 打印一個可以 Hold 住近接開關並盡量靠近噴頭處的列印件。
3. 接線到電路板 (Ramps 1.4)的限位開關腳位。


近接開關
從 Marlin 的設定可以得知,探測底床距離的裝置大致上有三大類:Servo, Sled, Inductive Sensor,可以參考這篇:DNE Bed Auto Leveling。目前比較普遍是採以 Inductive Sensor (電感式傳感器),設定簡單且便宜。

首先就是買個可以感應平台距離的接近 (或稱近接) 開關。我買的是這款:LJ18A3-8-Z/BY 電感式 PNP NO (常開),可參考雄大這篇:電容式近接開關平台自動補正,針對產品編號有詳細的說明。這應該是最便宜的方案了,一支電感式近接開關約不到新台幣100元 (當然還是有看品質)。不過老實說我不是很喜歡這樣那麼大一支,不好裝在噴嘴旁處,未來我是打算再換成更小型的近接開關。
LJ18A3-8-Z/BY 近接開關

要稍注意的是,感應距離最好能至少6mm 以上,上述我購買這款是 8mm,如此比較有彈性可以動態調整與噴頭的上下位移 (offset)。

然後也要注意下,底床要確實可以被這類近接開關可以感應,所以一般需是金屬材質,像我的 MK3 就是鋁基板,所以沒有問題;若是 MK2 搭配玻璃底床的話,那麼還必須在玻璃底下未來近接開關會移動至所偵測感應的位置上貼上鋁箔使之感應,會相對麻煩些。

近接開關 Holder
其實花我最多時間的是就是要自行客製化如何打印個可以裝上 (Mount) 這支大大的近接開關的 Holder。因為要能與X軸噴頭座連結得起來,且盡量就是要能靠近噴頭位置,這樣多點探測的準確性應該會高些。

一開始我當然是透過 Thingiverse (搜尋 Inductive Holder)找有否現成的列印件,但找尋許久仍無法找到合適的,所以乾脆從無到有,自行利用 123D Design 將之畫出3D模型並列印出來。

其實這就是一個好時機,可以學習 3D繪圖,這可是我以前從未有過的經驗。只是第一次畫出看來應該是很簡單的「Inductive Sensor Holder」,就足足花了我兩天時間!

題外話,經過這樣的學習障礙期,突然體會到,3D繪圖的最基本原則就是:Everything is Object. 任一3D模型的局部,都可被視為是單一物件,然後再去定義設定它的屬性 (property),以及這些物件之間的關聯 (分割、合併、交集、聯集、差異⋯等。)。掌握最基本的原理,然後再逐漸去熟悉各類3D繪圖軟體的工具應用,就不會覺得很難學這類陌生的3D繪圖,並進而能自行學習創造自己的繪圖作品。:)

回歸正題,下圖這是我第一個版本的 Holder,這是配合一開始組好時的近端送料賣家所附的X軸底座列印件。
Inductive Sensor Holder

這近端列印件底座挺粗糙的,附載了擠出機 (也是列印件)與電機馬達會導致過重了些而有歪斜的現象,所以沒多久我就改成遠端送料的機構,且X軸底座改成從淘寶另購的全金屬X軸安裝座。從近程改成遠端送料就另篇再行分享,總之改裝過程是整個噴頭、風扇、近接開關等安裝座 (Mount)全都要重新設計過,看似簡單,其實還真花了不少的設計功夫。
Inductive Sensor Holder

Inductive Sensor Holder

再來仍是持續的修正與調整近接開關 Holder的位置,包括從前側改放置於左側,目的是為了能更穩固些,並且盡量使其靠近噴頭位置。
Inductive Sensor Holder

Inductive Sensor Holder

總之呢,歷經好幾個版本的修正,可想而知起碼打印了10來個列印件,慢慢地才逐漸符合自己想要的,且採以模組化與底座的分離,未來更換會更容易許多。
Inductive Sensor Holder

電路連接
我原來是希望可以讓近接開關與原來Z軸的限位開關並存,並且各連接至 Ramps 主板的 Z-Max、Z-Min 的腳位上,如此可以讓原來的限位開關作為保險,萬一近接開關失靈的話,不致讓噴頭一直往底床頂下去,這挺可怕的。

上述雄大那篇文章的架構二是把近接開關的接線連接至原來Z軸的限位開關上,這樣是可以達成並存的方式,但個人並不喜歡這類方式,我還是傾向個別連接 (ZMax、ZMin)分開處理比較理想。

但我花了很多時間研究 Marlin 的設定,好像採以並存方式的話,近接開關就無法具有 Auto-Home、只具有探測 (probe)的功能而已。反正爬文了一堆、也在國內3D印表的論壇請教先進,但還是沒有得到答案。這以後再來試看了。

反正現在我就是把原來的Z軸限位開關拿掉,改採近接開關直接連接至原來Z軸限位開關的腳位 (ZMin),這樣很簡單就可以達成電路的連接。 (其實也可以想成近接開關就是光學版的限位開關)

另外一個要考量的問題是,這類近接開關要注意的就是接線到 Ramps 1.4 問題,要是電壓高出太多,或是接錯位置,動輒就會把板子燒壞,我就是有遇到這樣的教訓。 :(

可以參考這篇:Z-Probe 平臺自動補正(自動調平) - inductive proximity sensor (接近開關),寫得相當仔細。

主要注意兩點:

  1. 這類電感式的輸出電壓為 12V,而觸發限位開關接腳的訊號 (ZMin, ZMax...)則為 5V。所以必須要自行修改下線路,將 12V 降壓為 5V。上述雄大的文章有提及採以 15K 與 10K 歐姆的電阻來分壓,這是最簡單的方式;而我是因為已有這類可調降壓的模組 (一個淘寶才賣約5元人民幣,超便宜),所以只要輸入端接上 12V,然後輸出端調整下旋鈕,使用三用電錶量測輸出電壓為約 5V 即可。
    Inductive Sensor Holder
  2. 觸發訊號正負極千萬不要裝反,否則電路板馬上燒給你看。

確定連結電路板,然後拿個金屬物質 (如鎳子)靠近開關底處後能顯示紅燈,表示有觸發訊號,那就是代表電路連結沒有問題。