CNC扩展板基本功能和步进驱动
CNC扩展版和arduino供电问题
烧录GRBL固件并简单移动测试
步进脉冲数(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工作区域参数
配置激光参数和测试(可使用LED测试)
COREXY结构GRBL参数调整
GRBL命令参考
版本 | GRBLv0.9/GRBLv1.1 | V1.1和V0.9相比较,改变了的状态报告和增加了新的/ 的主轴转速设置和的激光模式设置。 | |||||||||||||||||||||||||||||||||||||||||||||
指令 | 定义 | 描述 | |||||||||||||||||||||||||||||||||||||||||||||
$$ | 显示设定值 | 显示当前存储在arduino EEPROM中的GRBL设定值 | |||||||||||||||||||||||||||||||||||||||||||||
$0=10=10 | 步进脉冲长度(微秒) | 设定发送给步进电机的步进脉冲长度(高电平时间),即步进电机可识别的最短步进脉冲长度,可查看步进电机数据手册确认,默认值为10微秒。 | |||||||||||||||||||||||||||||||||||||||||||||
=25 | 步进电机使能闲置时间 | 在GRBL完成一个运动指令后,以毫秒为单位设置步进电机使能状态的闲置时间,如果设置为255则始终保持步进电机为使能状态用以保持当前位置。通常设置25-50毫米的使能延时时间以确保轴完全移动到了目标位置。 | |||||||||||||||||||||||||||||||||||||||||||||
=0 | 步进脉冲配置 | 定义发送给步进电机驱动的步进信号。默认情况,步进信号以low开始向high变化表示一个脉冲信号。在经过定义发送给步进电机驱动的步进信号。默认情况,步进信号以low开始向high变化表示一个脉冲信号。在经过$0设置的步进脉冲高电平时间后,恢复为低电平。通常无需设置此参数。设置的步进脉冲高电平时间后,恢复为低电平。通常无需设置此参数。
例如:如果要反向X轴和Z轴的脉冲信号,则设置=5。 | |||||||||||||||||||||||||||||||||||||||||||||
=6 | 轴运动方向 | 在不改变接线的情况下改变对应轴步进电机的运动方向,默认情况下,GRBL设定当方向引脚为低电平时沿轴正向移动,高电平时沿轴反向移动。具体数值和步进脉冲设置项表相同。 | |||||||||||||||||||||||||||||||||||||||||||||
=0 | 设置步进驱动使能引脚 | 控制步进驱动使能引脚的电平信号,默认情况下,步进使能引脚为高电平时禁用电机驱动,低电平时使能电机驱动。当=1表示将使能引脚的电平定义为高电平HIGH,即高电平使能,低电平禁用。 | |||||||||||||||||||||||||||||||||||||||||||||
=0 | 设置限位引脚 | 默认限位开关使用arduino内部上拉电阻将该引脚设置为高电平HIGH,当触发限位开关时引脚变为低电平LOW。如果设置=1则表示当接收到高电平HIGH时表示限位开关被触发,当设置=1时,必须外接下拉电阻。GRBLv0.9不支持NC常闭限位。可以在config.h文件中禁用限位引脚内部上拉电阻。 | |||||||||||||||||||||||||||||||||||||||||||||
=0 | 设置探针引脚 | 默认使用arduino内部上拉电阻将该引脚设置为高电平HIGH,当触发时引脚变为低电平LOW。如果设置=1则表示当接收到高电平HIGH时表示探针被触发,当设置=1时,必须外接下拉电阻。 | |||||||||||||||||||||||||||||||||||||||||||||
=3 | 状态报告 | 定义发送给用户的实时状态数据。 对于v0.9,当发送“?”指定给GRBL,其会返回运行状态,机器位置和工作位置,且不能关闭。如果需要返回多个状态数据,则将所需类型的值相加发送给GRBL即可。
例如,要取货工作坐标位置(2)和限位引脚(16)的状态报告信息,则需要设置=18。 对于v1.1,当发送“?”指令获取状态报告。该数据报告包括当前运行状态、实时位置、实时输入速率、引脚状态、当前覆盖值、缓冲区状态和当前执行的g-code行号(如果通过编译时选项启用)。 为了保持简单和一致,Grbl v1.1只有两个报告选项。这些主要是为用户和开发人员设置的。
使用下表启用和禁用报告选项。只需添加想要启用的列表值,然后通过发送Grbl设置值来保存。例如,带有机器位置和无缓冲区数据报告设置的默认报告为=1。如果需要工作位置和缓冲区数据,则设置为=2。
| |||||||||||||||||||||||||||||||||||||||||||||
=0.020 | 节点偏差(Junction Deviation,毫米) | 可认为是转弯速度。较高的值表示允许在拐弯处快速运动,但可能丢步从而降低准确性。反之则转弯速度低,但能避免丢步从而提高准确性。 | |||||||||||||||||||||||||||||||||||||||||||||
=0.002 | 弧度公差(毫米) | GRBL将曲线视为很多小直线的集合,该设置用于定义曲线的平滑度,默认为0.002毫米,通常不需要修改该值,因为大多数的机器设备都小于此精度值。 | |||||||||||||||||||||||||||||||||||||||||||||
=0 | 反馈单位 | 设置位置反馈单位,=1表示英寸,=0表示毫米 | |||||||||||||||||||||||||||||||||||||||||||||
=0 | 是否启用软限位 | 需要启用“Homing”,如果启用则将检查GCode指令是否有超出机器最大行程限制。=1表示启用,=0表示禁用。 | |||||||||||||||||||||||||||||||||||||||||||||
=0 | 是否启用硬限位 | 需要安装限位开关,当限位开关触发时,则进入“Alarm”模式,该模式下,机器运动,主轴和冷却系统都被关闭。 | |||||||||||||||||||||||||||||||||||||||||||||
=0 | 是否启用归零 | 需要安装限位开关,当启用归零后将锁定所有GCode指令直到归零完成。 | |||||||||||||||||||||||||||||||||||||||||||||
=1 | 归零方向 | 允许设定归零方向,默认先Z轴正向移动归零,然后XY正向移动归零。如果限位开关在负方向,则需要设置归零方向,具体和步进脉冲设置项表相同。 | |||||||||||||||||||||||||||||||||||||||||||||
=50.000 | 归零进给速率(mm/min) | 归零操作首先会以较高的速率寻转限位开关,在确定限位开关后,在以此设定的较低速率确定原点精确位置。在此使用的进给速率越低归零位置越准确。 | |||||||||||||||||||||||||||||||||||||||||||||
=635.000 | 归零搜寻速率(mm/min) | 在归零时寻找限位开关的速度。将此值设置为不撞坏限位开关的最大值。在归零操作中,先以seek定义的速度寻找限位开关,再以feed定义的速度精确定位原点。 | |||||||||||||||||||||||||||||||||||||||||||||
=250 | 归零限位开关消抖时间Homing Debounce(msec) | 用于限位开关软件消抖的延时时间(毫秒),通常值为5-25毫秒。 | |||||||||||||||||||||||||||||||||||||||||||||
=1.000 | 归零后离开限位开关的距离Homing Pull-off(mm) | 定义在定位原点后,远离限位开关的距离以便不触发硬限位。 | |||||||||||||||||||||||||||||||||||||||||||||
0=314.961 | X轴步进速度(steps/mm) | 定义给定距离所需的步进数。Steps/mm = (Steps per Revolution)*(Microsteps) / (mm per Revolution) 1.Steps per Revolution = 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.mm per Revolution,对于GT2同步轮,即旋转一圈行进20个齿,齿间距为2mm,即一圈行进40mm。因此每1mm需要6400/40=160个脉冲每毫米。对于GT2单线螺纹丝杆,螺距等于导程,螺距2,导程2,即旋转一圈行进2mm,因此每1mm需要6400/2=3200个脉冲 | |||||||||||||||||||||||||||||||||||||||||||||
1=314.961 | Y轴步进速度(steps/mm) | 同x轴 | |||||||||||||||||||||||||||||||||||||||||||||
2=314.961 | Z轴步进速度(steps/mm) | 同x轴 | |||||||||||||||||||||||||||||||||||||||||||||
0=635.000 | X轴最大速率(mm/min) | 定义给定轴的最大速度。可以通过试验逐步增加速度测试最大速度,发送测试Gcode指令使轴移动足够距离以便达到其最大速度值,当步进电机出现异常时即为最大速度值,将0设置为最大速度的80%-90%。 | |||||||||||||||||||||||||||||||||||||||||||||
1=635.000 | Y轴最大速率(mm/min) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
2=635.000 | Z轴最大速率(mm/min) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
0=50.000 | X轴最大加速度(mm/sec^2) | 定义给定轴的最大加速度。同样可以通过试验获得最大加速度,设定为最大加速度的80%-90%即可。 | |||||||||||||||||||||||||||||||||||||||||||||
1=50.000 | Y轴最大加速度(mm/sec^2) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
2=50.000 | Z轴最大加速度(mm/sec^2) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
0=225.000 | X轴最大行程(mm) | 当使用软限位时用于定义轴的最大行程,同样用于归零操作。 | |||||||||||||||||||||||||||||||||||||||||||||
1=225.000 | Y轴最大行程(mm) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
2=225.000 | Z轴最大行程(mm) | 同X轴 | |||||||||||||||||||||||||||||||||||||||||||||
GRBL命令 | |||||||||||||||||||||||||||||||||||||||||||||||
$# | 显示Gcode参数 | 列出工作坐标偏移(G54-G59),预定义位置(G28 & G30),坐标 偏移量(G92),工具长度偏移量(TLO)和探测周期(PRB)。 | |||||||||||||||||||||||||||||||||||||||||||||
$G | 显示解析器状态 | 显示GRBL解析器中的活动gCode模式。 示例- [G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 S0.0 F500.0] | |||||||||||||||||||||||||||||||||||||||||||||
$! | 显示构建信息 | 显示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 | |||||||||||||||||||||||||||||||||||||||||||||
其他参数 | V1.1新增参数 | ||||||||||||||||||||||||||||||||||||||||||||||
spindle主轴最高转速RPM | 设置在5V电压时PWM引脚输出的最大主轴速度。例如=10000表示5V电压最大转速为10000rpm,如果试图设置更高的主轴速度,因为GRBL最大输出5V,因此不能够更快。默认情况下,GRBL以255等分最大和最小RMP转速,对应于电压5V到0.02V的PWM输出。当PWM引脚为0V时表示禁用主轴,5V时为最大转速所设置的10000RPM。Config.h中可调整其他配置参数。 | ||||||||||||||||||||||||||||||||||||||||||||||
spindle主轴最低转速RPM | 设置在最小0.02V时PWM引脚输出的主轴速度(0V表示禁用)。可以设置较低的RMP值,但PWM输出不会低于0.02V,如果为0V则表示禁用主轴。 | ||||||||||||||||||||||||||||||||||||||||||||||
激光模式 | 启用后,当用主轴速度(激光功率)编程时,Grbl将通过连续的G1,G2或G3运动命令连续移动S。主轴PWM引脚将在每次运动时立即更新,而不会停止。使用此模式之前,请阅读GRBL激光文档和激光设备文档。激光非常危险,会永久损坏视力并可能引起火灾。Grbl对固件可能引起的任何问题(由其GPL许可定义)不承担任何责任。 禁用后,Grbl会像往常一样运行,对于每个S主轴速度命令停止运动。这是铣床的默认操作,允许暂停以使主轴改变速度。 |