arduino当Gcode解释程序(CNC)

本帖最后由 328522073 于 2013-5-28 11:47 编辑

第一次发帖...之前上论坛都是查资料的,发现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步每毫米。更多的设置大家可以自己在软件里看,每条指令后面还是会有解释的,相信大家都能看懂。

http://image94.360doc.com/DownloadImg/2016/02/0319/65483912_1.png

希望对需要的人能有所帮助吧,原来在弄这两个的时候没什么头绪,国内网站几乎查不到资料,辛苦好几天总结出来的经验,其中可能会有我理解不对的地方,但是两个gcode编译器我都是亲自测试能用的。

本帖最后由 328522073 于 2013-5-28 11:47 编辑

第一次发帖...之前上论坛都是查资料的,发现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步每毫米。更多的设置大家可以自己在软件里看,每条指令后面还是会有解释的,相信大家都能看懂。

http://image94.360doc.com/DownloadImg/2016/02/0319/65483912_1.png

希望对需要的人能有所帮助吧,原来在弄这两个的时候没什么头绪,国内网站几乎查不到资料,辛苦好几天总结出来的经验,其中可能会有我理解不对的地方,但是两个gcode编译器我都是亲自测试能用的。


相关文章

  • Arduino单片机毕业设计
  • 石家庄邮电职业技术学院 毕业设计 基于Arduino的急救车音效设计 届 电信工程 系 专业移动通信技术( ) 班级 学号 姓名 指导教师 完成日期 2012年12月14日 毕业设计任务书 毕业设计评定书 摘 要 急救车,专指接载病员由伤病 ...查看


  • "小学Arduino创意机器人"课程纲要
  • "小学Arduino 创意机器人"课程纲要 "小学Arduino 创意机器人"课程是一门交叉了多门学科的综合性课程,涉及到许多基础学科,包括数学.物理.计算机.化学.生物.多媒体等,学生在运用Ardu ...查看


  • arduino语言说明
  • 常量:    结构   void () 初始化变量,管脚模式,调用库函数等 void () 连续执行函数内的语句 | 表示数字IO口的电平, 表示高电平(1), 表示低电平(0). | 表示数字IO口的方向, 表示输入(高阻态), ...查看


  • 外文翻译-基于Android智能家居系统
  • 通信工程学院 毕业设计外文翻译 毕业设计题目基于ANDRIO的智能家居系统的设计与实现 外文题目UBIQUITOUS SMART HOME SYSTEM USING ANDROID APPLICATION 专业:通信工程 学号: 学生姓名: ...查看


  • 创客教育课程的实践探索
  • 创新探索<中国教育信息化>编辑部:mis@moe.edu.cn 创客教育课程的实践探索 夏小刚 (成都七中初中学校,四川成都610041) 摘要:随着李克强总理访问深圳柴火创客空间,并将"大众创业,万众创新" ...查看


  • 英文文献 科技类 原文及翻译
  • 本科毕业设计(论文) 外文翻译 姓 名: 王文超 学 号: [1**********]0 专 业: 电气工程及其自动化 班 级: 电气071502 指导教师: 智泽英 职 称: 副教授 日 期: 2011年6月12日 电子信息工程学院 Th ...查看


  • 消防机器人设计报告
  • 基于ATmega2560单片机的智能避障灭火小车 一. 设计方案: 1.控制系统: Arduino Mega2560是采用USB接口的核心电路板,具有54路数字输入输出,适合需要大量IO接口的设计.处理器核心是ATmega2560, 同时具 ...查看


  • 数控技术试题集+答案
  • 填空题 1. 数控机床坐标系采用的是 右手笛卡尔直角 坐标系. 2. 数控机床坐标系的正方向规定为 增大刀刀具与工件距离的方向 . 3. 数控机床坐标系中Z 轴的方向指的是 与主轴平行的方向,其正方向是 刀具远离工件的方向 . 4. 数控机 ...查看


  • FANUC数控系统简介
  • 一.FANUC数控系统的发展 FANUC 公司创建于1956年,1959年首先推出了电液步进电机,在后来的若干年中逐步发展并完善了以硬件为主的开环数控系统.进入70年代,微电子技术.功率电子技术,尤其是计算技术得到了飞速发展,FANUC公司 ...查看


热门内容