我正在尝试通过串行通信获取来自arduino的数据的连续平均值。
如果在将数据发送到列表进行平均之前先打印出数据,则可以正确打印出数据。
将其输入列表后,会出现以下错误:
IndexError字符串索引超出范围
我在做什么错?感谢您的帮助!
import serial
# init list for avarage
seq = []
ser = serial.Serial('com7',9600,timeout=1)
def try_parse_int(s):
try:
return int(s)
except ValueError:
return s
while 1:
arduinoData = ser.readline().decode("utf-8").strip('\n').strip('\r') # remove newline and carriage return characters
print("We got: '{}'".format(arduinoData))
arduinoData = try_parse_int(arduinoData)
# append data to list
seq.append(arduinoData[4]) # short for for ... enumerate(line) + if position==4 ... data
# check length of list
while len(seq)>4:
# reduce length of list
del seq[0]
# (A + B + C + D) / 4
data = sum(seq) / len(seq)
print(data) # print fluent mean average