2014年11月11日

作一個CNC的寫字機




先來看段影片,這麼端正的字是電腦握筆寫出來的喔,這就是CNC寫字機啊。
CNC寫字機_05


一般說的CNC想到的都是銑床、車床,不過CNC是電腦數值控制(Computer Numerical Control)的意思,由電腦精密控制機具移動的位置,我手邊有的CNC機器就有一些,像是eggbot畫蛋機3D印表機、雷射雕刻機。


那要怎麼自己打造一台CNC機器呢?關鍵在於控制的大腦與產生動作的元件,大腦當然就用arduino,產生動作的則是使用步進馬達囉,而要驅動步進馬達則是用Easy drive這款驅動器。
線要怎麼連呢?grbl的官網有教喔...https://github.com/grbl/grbl/wiki/Connecting-Grbl

CNC寫字機_15




機器架子用的是非常廉價的東西,39元保鮮盒當底座和10元四支的麻將牌尺(我只用一支多)當Z軸支架,上頭再用M6螺絲螺母作固定。

CNC寫字機_16



步進馬達的來源,其實是直接拆了光碟機得來的,X軸Y軸都是像這篇這樣拆出的,Z軸則是直接用買來的步進馬達,圖的是上頭已經有滑塊,我就不用另外準備了。因為不太會有大震動,所以X軸和Y軸都是用M6螺絲固定在麻將尺和保鮮盒上,而Z軸是固定在X軸的光碟讀寫頭上。
CNC寫字機_14


arduino的供電,當然直接用電腦的usb就行,不過步進馬達和easy drive就要另外供電了,我量測這樣的裝置,需要5V、1A的電源,我拿ATX電源供應器改造一下就可以拿來用了。

全部裝起來就長這個樣子了,如果要再輕便使用,再弄個專門用在arduino微型激光雕刻機的擴充板裝起來放在保鮮盒裡就可以了。
CNC寫字機_12


硬體裝好之後,接著是處理軟體問題。

我用的韌體是Grbl。先照這邊的方法,把Grbl上傳到Arduino。因為我的作業環境是linux,所以就從 Easy Flash 這個scrip去作這個步驟。


Easy Flash script預設arduino的安裝位置是/home/$USER/arduino-1.0/,不過現在ubuntu的arduino的安裝位置換地方了,把arduino裝到/usr/share/arduino/ ,所以我就得小改一部分。改好之後,跟著上傳就行了。

上傳完其實也不知道自己有沒有成功,所以就開啟serial monitor(用arduino IDE的就行),baud rate設定115200,如果看到畫面出現下面這行,那就搞定了。

Grbl 0.9g ['$' for help]


接著就是要依據我的螺杆間距和步進馬達的轉動角度等去設定每mm要走幾步

我的步進馬達都是轉一圈20步,easydrive的微步進設定都是1/8,X軸和Y軸間距是3mm的螺杆,z軸的間距則是細一點,只有0.5mm。

接著用下面這個公式計算出每mm走幾步,然後再設定回grbl。設定方式是在terminal直接打$100=53.333 這樣的數據,就可以設定x軸的資料,y軸z軸以此類推。不過我設定z軸的時候,本來應該用320,但是後來發現怪怪的,所以改成用80。這也沒什麼關係,反正在這個寫字機的設定裡,它只是用來讓筆上下的,不準也還好。

(每轉一圈需幾步*微步數)螺距


$100=53.333 (x, step/mm)
$101=53.333 (y, step/mm)
$102=80.000 (z, step/mm)



然後就可以開始找軟體去控制機器了,我用的是跨平台用java寫成的Universal-G-Code-Sender,無論是linux環境或是windows環境都能用。

最後就是要做出G code了,最簡單的方式就是用inkscape來作,因為做出的就是向量檔。可是要再把向量圖案轉換成G Code,那就要再用外掛了,我用的是laserengraver extension (外掛來源 )。


下載回來的外掛檔,要放到inkscape安裝目錄裡的extension資料夾,然後重新啟動inkscpe,成功的話,在擴充功能底下就會看到多出一個功能..Laserengracer。


使用的方式是在inkscape把畫好的東西轉成路徑之後,再開啟擴充功能/Laserengracer。要注意的是Preference裡的Directory不能有中文路徑,不然會轉檔失敗。

轉出的Gcode是用在雷射雕刻,而我作的是拿筆去寫,所以要把部份Gcode改掉,把雷射頭的開啟關閉改成Z軸的下降和上升,也就是把M03改成Z-0.6(打開打開雷射改成下降z軸0.6公分),M05改成Z0.5(關掉雷射改成上升z軸0.5公分)。實際上要上升多少、下降多少,得靠經驗微調。我建議是拿軟筆來寫,會比較順暢。


雖然我已經有一台光碟機改成的雷射雕刻機了,不過自己想試試看作CNC的XYZ寫字機。這對未來學習改造3DP,還有製作CNC雕刻機有重大意義。不過在那之前,會先做出XYZ的顯微鏡載物台。不過Z軸比較困難,應該會先作XY軸的。


其實便宜版的3DP也可以用這個方式製作出來,只是要有強健的框架。不過工作範圍太小了,這是由步進馬達的絲桿長度來決定的。受限於光碟機直接拆出的零件,我這寫字機,最大沒辦法超過4cm x 4 cm

這個用Arduino作的CNC機器,後來發現還可以用手機來控制,就用OTG線就行了。