Усреднение данных датчика от Arduino по последовательной связи - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь получить скользящее среднее для данных, поступающих из 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
...