Stabilität Ultraschall Sensor

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    Ich bin gerade dabei, meine ersten Schritte mit dem Raspi zu mache, dabei bin ich natürlich schon auf Schwierigkeiten gestoßen.

    Ich lese eine HC SR04 Ultraschallsensor kontinuierlich aus.

    Meine Software ist ein ganz normale Python-Programm, wie tausendfach im Internet zu finden, die Beschaltung des Sensors ist auch korrekt (Spannungsversorgung mit 5V, Spannungteiler am Echo-Pin).

    Den Distanzwert verwende ich um die Lautstärke einer audioloop (mp3) zu regell, die ich mit pygame abspiele.

    Es funktioniert auch alles ganz prächtig, allerdings geht nach nicht deterministischen Anzahl von Messungen bzw. Lautstärkeregelungen die Prozessorlast (ich messe mit glances) auf 100% hoch und es wird nicht mehr gemessen.

    Ich habe den Verdacht, daß das Problem mit Pygame zusammenhängt, da es mir vorkommt, daß das System stabiler ist, wenn die Lautstärke nicht verändert wird.

    Hat jemand eine Idee, was ich anstelle zum loopen eines soundfiles verwenden könnte, um auszuprobieren ob das Problem da zu finden ist?

    Bin dankbar für jeden Vorschlag, da mir sonst eigentlich kein Grund mehr einfällt, woran es liegen könnte.

    Vielen Danke und viele Grüße,

    Robert

  • Update - am Verändern der Lautstärke von pygame.mixer liegts nicht, die Instabilität bliebt, auch wenn ich die dynamische Lautstärkenänderung auskommentiere...

    Ich habe die Sensormessfunktion durch ein mock ersetzt, das zufällige Abstandswerte liefert und damit läuft alles scheinbar stabil. Es liegt also doch eher an der Sensormessung.

    Ich messe im Abstand von 0.2s.

    Der Messcode ist eigentlich ja trivial:


    Einmal editiert, zuletzt von robert_r (17. Dezember 2021 um 21:47)

  • Meine Software ist ein ganz normale Python-Programm, wie tausendfach im Internet zu finden

    Das verheißt schon mal nicht unbedingt etwas gutes! Vermutlich verwendest Du RPi.GPIO. Zeig mal bitte den Code dazu!

    Siehe auch schon mal hier: https://gpiozero.readthedocs.io/en/stable/reci…distance-sensor

  • Soweit ich verstanden habe ist gpiozero aber eh nur ein wrapper für RPi.GPIO, oder?

    Jain! Man kann gpiozero auch sagen, dass es ein anderes Modul verwenden soll. Davon ab ist bei gpiozero schon so einiges geregelt, um das man sich bei RPi.GPIO noch selber kümmern muss.

    Schon in Zeile #1 ist ein Fehler: import RPi.GPIO as GPIO

    as ist zum umbenennen gedacht. Richtig wäre in dem Fall from RPi install GPIO.

    Den Rest sehe ich mir mal in Ruhe an. ;)

  • Das ist nett von Dir, Danke!

    Beim import statement hast Du natürlich recht, aber funktional macht das hier wohl keinen Unterschied, denke ich.


    Nur zum Kontext - das Programm ist dafür ausgelegt, mehrere Sensoren auszulesen.

    Was ich noch versucht habe, war, das Intervall zwischen den Messungen zu verlängern. Hat aber keine Verbesserung gebracht.

  • Ich habe jetzt noch einige Tests laufen lassen.

    Ich denke, das Problem liegt nicht an den Sensoren, sondern an einem anderen Teil des Programmes.

    Die Resultate der Distanzmessungen werden dazu verwendet, die Lautstärke einer audioloop in Abhängigkeit von der Distanz zu verändern.

    Zum Ausgeben der loop verwende ich pygame - ich habe sonst nichts gefunden, was mir komfortables loopen eines wav/mp3 files erlaubt.

    Und genau hier liegt meiner Meinung nach das Problem - wenn ich das kontinuierliche Ändern der Lautstärke in Abhängigkeit von der Distanz auskommentiere, läuft das Programm stabil über mehrere Stunden.

    Hilft mir halt auch nicht viel weiter - für irgendwelche Ideen bin ich dankbar!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!