CNC扩展板基本功能和步进驱动
CNC扩展板基本功能
A轴可以根据需求设定为独立工作模式或者同步XYZ中的一轴。
A4988驱动:注意en引脚对应CNC扩展版上的en引脚,否则会烧毁驱动
A4988驱动电流调节和计算。
Vref=Imax*8*0.1
DRV8825驱动:注意en引脚对应CNC扩展版上的en引脚,否则会烧毁驱动
DRV8825驱动电流调节和计算
Vref=Imax/2
CNC扩展版和arduino供电问题
扩展版需要单独供电:12V-36V
A4988电压范围:8V-35V,注意A4988驱动最大电压为35V,小于CNC扩展最大电压36V
DRV8825电压范围:8.2V-45V
Arduino需要额外供电,DC口(5.5)供电范围:7V-12V,可同时接USB线。
烧录GRBL固件并简单移动测试
GRBL固件:和的引脚定义区别,Z轴限位引脚和主轴控制引脚交换,使得主轴可以使用PWM控制。
控制软件:UGS,CNCjs,LaserGRBL,GRBL-Plotter
可以使用arduinoIDE打开grblUpload例程烧录固件,也可以使用LaserGRBL烧录。
步进脉冲数(step/mm)计算
计算工具:
步进电机步距角
步进电机的旋转是靠脉动信号来驱动的,当步进驱动器接收到一个脉冲信号,步进电机的轴就会转动一个固定的角度,这个转动的角度,就叫“步距角”。最常见的有三种步距角:0.9°,1.8°和7.5°。这三种步距角,也就对应了步进电机每旋转一周(360°),需要的脉冲信号个数为400个、200个以及48个。
步进驱动细分设置
步进细分数取决于使用的电机驱动板主芯片,常见的细分有1/2,1/4,1/16,1/32等,如果是1/16细分表示的含义是原来一个脉冲可以控制电机转动一个步距角,现在需要16个脉冲电机才能转动一个步距角,如果电机的步距角是1.8°,那么电机旋转一周就需要200*16=3200个脉冲信号。
同步轮
常用的有16齿和20齿,需要注意齿距,比如GT2的同步轮其齿距为2mm,对于20齿的同步轮,旋转一圈即行进的距离为2mm*20=40mm。那么对于1.8步距角,16细分步进驱动,则每1mm所需的脉冲数为3200/40=80个脉冲/毫米。
丝杆
丝杆有几个重要参数,包括螺距,导程,头数。螺距表示相邻两个螺纹之间的距离(可将螺纹印到纸上测量),导程表示丝杆旋转一圈,对应T型螺母移动的距离。头数表示丝杆头部螺纹入口的数量。对于单头螺纹,螺距等于导程,而对于多头螺纹,导程=螺距*头数。对于1.8步距角,16细分步进驱动,导程2,螺距2的丝杆,则每1mm所需的脉冲数为3200/2=1600个脉冲。
齿轮
挤出机通过齿轮推动耗材运动,因此耗材移动的长度基本等同于齿轮的周长。通常MK8挤出机上使用的齿轮直径是11mm,因此齿轮旋转一周的周长为3.14*11=34.54mm。那么对于1.8步距角,16细分步进驱动,则每1mm所需的脉冲数为3200/34.54=92.64个脉冲。
设置GRBL步进脉冲参数
$:获取当前grbl设定值
计算步进脉冲数:
XY:360度/1.8度每步=200步*8微步=1600微步/(2毫米*20)=40step/mm
Z:360度/1.8度每步=200步*4微步=800微步/2毫米=400step/mm
设定步进脉冲参数$100=40,$101=40,$102=400
设定最大速率:$110,$111,$112,GRBL最大速率30KHz,8位Grbl几乎无法达到30千赫的步进速率。。
30000赫兹*60秒=1800000/40=45000
$110=45000,理论上,实际根据需要设定合适值
设定加速度:$120,$121,$122
$120=3200,可多次测试尝试获得恰当的值
限位开关的使用
常开和常闭限位开关
$21:是否启用硬限位,默认$21=0未启用
$5:默认为常开限位,如果使用常闭限位(低电平)则$5=1
归零操作:启用归零($22)后,首先会在设定方向($23)上以速度($25)寻找限位开关,在找到限位开关后会再以速度($24)移动确定限位开关($26),然后在轴向上移出(pull-off)指定距离($27)。
$22:是否启用归零
$23:归零方向
$24:找到限位开关后再次移动的速度
$25:寻找限位开关的速度
$26:归零限位开关消抖延时
$27:归零后轴向移出(pull-off)的距离
设置GRBL工作区域参数
设定步进脉冲参数$130,$131,$132,具体可以手动控制各轴移动用以确定最大位置。
当设置好各轴(XY)最大移动距离后,可设定归零后操作
$N0=G53XmaxYmax,快速移动到指定位置
$N1=G92X0Y0,将当前位置指定位原点(0,0)
最大位置可以用于软限位:$20,
配置激光参数和测试(可使用LED测试)
新增参数:$30,$31,$32
注意版本的主轴对应引脚变化,即spindleenable和LimitZ-axis引脚交换,以便主轴能实现pwm控制。
当使用$32启用激光模式后,需要处于运动模式(G1F500)才能使用M3开启和M5关闭激光。
M3S1000:开启,S指定功率,可使用$30指定最大功率。
M5:关闭,在关闭前最好使用S0指定功率为0,否则下次使用M3时将直接使用之前指定的功率开启激光。
暂停时将关闭激光
COREXY结构GRBL参数调整
配置文件中参数
GRBL命令参考
版本
/
和相比较,改变了$10的状态报告和增加了新的$30/$31的主轴转速设置和$32的激光模式设置。
指令
定义
描述
$
显示设定值
显示当前存储在arduinoEEPROM中的GRBL设定值
$0=10
步进脉冲长度(微秒)
设定发送给步进电机的步进脉冲长度(高电平时间),即步进电机可识别的最短步进脉冲长度,可查看步进电机数据手册确认,默认值为10微秒。
$1=25
步进电机使能闲置时间
在GRBL完成一个运动指令后,以毫秒为单位设置步进电机使能状态的闲置时间,如果设置为255则始终保持步进电机为使能状态用以保持当前位置。通常设置25-50毫米的使能延时时间以确保轴完全移动到了目标位置。
$2=0
步进脉冲配置
定义发送给步进电机驱动的步进信号。默认情况,步进信号以low开始向high变化表示一个脉冲信号。在经过$0设置的步进脉冲高电平时间后,恢复为低电平。通常无需设置此参数。
设定值
掩码00000ZYX
X反向
Y反向
Z反向
0
00000000
NO
NO
NO
1
00000001
YES
NO
NO
2
00000010
NO
YES
NO
3
00000011
YES
YES
NO
4
00000100
NO
NO
YES
5
00000101
YES
NO
YES
6
00000110
NO
YES
YES
7
00000111
YES
YES
YES
例如:如果要反向X轴和Z轴的脉冲信号,则设置$2=5。
$3=6
轴运动方向
在不改变接线的情况下改变对应轴步进电机的运动方向,默认情况下,GRBL设定当方向引脚为低电平时沿轴正向移动,高电平时沿轴反向移动。具体数值和$2步进脉冲设置项表相同。
$4=0
设置步进驱动使能引脚
控制步进驱动使能引脚的电平信号,默认情况下,步进使能引脚为高电平时禁用电机驱动,低电平时使能电机驱动。当$4=1表示将使能引脚的电平定义为高电平HIGH,即高电平使能,低电平禁用。
$5=0
设置限位引脚
默认限位开关使用arduino内部上拉电阻将该引脚设置为高电平HIGH,当触发限位开关时引脚变为低电平LOW。如果设置$5=1则表示当接收到高电平HIGH时表示限位开关被触发,当设置$5=1时,必须外接下拉电阻。不支持NC常闭限位。可以在文件中禁用限位引脚内部上拉电阻。
$6=0
设置探针引脚
默认使用arduino内部上拉电阻将该引脚设置为高电平HIGH,当触发时引脚变为低电平LOW。如果设置$6=1则表示当接收到高电平HIGH时表示探针被触发,当设置$6=1时,必须外接下拉电阻。
$10=3
状态报告
定义发送给用户的实时状态数据。
对于,当发送“?”指定给GRBL,其会返回运行状态,机器位置和工作位置,且不能关闭。如果需要返回多个状态数据,则将所需类型的值相加发送给GRBL即可。
状态报告类型
值
机器坐标位置(MachinePosition)
1
工作坐标位置(WorkPosition)
2
Planner缓充区(PlannerBuffer)
4
RX缓冲区(RXBuffer)
8
限位引脚(LimitPins)
16
例如,要取货工作坐标位置(2)和限位引脚(16)的状态报告信息,则需要设置$10=18。
对于,当发送“?”指令获取状态报告。该数据报告包括当前运行状态、实时位置、实时输入速率、引脚状态、当前覆盖值、缓冲区状态和当前执行的g-code行号(如果通过编译时选项启用)。
为了保持简单和一致,只有两个报告选项。这些主要是为用户和开发人员设置的。
可以指定位置类型来显示机器位置(MPos:)或工作位置(WPos:),但不再同时显示两者。在通过串行终端直接与Grbl交互的某些场景中,启用工作位置是有用的,但默认情况下应该使用机器位置报告。
Grbl的计划器和串行RX缓冲区的使用数据可能是启用的。这显示了各自缓冲区中可用的块或字节的数量。这通常用于在测试流接口时帮助确定Grbl的执行情况。这在默认情况下应该是禁用的。
使用下表启用和禁用报告选项。只需添加想要启用的列表值,然后通过发送Grbl设置值来保存。例如,带有机器位置和无缓冲区数据报告设置的默认报告为$10=1。如果需要工作位置和缓冲区数据,则设置为$10=2。
报告类型
值
描述
位置类型
0
启用Wpos:,禁用MPos:。
位置类型
1
启用Mpos:,禁用WPos:。
缓冲数据
2
启用Buf:显示规划器和串行RX可用缓冲区。
$11=0.020
节点偏差(JunctionDeviation,毫米)
可认为是转弯速度。较高的值表示允许在拐弯处快速运动,但可能丢步从而降低准确性。反之则转弯速度低,但能避免丢步从而提高准确性。
$12=0.002
弧度公差(毫米)
GRBL将曲线视为很多小直线的集合,该设置用于定义曲线的平滑度,默认为0.002毫米,通常不需要修改该值,因为大多数的机器设备都小于此精度值。
$13=0
$20=0
是否启用软限位
需要启用“Homing”,如果启用则将检查GCode指令是否有超出机器最大行程限制。$20=1表示启用,$20=0表示禁用。
$21=0
是否启用硬限位
需要安装限位开关,当限位开关触发时,则进入“Alarm”模式,该模式下,机器运动,主轴和冷却系统都被关闭。
$22=0
是否启用归零
需要安装限位开关,当启用归零后将锁定所有GCode指令直到归零完成。
$23=1
归零方向
允许设定归零方向,默认先Z轴正向移动归零,然后XY正向移动归零。如果限位开关在负方向,则需要设置归零方向,具体和$2步进脉冲设置项表相同。
$24=50.000
归零进给速率(mm/min)
归零操作首先会以较高的速率寻转限位开关,在确定限位开关后,在以此设定的较低速率确定原点精确位置。在此使用的进给速率越低归零位置越准确。
$25=635.000
归零搜寻速率(mm/min)
在归零时寻找限位开关的速度。将此值设置为不撞坏限位开关的最大值。在归零操作中,先以seek定义的速度寻找限位开关,再以feed定义的速度精确定位原点。
$26=250
归零限位开关消抖时间HomingDebounce(msec)
用于限位开关软件消抖的延时时间(毫秒),通常值为5-25毫秒。
$27=1.000
归零后离开限位开关的距离HomingPull-off(mm)
定义在定位原点后,远离限位开关的距离以便不触发硬限位。
$100=314.961
X轴步进速度(steps/mm)
定义给定距离所需的步进数。Steps/mm=(StepsperRevolution)*(Microsteps)/(mmperRevolution)
1.StepsperRevolution=200,表示步进电机旋转一圈所需的步数,对于1.8度步进电机,旋转一周所需步数为360/1.8=200步。
2.Microsteps-1,2,4,8,16,32,由步进驱动器细分数确定,细分数越高精度越高,但力矩越小。对于DRV8825如果使用3个跳线帽,则细分数为32,即旋转一圈需要200*32=6400个脉冲。对于A4988如果使用3个跳线帽,则细分数为16,即旋转一圈需要200*16=3200个脉冲
3.mmperRevolution,对于GT2同步轮,即旋转一圈行进20个齿,齿间距为2mm,即一圈行进40mm。因此每1mm需要6400/40=160个脉冲每毫米。对于GT2单线螺纹丝杆,螺距等于导程,螺距2,导程2,即旋转一圈行进2mm,因此每1mm需要6400/2=3200个脉冲
$101=314.961
Y轴步进速度(steps/mm)
同x轴
$102=314.961
Z轴步进速度(steps/mm)
同x轴
$110=635.000
X轴最大速率(mm/min)
定义给定轴的最大速度。可以通过试验逐步增加速度测试最大速度,发送测试Gcode指令使轴移动足够距离以便达到其最大速度值,当步进电机出现异常时即为最大速度值,将$110设置为最大速度的80%-90%。
$111=635.000
Y轴最大速率(mm/min)
同X轴
$112=635.000
Z轴最大速率(mm/min)
同X轴
$120=50.000
X轴最大加速度(mm/sec^2)
定义给定轴的最大加速度。同样可以通过试验获得最大加速度,设定为最大加速度的80%-90%即可。
$121=50.000
Y轴最大加速度(mm/sec^2)
同X轴
$122=50.000
Z轴最大加速度(mm/sec^2)
同X轴
$130=225.000
X轴最大行程(mm)
当使用软限位时用于定义轴的最大行程,同样用于归零操作。
$131=225.000
Y轴最大行程(mm)
同X轴
$132=225.000
Z轴最大行程(mm)
同X轴
GRBL命令
$#
显示Gcode参数
列出工作坐标偏移(G54-G59),预定义位置(G28G30),坐标
偏移量(G92),工具长度偏移量(TLO)和探测周期(PRB)。
$G
显示解析器状态
显示GRBL解析器中的活动gCode模式。
示例-[]
$!
显示构建信息
显示GRBL版本和源码构建日期
$N
显示启动块
显示每次GRBL上电或复位时运行的启动块。
$N0=line
$N1=line
设置启动块
设置启动块。将有效的gCode命令替换为“line”部分,这些命令将在每次GRBL上电或重置时执行。
$x=value
设置GRBL配置参数
设置GRBL参数。将“X”替换为上面列表中的数字,将“value”替换为相应的设置。
$C
Gcode检查模式
处理所有传入的gCode命令,但不移动轴、主轴或冷却系统,用于检查gCode程序。
$X
解除锁定警告
解除警告锁定以允许轴移动
$H
执行归零(Homing)操作
执行归零(Homing)操作
GRBL实时命令
~
循环启动
启动缓冲的gCode命令。用于在“进给保持”后恢复切割。
!
进给保持
通过控制减速停止主动循环,防止失步造成的位置丢失。
?
当前状态
返回GRBL当前状态,当前机器坐标位置和工作坐标位置
Ctrl+x
重置GRBL
软重启命令,保持机器坐标位置且不关闭arduino
其他参数
新增参数
$30
spindle主轴最高转速RPM
设置在5V电压时PWM引脚输出的最大主轴速度。例如$30=10000表示5V电压最大转速为10000rpm,如果试图设置更高的主轴速度,因为GRBL最大输出5V,因此不能够更快。默认情况下,GRBL以255等分最大和最小RMP转速,对应于电压5V到0.02V的PWM输出。当PWM引脚为0V时表示禁用主轴,5V时为最大转速$30所设置的10000RPM。中可调整其他配置参数。
$31
spindle主轴最低转速RPM
设置在最小0.02V时PWM引脚输出的主轴速度(0V表示禁用)。可以设置较低的RMP值,但PWM输出不会低于0.02V,如果为0V则表示禁用主轴。
$32
激光模式
启用后,当用主轴速度(激光功率)编程时,Grbl将通过连续的G1,G2或G3运动命令连续移动S。主轴PWM引脚将在每次运动时立即更新,而不会停止。使用此模式之前,请阅读GRBL激光文档和激光设备文档。激光非常危险,会永久损坏视力并可能引起火灾。Grbl对固件可能引起的任何问题(由其GPL许可定义)不承担任何责任。
禁用后,Grbl会像往常一样运行,对于每个S主轴速度命令停止运动。这是铣床的默认操作,允许暂停以使主轴改变速度。
免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系