Introduction: XYZ

Picture of XYZ

利用抽屜滑軌,以精簡版本的CoreXY架構形成X-Y平台。以步進馬達與正時皮帶作為帶動,以簡單的木工組合。

我故意不做精確的設計,在大部的設計想法成形之後,只憑感覺去安裝每個細部部件。我試圖用最直覺的方法去設計與安裝這個系統,我把精確度建立在零件的信賴之上。我覺得目前技術的進步已經涵蓋大部分的系統需求,甚至是最一般的零組件,也都已經有某種程度的精確度。

因為這個系統的設計非常依賴手作的直覺,我在設計的時候採取皮帶方式的傳動。但即便是皮帶傳動,卻是【正時皮帶】,因此也保有一定的準確度。

傳動機構採用CoreXYhttp://corexy.com/theory.html。這是一種使用正時皮帶的傳動方式,在機構的組裝容許誤差範圍較大,適用在這個計劃上。

Step 1: 材料

Picture of 材料

如圖準備材料

補充:還要一部手電鑽與木材用鑽針

Step 2: XY軸安裝

Picture of XY軸安裝

在XY軸平台的設計理念上,原本是以A4紙面積為工作範圍,但受限於手邊有的木條長度,最後只能縮小到20cmX20cm的工作範圍。

木條框架的固定方面,另外加上了PVC板與木螺釘的固定,以求穩固。

抽屜滑軌的固定方面,就是一般抽屜滑軌的安裝。這組抽屜滑軌是去特力屋http://www.i-house.com.tw/product/detail/id/78769?kw=%E4%B8%89%E7%AF%80+%E6%BB%91%E8%BB%8C&pi=0買的,裡面原本就有附上安裝說明與螺絲釘,因此就依照指示安裝就可以了。

這裡要注意的是,兩個平行滑軌必須十分平行,因此在安裝上必須不斷試運行與調整,直到運行順暢為止。

Step 3: 安裝馬達、轉軸與皮帶

Picture of 安裝馬達、轉軸與皮帶

這個架構是根據CoreXY修改而來。兩個步進馬達分別不同的轉向與轉速,可以讓中心的雲台部分任意的移動位置。我根據設計圖在實體的木條位置上鑽孔,並且安裝馬達與牙條。

牙條的部分搭配雙重螺帽的固定方式,可以在牙條的高度上微調滑輪的位置。

皮帶是一整條的使用。頭尾都是固定在中央雲台的位置。

Step 4: Z軸安裝

Picture of Z軸安裝

Z軸的部分我是拆掉一台DVD光碟機。裡面負責讀寫頭的機構是步進馬達的設計。這個步進馬達也是四線式的設計,因此可以相容接受arduino EasyDriver的驅動。

將大部分零件拆除之後,尋找外框機構中平坦的位置,利用木材與螺釘固定,用以與系統的雲台相連接。

接著中間黑色原本光學讀寫頭的機構,也是同樣尋找平坦的位置,固定一個木板,用來與將來的酬載相連接。

Step 5: 線路安裝

Picture of 線路安裝

線路圖展示了這個系統的線路安裝原理。原則上就是grbl的建議安裝方式,詳細的說明網路上很多。

在限制開關(Limit Switch)的安裝方面,需要尋找平台上當極限狀況發生時會有接觸的部位,將開關安裝在那些位置。測試的方式非常直覺,就是手動將雲台推至極限的位置時,開關會被按壓到就可以了。

開關線路要安裝在開關常閉的接點上。

Step 6: 軟體

grbl github grbl v0.9i + corexy + UNO

前往grbl網站下載https://github.com/grbl/grbl,這裡是使用v0.9i版本,並根據說明進行安裝。如果安裝成功,則再重新開啟Arduino 開發環境的時候可以在 檔案->範例->第三方程式庫的範例 中發現grbl項目,就表示安裝完成。

在第三方程式庫範例中,grbl只有一個範例叫做grblUpload,那是用來安裝在arduino中的韌體程式。在安裝這個韌體之前必須先修改程式酷的原始碼。在原始碼中,需修改config.h的內容,以便符合CoreXY機構。

在arduino預設存放使用者程式碼的地方,有一個library資料夾,grbl的原始碼在裡面。打開當中的config.h檔案並在其中尋找下列程式碼,將斜線//拿掉以便開啟CoreXY的支援。

// #define COREXY

接著打開前面提到的範例程式grblUpload,然後連接arduino板子進行上傳。

如果板子是MEGA這時候應該可以順利上傳。如果板子是UNO,則會發生不能上傳的問題,這時必須再修改config.h的內容,尋找下列程式碼,拿掉斜線//,然後重新編譯上傳,這時候應該就可以安裝在UNO上了。

// #define REPORT_GUI_MODE

Universal Gcode Sender

arduino安裝好韌體之後,這時候已經可以開始測試系統的運作。可以參考網路上關於gcode的定義,然後將arduino所連接的COM Port用通訊軟體打開,就可以對arduino直接傳送gcode,這時步進馬達就會開始動作。

如果要進一步傳送由其他軟體產生的gocde檔案,則必須使用grbl的GUI軟體,這裡我使用的是Universal Gcode Sender https://github.com/winder/Universal-G-Code-Sender

這個軟體裡面有傳送單步指令的功能,可以用來校正系統。這個系統是採用步進馬達作為移動的來源,步進馬達可以精確地傳達【步數】,但是步進馬達的【一步】代表實際狀況的多少距離,則必須由grbl內部變數去換算。這一部分可以先閱讀grbl相關說明https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9。在預設的情況下,grbl的單位是mm。所以從軟體送出的【一單位】就是1mm的意思。但是因為原始設定對於步進馬達一步代表多少mm只是一個預設值,與我們安裝的系統不盡相同,因此我的作法是在XY的雲台上固定一枝筆,然後用軟體叫系統畫一條線,例如100mm,接著用鐵尺去量測畫出來的線是否符合。如果不符合,再去計算相差的倍數,然後拿這個倍數去修正grbl裡面的步數比例變數。以我的系統來說,就是去修改grbl裡面的$100 $101這兩個變數。

inkscape + www.cnc-club-ru/gcodetools

為了要產生gcode的檔案,我使用了inkscape這個軟體https://inkscape.org/en/來設計向量圖樣,然後搭配inkscape外掛www.cnc-club-ru/gcodetools來產生gcode檔案。

Step 7: 測試

在inkscape裡面用線條描繪想要輸出的圖案。

點選外掛gcodetools -> path to gcode 點選 apply。檔案輸出位置必須先在Preference裡面指定好。

在gcode sender裡面先做好歸零。
步驟:
以手動方式將雲台推至零點位置。
在gcode sender裡面 Manual Control的地方,按下XYZ分別的reset,此時XYZ的座標值就會顯示在0的位置。

到File Mode裡面讀入剛剛inkscape外掛產生的gcode檔案。

按下send,此時系統就會開始根據檔案裏面的gcode移動雲台。

點選Visualize還會出現一個3D視窗顯示檔案內容的立體圖案以及目前三軸移動的情況。

Comments

rickharris (author)2016-03-10

Very good images what a pity we in the west can't read the no doubt detailed account

Any moderator out there willing to pass it through google translate and insert the English for each step?

About This Instructable

2,056views

40favorites

License:

More by DahaiP:programmable electric vehicle(Arduino+TAMIYA)XYZ金屬探測器
Add instructable to: