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.mzph.cn/news/254753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybitis实现增,删,改,查,模糊查询的两种方式:(2)

方式二:mapper代理接口方式 这种方式只需要xml接口(不用写实体类)但是需要符合三个规范 使用mapper代理接口方式在同一目录下(可以创建一个源文件夹,达到类文件和xml文件分类的作用)xml中namespace&#xf…

C语言中的静态函数的作用

转载 在C语言中为什么要用静态函数(static function)?如果不用这个static关键字,好象没有关系。那么,用了static以后,有什么作用呢?我们知道,用了static的变量,叫做静态变量,其意义是…

c++11 原子类型与原子操作

1、原子类型和原子操作(1)类型(2)操作(3)详述● 原子类型只能从其模板参数类型中进行构造,标准不允许原子类型进行拷贝构造、移动构造,以及使用operator等● atomic_flag 是一个原子…

依弗科(上海)机电设备有限公司

机器人喷涂倒计时,上帝帮我实现愿望吧 阿门 

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 开发过程的…

【转】小白级的CocoaPods安装和使用教程

原文网址:http://www.jianshu.com/p/e2f65848dddc 百度有很多CocoaPods的安装教程.第一次看的时候,确实有点摸不透的感觉.经过思考,一步一步来实践,前后花了三十几分钟,才顺利使用..所以想了想,我还是写一个小白级的教程吧.细到每一个细节都说明. 让你不用10分钟解决…

常见错误总结

少打头文件 少打using namespace std; 命名冲突&#xff0c;全局变量与局部变量命名一致&#xff0c;导致使用的值不是期望值 边读边写&#xff0c;导致改后读&#xff0c;覆盖写入的值 长整数移位溢出&#xff0c;1<<63是错误的&#xff0c;应该写成1ll<<63 循环变…

HALCON相机标定相机内参相机外参

目录相机标定1.相机标定是什么2.怎么使用halcon进行相机内外参标定&#xff1f;&#xff08;1&#xff09;搭建硬件1.**相机连好电脑&#xff0c;用相机厂家软件打开相机&#xff0c;检查一下相机是否正常。**2.**接下来使用halcon连接相机**&#xff08;2&#xff09;开始标定…

angular change the url , prevent reloading

http://stackoverflow.com/questions/14974271/can-you-change-a-path-without-reloading-the-controller-in-angularjs $location.search({vln: $scope.vln_id}, false);会改变url中 &#xff1f; 后面的 搜索参数&#xff0c;但是controller不会重新实例化。angular 官方文档…

C#圆形卡尺测量程序基于halcon

废话不多说上源码 觉得帖子有用给点个赞哈 先来个效果图 下边的是源码&#xff0c;自己新建一个文件粘贴进去&#xff0c;包含到您现在的项目 中。这串源码后边是使用方法。 using System; using System.Collections.Generic; using System.Linq; using System.Text; usin…

科维PLC运行时系统ProConOS embedded CLR 2.2 特定应用

ProConOS embedded CLR是新型的开放式标准化PLC运行时系统&#xff0c;符合IEC 61131标准&#xff0c;可执行不同的自动化任务&#xff08;PLC、PAC、运动控制、CNC、机器人和传感器&#xff09;。   通过采用国际标准的微软中间语言&#xff08;依据IEC/ISO 23271标准为MSIL…

set()与get()详细解答(C#)

这几天在搬砖时候用到了set()与get()&#xff0c;同事问了我一些问题&#xff0c;我打算在博客中总结一下。 觉得帮助到了您&#xff0c;帮我点个赞哦。 属性访问器 其实说白了就是操作一个属性&#xff0c;更通俗一点说就是对一个变量的取值与赋值。 先来看get() get 访问…

如何判断一条曲线是否自己相交?

今天看到群里有人在问这个问题&#xff0c;想了一个解决办法。 我们首先作假设&#xff0c;如果一条曲线有交点&#xff0c;那么它就是相交的对吧。可能大家想的都是这样&#xff0c;就开始找各种方法去识别交点。 我们换个角度想一下&#xff1a;是不是我们判断这条曲线是否带…

hdu 5813 Elegant Construction

水题 题意&#xff1a;有n个城市&#xff0c;给你每个城市能到达城市的数量&#xff0c;要你构图&#xff0c;输出有向边&#xff0c;要求无环&#xff0c;输出任意的解 例&#xff1a; Sample Input 332 1 021 143 1 1 0Sample OutputCase #1: Yes21 22 3Case #2: NoCase #3: …

halcon相机标定及图像矫正(代码)

侵删 1 halcon相机标定和图像矫正 对于相机采集的图片&#xff0c;会由于相机本身和透镜的影响产生形变&#xff0c;通常需要对相机进行标定&#xff0c;获取相机的内参或内外参&#xff0c;然后矫正其畸变。相机畸变主要分为径向畸变和切向畸变&#xff0c;其中径向畸变是由透…

函数参数的传递问题(一级指针和二级指针)

函数参数的传递问题&#xff08;一级指针和二级指针&#xff09; [转]原以为自己对指针掌握了&#xff0c;却还是对这个问题不太明白。请教&#xff01; 程序1&#xff1a; void myMalloc(char *s) //我想在函数中分配内存,再返回 { s(char *) malloc(100); } void …

Win7下使用U盘安装linux Ubuntu16.04双系统图文教程

Win7下使用U盘安装linux Ubuntu16.04双系统图文教程 Ubuntu&#xff08;友帮拓、优般图、乌班图&#xff09;是一个以桌面应用为主的开源GNU/Linux操作系统&#xff0c;Ubuntu 是基于DebianGNU/Linux&#xff0c;支持x86、amd64&#xff08;即x64&#xff09;和ppc架构&#xf…

CoDeSys的前世今生

&#xfeff;&#xfeff;工作以及网上看到不少人说&#xff0c;CoDeSys和西门子step7&#xff0c;在德国都属于标准过程&#xff0c;牛逼的小朋友都可以用其编程&#xff0c;不知真假&#xff0c;相信无风不起浪&#xff0c;多少有些依据&#xff0c;看看国內清一色的日系编程…