我正在使用具有Python脚本功能的软件。我想用它来移动Clearpath伺服器并间歇运行内部软件命令。
使用Arduino,我可以控制伺服器,但是一旦开始使用串行通讯,它就会开始出错。阅读完其他文章后,我认为问题是由于串行通讯是8位的,并且我想发送大整数而引起的。
例如,Arduino代码的一部分显示:
void loop(){
if(Serial.available()){
inByte = Serial.readStringUntil('\n');
ser = inByte.toInt();
X.move(ser);
while(!X.commandDone()||!X.readHLFB())
{ }
Serial.print (inByte);
delay(1000);
}
}
在开始使用串行通信之前,我会在X.move(ser)中使用整数并获得完美的结果。现在我正在使用串行端口,我可以告诉您此代码有问题。即使使用串行监视器似乎可以正常工作,但我尝试使用它的次数越多(尤其是使用更大的数字),我越意识到它可能没有使用串行监视器之前所做的事情。
然后将Python添加到组合中,甚至变得更糟。 为了让您了解我要做什么,下面是一个Python代码示例:
ser = serial.Serial('COM3', 9600, timeout=1)
ser.close()
ser.open()
while True:
var = "1000"
ser.write(var.encode())
time.sleep(1)'
使用此代码,伺服系统会移动,但根本不正确。 我该如何通过串行方式将大整数(例如50502)从Python发送到Arduino,而又不会在串行通信期间被弄乱呢?