如何将Grbl中 Mpos:后的-10.567显示在陶晶驰串口屏的文本框中
时间: 2024-03-18 08:43:57 浏览: 199
要将Grbl中的Mpos:后的-10.567显示在陶晶驰串口屏的文本框中,需要按照以下步骤进行操作:
1. 首先需要使用串口通信将Grbl和陶晶驰串口屏连接起来。
2. 在陶晶驰串口屏上创建一个文本框,用于显示Mpos的值。
3. 在Grbl中发送Mpos指令,获取当前坐标值,例如发送“$G”指令获取绝对坐标。
4. 将获取到的Mpos值转换成字符串格式。
5. 将字符串格式的Mpos值发送给陶晶驰串口屏,让其显示在创建的文本框中。
具体的实现过程需要根据你的具体应用场景编写代码,这里提供的是一个大致思路。
相关问题
基于grbl 如何将机械坐标和工件坐标显示在陶晶驰串口屏相对应的文本框中
要将机械坐标和工件坐标显示在陶晶驰串口屏相对应的文本框中,您需要进行以下步骤:
1. 首先,您需要在grbl中添加代码,以便在控制器与计算机之间传输机械坐标和工件坐标。这可以通过使用G代码或M代码进行实现,具体取决于您使用的GRBL版本。
2. 接下来,您需要编写一个程序,该程序将使用串口通信与grbl进行通信,并从grbl接收机械坐标和工件坐标。该程序将把这些坐标显示在串口屏幕上。
3. 最后,您需要在陶晶驰串口屏上创建文本框,并将它们与您的程序中的变量相对应。这样,当您的程序向串口屏幕发送机械坐标和工件坐标时,它们将自动显示在相应的文本框中。
请注意,这是一个较为复杂的过程,需要具备一定的编程和电子知识。如果您不确定如何完成这些步骤,建议您寻求专业的技术支持。
陶晶驰串口屏上如何获取grbl的返回信息 并将x y z a b c各轴坐标显示在对应文本框中编程脚本
要在串口屏上获取 GRBL 的返回信息并将各轴坐标显示在对应的文本框中,您需要在控制器(如 Arduino)上运行一个程序来与 GRBL 进行通信,并将返回的信息传输到串口屏幕上。
以下是一个示例程序,它可以在 Arduino 上运行,并将 GRBL 发送的信息显示在串口屏幕上:
```
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup() {
Serial.begin(115200);
mySerial.begin(9600);
}
void loop() {
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
```
该程序使用 SoftwareSerial 库创建一个串口对象,以便将 GRBL 发送的信息传输到串口屏幕上。在 setup 函数中,程序初始化了两个串口的波特率,并在 loop 函数中不断地从两个串口中读取数据,并将其传输到另一个串口中。
接下来,您需要在程序中添加代码,以便将 GRBL 返回的信息解析为坐标,并将其显示在对应的文本框中。下面是一个示例程序,它可以实现这个功能:
```
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
String axisX, axisY, axisZ, axisA, axisB, axisC;
void setup() {
Serial.begin(115200);
mySerial.begin(9600);
// 设置串口屏幕文本框的初始值
mySerial.print("t0.txt=\"X:0\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t1.txt=\"Y:0\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t2.txt=\"Z:0\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t3.txt=\"A:0\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t4.txt=\"B:0\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t5.txt=\"C:0\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
}
void loop() {
if (mySerial.available()) {
char c = mySerial.read();
if (c == '<') {
axisX = "";
axisY = "";
axisZ = "";
axisA = "";
axisB = "";
axisC = "";
} else if (c == ',') {
axisX.trim();
axisY.trim();
axisZ.trim();
axisA.trim();
axisB.trim();
axisC.trim();
mySerial.print("t0.txt=\"X:");
mySerial.print(axisX);
mySerial.print("\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t1.txt=\"Y:");
mySerial.print(axisY);
mySerial.print("\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t2.txt=\"Z:");
mySerial.print(axisZ);
mySerial.print("\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t3.txt=\"A:");
mySerial.print(axisA);
mySerial.print("\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t4.txt=\"B:");
mySerial.print(axisB);
mySerial.print("\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
mySerial.print("t5.txt=\"C:");
mySerial.print(axisC);
mySerial.print("\"");
mySerial.write(0xff);
mySerial.write(0xff);
mySerial.write(0xff);
delay(100);
} else {
if (c == 'X') {
axisX = "";
} else if (c == 'Y') {
axisY = "";
} else if (c == 'Z') {
axisZ = "";
} else if (c == 'A') {
axisA = "";
} else if (c == 'B') {
axisB = "";
} else if (c == 'C') {
axisC = "";
} else {
if (axisX.length() < 10) {
axisX += c;
} else if (axisY.length() < 10) {
axisY += c;
} else if (axisZ.length() < 10) {
axisZ += c;
} else if (axisA.length() < 10) {
axisA += c;
} else if (axisB.length() < 10) {
axisB += c;
} else if (axisC.length() < 10) {
axisC += c;
}
}
}
Serial.write(c);
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
```
该程序在设置初始文本框值后,使用一个状态机来解析 GRBL 返回的信息。当程序接收到 '<' 字符时,它会清空所有轴的值;当程序接收到 ',' 字符时,它会解析所有轴的值,并将其显示在对应的文本框中。在解析过程中,程序将每个轴的值存储在一个字符串变量中,并使用 trim() 函数去掉前导和尾部空格。
请注意,这是一个简单的示例程序,您需要根据自己的需求进行修改和优化。例如,您可能需要添加错误处理代码,以便在 GRBL 返回错误消息时将其显示在串口屏幕上。
阅读全文