=====GRBL 通信协议===== ===串口参数=== 波特率:115200 *注:一些旧的板子波特率为9600。 --------------------- ===TCP网络参数=== IP地址:自行配置 TCP端口:23(telnet) --------------------- ===协议格式=== GRBL接收两种形式的命令,一种是单字节的实时命令,直接发送单个字节的命令,GRBL就会返回信息。 另一种是以\r结尾的一行命令。GRBL返回信息时,都以\r\n代表一行的结束。 一般命令执行成功,返回ok\r\n或是错误返回error:N\r\n, 其中的N是错误号。当触发限位或遇到其他意外时,GRBL主动会主动向上位机发送信息,应用开发者应随时接收下位机的信息,当遇到\r\n时,就可以解释结果了。 GRBL的命令缓冲区一般为128节字,请不要一次发送超过128字节的命令。 ---------------------------- ===常用命令举例=== 这里仅说明一些常用的命令,供大家做测试,想自行开发上位机软件的朋友还需自行参考完整的英文资料。 https://github.com/gnea/grbl/wiki ---------------------------- ===状态查询=== 上位机发送 ?\r 主板响应 \r\n ok\r\n 其中的Idle表示板子处于空闲状态,其他状态还有 Run --- 运行中 Alarm --- 警告、异常 MPos 后跟的是机器坐标,具体含义参考官方文档。为了方便,后面的文档省略\r\n。 ------------------- ===版本信息查询=== 上位机发送 $I 主板返回 [VER:1.3a#R1.20210218:] [OPT:BW$#] [MSG:Using machine:BACHIN_3AXIS] [MSG:Mode=AP:SSDI=GRBL_ESP:IP=192.168.0.1:MAC=AC-67-B2-70-70-A5] [MSG:No BT] ok 以上是ESP32板子的返回信息,如里是328P板子,返回的信息略少。 ------------------- ===参数查询=== 上位机发送 $$ 主板返回 $0=3 $1=250 $2=0 $3=1 $4=0 $5=1 $6=0 $10=1 $11=0.010 $12=0.002 $13=0 $20=0 $21=0 $22=1 $23=4 $24=1000.000 $25=1000.000 $26=250.000 $27=2.000 $30=255.000 $31=0.000 $32=1 $N1= $N0= $100=400.000 $101=80.000 $102=400.000 $103=100.000 $104=100.000 $105=100.000 $110=2200.000 $111=2000.000 $112=500.000 $113=1000.000 $114=1000.000 $115=1000.000 $120=3000.000 $121=200.000 $122=300.000 $123=200.000 $124=200.000 $125=200.000 $130=300.000 $131=300.000 $132=300.000 $133=300.000 $134=300.000 $135=300.000 ok ------------------- ===参数设置=== 设置X轴步进数为200 $100=200 主板返回 ok 设置X轴加速度为3000 $110=3000 主板返回 ok ------------------- ===激光开关=== 激光开,功率设置为1000 M3S1000 激光关 M5 ------------------- ===运行控制=== 移动X轴到100MM,最高速限定为200mm/分钟 G1 X100 F200 移动X轴到100MM,Y轴到10.2MM G1 X100 Y10.2 移动X轴到反方向9MM G1 Z-9 X轴返回起点 G1 X0 XY轴返回起点 G1 X0 Y0 坐标清零 G92 X0Y0Z0 设置当前从标为XYZ(0,10,20) G92 X0Y10Z20 回限位原点 $H ---------------------------- ===尾声=== 可能有些朋友会问,抬笔下笔怎么做?舵机怎么控制?怎么写一个字?怎么切割一个图案?怎么雕刻照片?圆怎么画? 我这里提示一下,不同的写字机,抬笔下笔的指令不同,步进电机一般控制Z轴,抬笔时,指定Z轴往正方向走,下笔时指定Z轴往负方向走。如果是舵机,舵机的控制信息是PWM,也就是和激光功率的控制一样,也是M3Sxx来控制,输出两个不同的PWM,舵机就转动不同的角度来抬笔下笔了。至于写字,画图,板子是不会识别文字图案的,我们雕刻一张图片,不是把整张图片往主板上发送,主板处理不了,我们需要上位机软件,把图案拆分为一段段直线,把这一段段直线的坐标通过上面介绍的G1指令告诉机器怎么走。画一个圆也是把一个圆拆成很多的细小直线。 需要更多信息,请自行百度GRBL,GCODE。 有定制软件需求的,可以加我微信ljx20671218