找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15197|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

arduino當(dāng)Gcode解釋程序(CNC)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:112317 發(fā)表于 2016-4-9 22:38 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
第一次發(fā)帖...之前上論壇都是查資料的,發(fā)現(xiàn)gcode這一塊資料比較少

先說一下Gcode:
Gcode在工業(yè)控制上用的很多,是一種通用的控制指令,數(shù)控機(jī)床上經(jīng)常用
在我diy雕刻機(jī)(打印機(jī)之類的)的時候要用到,遇到不少問題,研究了好幾天把問題基本都解決了。
發(fā)個帖子,為以后需要用到的人提供點幫助。

arduino上,我找到的有兩種Gcode編譯器,GRBL和gcode_interpreter。

GRBL限制比較大,用的是arv的C語言寫的,有目前較新的版本是0.8c,能用在328P的芯片上(UNO),其 他的芯片能用的不多,MEGA2560就不行了。缺點是安裝麻煩,需要用到winavr生成hex文件,再用XLoader上傳到UNO上。優(yōu)點是效率 高,功能強(qiáng)大,可設(shè)置加速度等。

gcode_interpreter,優(yōu)點是大多arduino都能用,用的是arduino語言寫的,只要下載好代碼,用arduino的IDE編譯下載到板上就能用了。

先說簡單的gcode_interpreterhttp://sourceforge.net/projects/cncarduino/ 這是下載地址。
一共有5個文件,我們主要看的是_init.ino文件,這個文件保存的是我們要用的PIN的定義
#define X_STEP_PIN 2
#define X_DIR_PIN 3
#define X_ENABLE_PIN 4

這段代碼設(shè)置了2,3,4管腳控制一個步進(jìn)電機(jī),2用來輸出一次脈沖,讓步進(jìn)電機(jī)走一步,3用來控制方向,4用來開關(guān)步進(jìn)電機(jī)(這個腳可以懸空不接,實際 上控制步進(jìn)電機(jī)的就是2根線step和dir,最后還有一根地線GND)。這個地方涉及到步進(jìn)電機(jī)的驅(qū)動問題,這個需要用到驅(qū)動板,不能用傳統(tǒng)的 arduino控制步進(jìn)電機(jī)的方法(除非改程序),這里推薦使用easydriver(X寶有,比較貴,但是比工業(yè)用的便宜吧)。Y_*,Z_*幾個管腳 也是一樣的,看你用幾個軸了。我們完全可以按照上面的默認(rèn)管腳接線,不用改代碼....
接下來需要設(shè)置的就是
#define X_STEPS_PER_INCH 400
#define X_STEPS_PER_MM   16.0
#define X_MOTOR_STEPS    200
這個是設(shè)置步進(jìn)電機(jī)屬性的代碼,#define X_STEPS_PER_INCH 400 是X軸轉(zhuǎn)動400步,行程1英尺,
#define X_STEPS_PER_MM   16.0是16步1毫米的意思
#define X_MOTOR_STEPS    200 是步進(jìn)電機(jī)200步走完一圈的意思(這個跟步進(jìn)電機(jī)的型號有關(guān),一般都是200)
設(shè)置完,下載到arduino里面就能用了。X,Z軸的設(shè)置和X的一樣。
可以在arduino的串口監(jiān)視器里面輸入 “X10” 不包括引號,點擊發(fā)送,要是安裝成功 你會發(fā)現(xiàn)X軸的電機(jī)走了10英尺(默認(rèn)是以英尺為單位)!癤-10”X軸的電機(jī)反方向走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版的居多,我把它上傳到網(wǎng)盤里了供大家方便下 載:http://pan.baidu.com/share/link?shareid=445050&uk=755352556,),不然編譯 會出錯,在arduino運行的時候會顯示EEPROM讀取錯誤,不能在arduino斷電以后保存設(shè)置(程序利用EEPROM保存相關(guān)設(shè) 置,gcode_interpreter沒有這個設(shè)置,要改設(shè)置只能改代碼)
3、打開winavr的notepad,新建空工程,將grbl的源代碼全部添加到工程里。
4、進(jìn)行相關(guān)管腳的設(shè)置,在config.h文件里面,在添加的文件里面找到config.h,雙擊打開修改
5、設(shè)置方法
     #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
     看到這幾句宏定義很熟悉吧,和前面的相似,不說了,其實完全可以不用改,按官方的設(shè)置接線就行,省了不少麻煩
6、在winavr的 programmers notepad 菜單欄點擊tools->make all,將代碼編譯,生成hex文件(就在代碼所在的文件夾)。
名字叫g(shù)rbl.hex
7、用XLoader->下載地址: xloader.russemotto點com 把hex文件下載到arduino上
8、安裝完成,在arduino的IDE界面打開串口監(jiān)視器,就會返回信息“ Grbl 0.8c '$' *****”(**里面的字我忘了)說明安裝成功了。
輸入“$”,發(fā)送,就會顯示菜單,輸入“$$”發(fā)送,就會顯示設(shè)置頁面,比如"$0=500"發(fā)送,就會將X軸電機(jī)設(shè)置為500步每毫米。更多的設(shè)置大家可以自己在軟件里看,每條指令后面還是會有解釋的,相信大家都能看懂。

希望對需要的人能有所幫助吧,原來在弄這兩個的時候沒什么頭緒,國內(nèi)網(wǎng)站幾乎查不到資料,辛苦好幾天總結(jié)出來的經(jīng)驗,其中可能會有我理解不對的地方,但是兩個gcode編譯器我都是親自測試能用的。

五個文件


電路圖


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

5#
ID:429705 發(fā)表于 2020-10-31 18:21 | 只看該作者
樓主請了,Gcode_Interpreter源碼有嗎?方便發(fā)我一份嗎,謝謝!
回復(fù)

使用道具 舉報

地板
ID:808811 發(fā)表于 2020-7-28 13:30 | 只看該作者
這個電路圖用哪家的線路板軟件畫的?
回復(fù)

使用道具 舉報

板凳
ID:81138 發(fā)表于 2020-7-24 15:15 | 只看該作者
Gcode_Interpreter的詳細(xì)資料有嗎?
回復(fù)

使用道具 舉報

沙發(fā)
ID:219787 發(fā)表于 2020-7-2 17:18 | 只看該作者
樓主你好,Gcode_Interpreter的詳細(xì)資料有嗎?方便的話發(fā)我一份,謝謝
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表