Ultraschallmodul-Messfehler

  • Hallo zusammen,
    ich habe für meinen Raspberry Pi B+ ein Ultraschall-Modul(HC-SR04) gekauft.

    Es soll für folgendes Szenario eingesetzt werden:
    Das von mir gebastelte Raspberry Pi - Car kann mit Hilfe von 2 Infrarotsensoren einer Linie folgen. Falls nun ein Gegenstand den Weg behindern sollte, dann soll das Auto einfach mal umdrehen. So weit so gut. :D
    Im Großen und Ganzen funktioniert dies auch.
    Leider bekommt das Ultraschallmodul manchmal, für mich nicht nachvollziehbar, falsche Werte zurück. :helpnew:
    Z.B. zu erwarten sind ca. 50 cm aber es liefert ein Wert unter 10 cm zurück.
    Dies passiert nur ab und zu. :wallbash:
    Das ganze läuft über den Webserver WebIOPi.

    Zum einen die Dinstanz-Funktion:

    Und nun noch die dazugehörige Loop-Funktion:

    Kann es sein, sobald das Ultraschallmodul in einem falschen Winkel auf ein Objekt trifft, dass dann falsche Werte zurückgeliefert werden?

    Vielen Dank schon mal im Vorraus :danke_ATDE:

    Gruß
    Kevin

    Einmal editiert, zuletzt von kingkevin (28. April 2015 um 11:17)

  • Hallo Kevin,

    das von Dir verwendete Ultraschallmodul strahlt in einem Winkel von +/- 15 ° ab - deckt also einen Winkel von 30 ° ab in den den Ultraschall abgestralt wird.

    Alles, was aus diesem Winkel Ultraschall reflektieren kann, tut es auch. Und das erste "Hindernis" das angetroffen wird, hat "gewonnen".

    Bei mir habe ich das so gelöst, dass ich den Ultraschallsensor im 180 ° rotieren lasse und je Winkel zwei Messwerte erfasse. Den einen bei Drehen nach links, den andern beim zurückkommen von rechts.

    Ein echtes Hindernis kann nur dann vorliegen, wenn die Abstände zu diesem Winkel von links und rechts kommend ungefähr identisch sind. Unterscheiden sich die Werte extrem (z.B. um einige Meter) dann liegt die Ursache darin, dass Ultraschall einmal direkt reflektiert wird und dann andere Mal weiter gestreut wird und auf einem anderen - längeren - Weg zurückkommt.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hi Andreas,

    danke für deine schnelle Antwort.
    Aber mein eigentliches Problem liegt nicht darin, dass ein Objekt reflektieren kann weil es die von mir eingstellten 20 cm unterschreitet.
    Der Ultraschallsensor liefert willkürlich Messwerte im Bereich zwischen 3cm und 15cm zurück, obwohl das nächste "Hindernis" eigentlich zwischen 50cm und 200cm entfernt ist.

    Vielleicht ein Programmierfehler?

    Gruß
    Kevin

  • Hallo Kevin,

    der Ultraschallsensor strahlt nicht in eine Richtung wie ein Strich, sondern erfasst alles in dem angegebenen Winkel. Theoretisch kann es sein, wenn der Sensor in Bodennähe angebracht ist, dass dieser Bodenabstand schon ausreicht, um den Boden als Hindernis zu entdecken. Oft hilft hier eine bessere Ausrichtung des Sensors.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

Jetzt mitmachen!

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