第一次發帖...之前上論壇都是查資料的,發現gcode這一塊資料比較少
先說一下Gcode:
Gcode在工業控制上用的很多,是一種通用的控制指令,數控機床上經常用
在我diy雕刻機(打印機之類的)的時候要用到,遇到不少問題,研究了好幾天把問題基本都解決了。
發個帖子,為以后需要用到的人提供點幫助。
arduino上,我找到的有兩種Gcode編譯器,GRBL和gcode_interpreter。
GRBL限制比較大,用的是arv的C語言寫的,有目前較新的版本是0.8c,能用在328P的芯片上(UNO),其 他的芯片能用的不多,MEGA2560就不行了。缺點是安裝麻煩,需要用到winavr生成hex文件,再用XLoader上傳到UNO上。優點是效率 高,功能強大,可設置加速度等。
gcode_interpreter,優點是大多arduino都能用,用的是arduino語言寫的,只要下載好代碼,用arduino的IDE編譯下載到板上就能用了。
先說簡單的gcode_interpreter,
http://sourceforge.net/projects/cncarduino/ 這是下載地址。
一共有5個文件,我們主要看的是_init.ino文件,這個文件保存的是我們要用的PIN的定義
#define X_STEP_PIN 2
#define X_DIR_PIN 3
#define X_ENABLE_PIN 4
這段代碼設置了2,3,4管腳控制一個步進電機,2用來輸出一次脈沖,讓步進電機走一步,3用來控制方向,4用來開關步進電機(這個腳可以懸空不接,實際 上控制步進電機的就是2根線step和dir,最后還有一根地線GND)。這個地方涉及到步進電機的驅動問題,這個需要用到驅動板,不能用傳統的 arduino控制步進電機的方法(除非改程序),這里推薦使用easydriver(X寶有,比較貴,但是比工業用的便宜吧)。Y_*,Z_*幾個管腳 也是一樣的,看你用幾個軸了。我們完全可以按照上面的默認管腳接線,不用改代碼....
接下來需要設置的就是
#define X_STEPS_PER_INCH 400
#define X_STEPS_PER_MM 16.0
#define X_MOTOR_STEPS 200
這個是設置步進電機屬性的代碼,#define X_STEPS_PER_INCH 400 是X軸轉動400步,行程1英尺,
#define X_STEPS_PER_MM 16.0是16步1毫米的意思
#define X_MOTOR_STEPS 200 是步進電機200步走完一圈的意思(這個跟步進電機的型號有關,一般都是200)
設置完,下載到arduino里面就能用了。X,Z軸的設置和X的一樣。
可以在arduino的串口監視器里面輸入 “X10” 不包括引號,點擊發送,要是安裝成功 你會發現X軸的電機走了10英尺(默認是以英尺為單位)。“X-10”X軸的電機反方向走10英尺。
附一個我自己做的gcode控制畫圖的視頻鏈接.視頻中我用的是mega2560,gcode_interpreter。
http://pan.baidu.com/share/link?shareid=441374&uk=755352556
GRBL
注意:這個grbl官方說只能在 168 和 328P 的芯片上使用,168由于芯片空間較小,只用用0.51版的grbl。推薦用UNO r3
1、到
https://github.com/grbl/grbl下載grbl的源代碼,解壓到一個文件夾中。
2、下載安裝winavr,用grbl 的0.7版以上的,注意winavr一定要是20100110版的(比較難下2007版的居多,我把它上傳到網盤里了供大家方便下 載:
http://pan.baidu.com/share/link?shareid=445050&uk=755352556,),不然編譯 會出錯,在arduino運行的時候會顯示EEPROM讀取錯誤,不能在arduino斷電以后保存設置(程序利用EEPROM保存相關設 置,gcode_interpreter沒有這個設置,要改設置只能改代碼)
3、打開winavr的notepad,新建空工程,將grbl的源代碼全部添加到工程里。
4、進行相關管腳的設置,在config.h文件里面,在添加的文件里面找到config.h,雙擊打開修改
5、設置方法
#define X_STEP_BIT 2 // pin2
#define Y_STEP_BIT 3
#define Z_STEP_BIT 4
#define X_DIRECTION_BIT 5
#define Y_DIRECTION_BIT 6
#define Z_DIRECTION_BIT 7
看到這幾句宏定義很熟悉吧,和前面的相似,不說了,其實完全可以不用改,按官方的設置接線就行,省了不少麻煩
6、在winavr的 programmers notepad 菜單欄點擊tools->make all,將代碼編譯,生成hex文件(就在代碼所在的文件夾)。
名字叫grbl.hex
7、用XLoader->下載地址: xloader.russemotto點com 把hex文件下載到arduino上
8、安裝完成,在arduino的IDE界面打開串口監視器,就會返回信息“ Grbl 0.8c '$' *****”(**里面的字我忘了)說明安裝成功了。
輸入“$”,發送,就會顯示菜單,輸入“$$”發送,就會顯示設置頁面,比如"$0=500"發送,就會將X軸電機設置為500步每毫米。更多的設置大家可以自己在軟件里看,每條指令后面還是會有解釋的,相信大家都能看懂。
希望對需要的人能有所幫助吧,原來在弄這兩個的時候沒什么頭緒,國內網站幾乎查不到資料,辛苦好幾天總結出來的經驗,其中可能會有我理解不對的地方,但是兩個gcode編譯器我都是親自測試能用的。