通过串行通信平均来自Arduino的Sensor-Data

时间:2019-06-02 13:21:43

标签: python arduino android-sensors

我正在尝试通过串行通信获取来自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

0 个答案:

没有答案