Ultraschall Sensor Software

Im letzten Teil habe ich nur kurz die Ultraschall Sensor Software erwähnt. Diese fehlt uns noch um mit dem Raspberry Pi Abstandsmessungen durchzuführen. Ich habe dazu ein Python Skript erstellt, dass beim Aufruf die Messung durchführt und das Ergebnis auf der Konsole ausgibt. Das Skript kann auch automatisiert von einer Roboter KI verwendet werden um im Raum zu navigieren, aber dazu in einigen Wochen mehr.

Ultraschall Sensor Software

Ultraschall Sensor Software

Der HC-SR04 Sensor ist recht interessant. Neben der Spannung und der Masse benötigt er nur 2 Datensignale:

  • Trig
    Liegt an diesem Pin Spannung an, dann sendet der Sensor einen Ultraschall Impuls aus. Für unsere Zwecke schalten wir diesen Impuls nur für einen Bruchteil einer Sekunde an. Wir wollen nur einen kurzen Ping absetzen und dann auf das Echo des Pings warten, dass auftritt, wenn die Schallwellen auf ein Objekt treffen und von diesem zurückgeworfen/reflektiert werden.
  • Echo
    Der Empfänger horcht. Ist also passiv und sendet erst ein Signal aus, wenn er ein Ultraschall Signal empfängt.

Das Datenblatt des Sensors für weitere Informationen ist unter dem Link zu finden.

Theorie

Die Theorie der Ultraschall Sensor Software ist recht einfach. Wir initialisieren die nötigen GPIO Pins und benennen diese mit trig oder echo. Danach initialisieren wir den Sender, so dass dieser kein Signal aussendet. Nach kurzer Wartezeit schicken wir einen Ping, das heißt wir legen für einen Bruchteil einer Sekunde Spannung an. Dieser Impuls kommt zum Empfänger zurück, nachdem er von einem Objekt reflektiert wurde. Sobald dieser eintrifft starten wir den timer und warten bis der Impuls vorbei ist. Aus der Impulsdauer kann die doppelte Entfernung des Wegs errechnet werden (Weg vom Sender zum Objekt und der Weg vom Objekt zum Empfänger). Von diesem Wert ist die tatsächliche Entfernung sehr einfach zu bekommen.

Source Code

Der vollständige Source Code für den Sensor sieht wie folgt aus:

Wir binden die Bibliotheken für die GPIO Schnittstelle GPIO und für den Zeitberechnung time ein. Danach dir übliche Initialisierung der Schnittstelle und der verwendeten Pins. Wir benötigen die Pins 23 und 24 und setzen diese jeweils als Ausgabe oder Eingabe Pin.

Die Ultraschall Sensor Software beginnt damit, den Sender auf 0 zu setzen, es wird somit kein Signal gesendet. Danach setzen wir den Impuls ab in dem wir den Pin für 0.00001 Sekunden auf 1 setzen und danach sofort wieder auf 0. Beim Empfänger horchen wir nun bis das Signal ankommt, nehmen die Zeit und warten dann ab bis das Signal vollständig empfangen wurde und am Empfänger nichts mehr ankommt. Diese Differenz ist nun die doppelte Wegstrecke, wir multiplizieren diese mit der halben Schallgeschwindigkeit (Luft: 343 m/s) = 17150. Nun haben wir den gemessenen Abstand in Zentimeter. Diesen geben wir aus.
HC-SR04 Software

Genauigkeit

Die Genauigkeit der Messung ist ausschließlich von der präzisen Zeitdifferenz abhängig. Da Linux kein Echtzeit Betriebssystem ist werden zwei aufeinander folgende Messungen nie exakt die selbe Entfernung anzeigen. Die Rechenzeit wird auf alle Prozesse aufgeteilt und somit ist nicht vorhersagbar wann das Python Skript immer Prozessorzeit bekommt. Die Genauigkeit liegt aber im Millimeterbereich und ist für fast alle Anwendungsfälle ausreichend.

Fazit

Mit der Ultraschall Sensor Software lässt sich in Verbindung mit dem HC-SR04 Sensor so einiges realisieren. Man kann kleinere Räume vermessen, eine Einparkautomatik für das Auto realisieren oder einfach einen Roboter auf Basis des Raspberry Pis bauen. In jedem Fall liefert der Ultraschall Sensor präzise Messwerte und das Skript ist in vielen Projekten gut einsetzbar.

Welche Verbesserungen würdet ihr an der Software machen? Wo setzt ihr den Sensor ein?

Teil 1 | Teil 2 | Teil 3 | Teil 4 | Teil 5

(Visited 4.173 times, 1 visits today)

Das könnte auch interessant sein...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.