arduino python 具有多个变量的接口
arduino python interface with multiple variables
我想将 3 个随时变化的传感器变量带到我的 python 界面。
我正在尝试使用此测试代码,它不起作用,我做错了什么?
Arduino:
void setup() {
Serial.begin (9600);
}
void loop() {
Serial.print(random(1,3));
Serial.print(random(3,5));
Serial.print(random(5,7));
}
Python:
canvas.create_text(190, 150, text=ser.readline(1), fill="gray", font="Helvetica 45 bold",tag="T1")
如何让多个变量一直更新?现在我刚拿到第一个,还没有更新
为什么使用 readline
函数只读取一个字节?由于您需要多个值,因此使用(例如)space 分隔变量,然后使用 readline
存储它们并使用 split
分隔它们:
PS:注意最后一个其实是一个println
Arduino:
void loop() {
Serial.print(random(1,3));
Serial.print(" ");
Serial.print(random(3,5));
Serial.print(" ");
Serial.println(random(5,7));
}
Python:
allitems=ser.readline()
separateditems=allitems.split();
canvas.create_text(190, 150, " - ".join(separateditems), fill="gray", font="Helvetica 45 bold",tag="T1")
在此示例中,我将项目放入 separateditems
列表中(因此 separateditems[0]
等于 random(1,3)
,separateditems[1]
等于 random(3,5)
并且separateditems[2]
等于 random(5,7)
)。然后我加入他们显示"random(1,3) - random(3,5) - random(5,7)"。无论如何,您可以对收集到的数据做任何您想做的事情。
那么我强烈建议您在 loop
内设置延迟,以避免发送太多数据。我建议在最后放一个 delay(100);
或者,如果您需要在等待时做其他事情,请参阅 "Bounce without delay" 示例。
我想将 3 个随时变化的传感器变量带到我的 python 界面。
我正在尝试使用此测试代码,它不起作用,我做错了什么?
Arduino:
void setup() {
Serial.begin (9600);
}
void loop() {
Serial.print(random(1,3));
Serial.print(random(3,5));
Serial.print(random(5,7));
}
Python:
canvas.create_text(190, 150, text=ser.readline(1), fill="gray", font="Helvetica 45 bold",tag="T1")
如何让多个变量一直更新?现在我刚拿到第一个,还没有更新
为什么使用 readline
函数只读取一个字节?由于您需要多个值,因此使用(例如)space 分隔变量,然后使用 readline
存储它们并使用 split
分隔它们:
PS:注意最后一个其实是一个println
Arduino:
void loop() {
Serial.print(random(1,3));
Serial.print(" ");
Serial.print(random(3,5));
Serial.print(" ");
Serial.println(random(5,7));
}
Python:
allitems=ser.readline()
separateditems=allitems.split();
canvas.create_text(190, 150, " - ".join(separateditems), fill="gray", font="Helvetica 45 bold",tag="T1")
在此示例中,我将项目放入 separateditems
列表中(因此 separateditems[0]
等于 random(1,3)
,separateditems[1]
等于 random(3,5)
并且separateditems[2]
等于 random(5,7)
)。然后我加入他们显示"random(1,3) - random(3,5) - random(5,7)"。无论如何,您可以对收集到的数据做任何您想做的事情。
那么我强烈建议您在 loop
内设置延迟,以避免发送太多数据。我建议在最后放一个 delay(100);
或者,如果您需要在等待时做其他事情,请参阅 "Bounce without delay" 示例。