我在做一个项目,在这个项目中,一个连续的数据流通过Arduino从串口传输过来,在这个项目中,我必须提取我所需要的信息。 我已经包括“AA”在我所需的数据开始和“55”在结束。你知道吗
Arduino串行监视器输出-
AA055
AA155
AA255
AA355
AA455
Arduino代码-
int i=0;
void setup()
{
Serial.begin(9600); // Open serial connection at a baud rate of 9600
}
void loop()
{
Serial.print("AA");
Serial.print(i);
Serial.println("55");
i++;
delay(100);
}
PYTHON代码
import serial
import time
import csv
baudrate = 9600
port = 'COM2' # set the correct port before run it
serial = serial.Serial(port=port, baudrate=baudrate)
serial.flushInput()
with open("test_data.csv","a") as f:
writer = csv.writer(f,delimiter=",")
writer.writerow(["TIME STAMP", "DATA"])
while True:
try:
ser_bytes = serial.readline()
decoded_bytes = float(ser_bytes[0:len(ser_bytes)-2].decode("utf-8"))
print(decoded_bytes)
aq = time.strftime('%a %H:%M:%S')
print(aq)
with open("test_data.csv","a") as f:
writer = csv.writer(f,delimiter=",")
writer.writerow([time.strftime('%a %H:%M:%S'),decoded_bytes])
except:
print("Keyboard Interrupt")
break
我希望python代码通过检测开头的“AA”和结尾的“55”来提取我的信息。你知道吗
假设您需要从串行输出(以“AA”开始,以“55”结束)中提取信息,您可以对python代码进行如下修改:
假设串行输出如下:
这段代码将只打印以“AA”开头并以“55”结尾的输出。这是前两种情况。你知道吗
我们正在检查长度是否大于4,因为信息将包含在“AA”和“55”中。你知道吗
这里需要注意的是字符串切片操作符。你可以把它读出来。它基本上返回字符串的一部分,在一些索引中。你知道吗
相关问题 更多 >
编程相关推荐