grbl

第一次發帖...之前上論壇都是查資料的,發現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->下載地址: http://xloader.russemotto.com/ 把hex文件下載到arduino上
8、安裝完成,在arduino的IDE界面打開串口監視器,就會返回信息“ Grbl 0.8c '$' *****”(**里面的字我忘了)說明安裝成功了。
輸入“$”,發送,就會顯示菜單,輸入“$$”發送,就會顯示設置頁面,比如"$0=500"發送,就會將X軸電機設置為500步每毫米。更多的設置大家可以自己在軟件里看,每條指令后面還是會有解釋的,相信大家都能看懂。

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



5個文件.png (2.63 KB, 下載次數: 808)












五個文件

五個文件

電路圖.png (91.01 KB, 下載次數: 267)












電路圖

電路圖

第一次發帖...之前上論壇都是查資料的,發現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->下載地址: http://xloader.russemotto.com/ 把hex文件下載到arduino上
8、安裝完成,在arduino的IDE界面打開串口監視器,就會返回信息“ Grbl 0.8c '$' *****”(**里面的字我忘了)說明安裝成功了。
輸入“$”,發送,就會顯示菜單,輸入“$$”發送,就會顯示設置頁面,比如"$0=500"發送,就會將X軸電機設置為500步每毫米。更多的設置大家可以自己在軟件里看,每條指令后面還是會有解釋的,相信大家都能看懂。

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

5個文件.png(2.63 KB, 下載次數: 808)

2013-5-25 22:48 上傳

點擊文件名下載附件

五個文件

?

電路圖.png(91.01 KB, 下載次數: 267)

2013-5-25 23:34 上傳

點擊文件名下載附件

電路圖

?



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254753.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mybitis實現增,刪,改,查,模糊查詢的兩種方式:(2)

方式二:mapper代理接口方式 這種方式只需要xml接口(不用寫實體類)但是需要符合三個規范 使用mapper代理接口方式在同一目錄下(可以創建一個源文件夾,達到類文件和xml文件分類的作用)xml中namespace&#xf…

C語言中的靜態函數的作用

轉載 在C語言中為什么要用靜態函數(static function)?如果不用這個static關鍵字,好象沒有關系。那么,用了static以后,有什么作用呢?我們知道,用了static的變量,叫做靜態變量,其意義是…

[轉] sql server 跨數據庫調用存儲過程

A庫存儲過程: create PROCEDURE [dbo].[spAAAForTest] ( UserName nvarchar(20) null ,LoginPwd nvarchar(60) null ) AS BEGINselect NA AS a, NB AS B, NC AS C;END 同一臺服務器實例,A,B兩個數據庫,…

get_metrology_object_result_contour查詢計量對象的結果輪廓

目錄get_metrology_object_result_contour(算子)描述參數get_metrology_object_result_contour(算子) get_metrology_object_result_contour - 查詢計量對象的結果輪廓。 get_metrology_object_result_contour(&…

ABB 機器人 壓包指令PackRawBytes 解包指令UnpackRawBytes

ABB 壓包指令PackRawBytes 解包指令UnpackRawBytes PackRawBytes- 將數據導入 rawbytes 數據。 使用方法 PackRawBytes 用于將 num, dnum, byte,或者 string類型的數據,打包到 rawbytes 類型的變量中. 基本舉例 : VAR rawbytes raw_…

C語言中使用靜態函數的好處

靜態函數會被自動分配在一個一直使用的存儲區,直到退出應用程序實例,避免了調用函數時壓棧出棧,速度快很多。 關鍵字“static”,譯成中文就是“靜態的”,所以內部函數又稱靜態函數。但此處“static”的含義不是指存儲方…

react+redux+generation-modation腳手架搭建一個todolist

TodoList1. 編寫actions.js2. 分析state 試著拆分成多個reducer3. 了解store4. 了解redux數據流生命周期5. 分析容器組件和展示組件 搞清楚,數據到底是如何流動的?6. 編寫展示組件的代碼7. 編寫容器組件8. 傳入store9. 總結10. 參考TodoList 腳手架Githu…

c++11 原子類型與原子操作

1、原子類型和原子操作(1)類型(2)操作(3)詳述● 原子類型只能從其模板參數類型中進行構造,標準不允許原子類型進行拷貝構造、移動構造,以及使用operator等● atomic_flag 是一個原子…

get_metrology_object_measures獲取測量區域和計量模型的計量對象的邊緣位置結果

目錄get_metrology_object_measures(算子)描述參數get_metrology_object_measures(算子) get_metrology_object_measures - 獲取測量區域和計量模型的計量對象的邊緣位置結果。 get_metrology_object_measures(&…

依弗科(上海)機電設備有限公司

機器人噴涂倒計時,上帝幫我實現愿望吧 阿門 

外部變量和外部函數

C程序由一組對象組成,這些對象包括程序中所使用的變量和實現特定功能的函數。變量可以分為函數內部定義、使用的變量和函數外部定義的變量,通常情況下,把函數內部定義、使用的變量稱為內部變量或局部變量,而將在函數外部定義的、供…

gulp中使用babel-polyfill編譯es6拓展語法

今天想在新項目中使用es6的generators,發現雖然gulp已經有了babel編譯,但仍會報錯,網上查找后發現解決辦法是加載polyfill,但是找到的辦法都不試用我的項目。 解決辦法:在index.html中加載node_modules的babel-polyfil…

CoDeSys

CoDeSys是全球最著名的PLC內核軟件研發廠家德國的3S(SMART,SOFTWARE,SOLUTIONS)公司出的一款與制造商無關的IEC 61131-1編程軟件。CoDeSys 支持完整版本的IEC61131標準的編程環境,支持標準的六…

使用halcon結合機械XY軸對相機進行9點標定

小哥哥小姐姐覺得有用點個贊唄! 先在halcon中計算仿射變換矩陣并驗證 //在圖像中找到的模板中心位置 PicX:[1680.721,2065.147,911.499,526.798,1290.920,1285.731,1300.953] PicY:[968.321,964.366,976.283,980.035, 587.055,394.727,1355.487] //與圖像中查找…

Ubuntu Linux 提出新的發布模式——測試周

2019獨角獸企業重金招聘Python工程師標準>>> 導讀開源技術項目最大的優勢之一就是社區的每個人都可以自由地提出想法,如果獲得社區支持,它可以變成現實。著名的 Ubuntu 開發人員 Simon Quigley 就提出了一個可能改變 Ubuntu Linux 開發過程的…

264 I和IDR

I和IDR幀都是使用幀內預測的。它們都是同一個東西而已,在編碼和解碼中為了方便,要首個I幀和其他I幀區別開,所以才把第一個首個I幀叫IDR,這樣就方便控制編碼和解碼流程。IDR幀的作用是立刻刷新,使錯誤不致傳播,從IDR幀開始,重新算一個新的序列…

gen_caltab生成標定文件

目錄gen_caltab(算子)描述參數gen_caltab(算子) gen_caltab - 為具有矩形排列標記的校準板生成校準板描述文件和相應的PostScript文件。 gen_caltab(:: XNum,YNum,MarkDist,Diamet…

主席樹,喵~

稍微總結一下主席樹吧 Too Difficult!搞了一天搞出一大堆怎么令人悲傷的辣雞代碼。總之先總結一下吧,以后碰到這種問題直接拿去毒害隊友好了。 UPD 5/24 茍狗是沙比 一個節點記錄三個信息:lson,rson,sum 用pid表示節點個數。 build void buil…