Anfänger fragt: Mittelwert aus Sensorwerten (Gewicht)

Das sollte so passen...

Ich persöhnlich mürde mich für die Kräfte die wirken wenn so ein Vogel anfliegt interessieren... Daher wird in dem Code auh die Anflugkurve ungefiltert mitgeschnitten... vieleicht kannst du das mit deinen Tools zu einer Kurve plotten und dann mal posten...

from time import sleep
from statistics import pstdev, mean

# Parameter zum Anpassen
gl_BufferSize = 7
gl_MessIntervall = 0.1
gl_MaxAbweichung = 2.0

# Globale Variablen
gl_Gewichte =[0] * gl_BufferSize
gl_WrPtr = 0

# zum Aufzeichnen der Kräfte die bei einem Anflug oder Abflug auftreten
gl_AnflugkurveSize = 100    # bei einem Messinterval von 0.1 S ist die Kurve maximal 10 s Lang
gl_Anflugkurve = []

def loop():
    global gl_Gewichte
    global gl_MaxAbweichung
    global gl_MessIntervall
    global gl_Gewichte
    global gl_WrPtr
    global gl_Anflugkurve
    global gl_AnflugkurveSize

    Gewicht = MessIrgendwas()

    # Messwerte sind hier als Ringspeicher organisiert
    gl_Gewichte[gl_WrPtr] = Gewicht
    gl_WrPtr += 1
    if (gl_WrPtr >= gl_BufferSize):
        gl_WrPtr = 0

    Abweichung = pstdev(gl_Gewichte)
    if Abweichung < gl_MaxAbweichung:
        Mittelwert = mean(gl_Gewichte)
        # ==> auf das Display oder wo auch immer hin
        print(Mittelwert)  # Nun kann man mit dem Wert machen was immer auch man will

        # Anflugkurve auf den Plotter :-)
        # plot(gl_Anflugkurve)

        gl_Anflugkurve = [] # Kurve resetten für einen neuen Anflugversuch
    else:
        if len(gl_Anflugkurve) < gl_AnflugkurveSize:
            gl_Anflugkurve.append(Gewicht)

    sleep(gl_MessIntervall)

1 Like