Raspberry Pi - Ultraschallsensor
Dieses Tutorial zeigt Ihnen, wie Sie Raspberry Pi und Ultraschallsensor verwenden, um die Entfernung zu Hindernissen oder Objekten zu messen. Im Detail lernen wir:
- Wie der Ultraschallsensor funktioniert
- Wie Sie den Ultraschallsensor an den Raspberry Pi anschließen
- Wie Sie den Raspberry Pi programmieren, um Entfernungen mit dem Ultraschallsensor zu messen
- Wie Sie Rauschen aus den Entfernungsmessungen des Ultraschallsensors im Raspberry Pi Code herausfiltern
Benötigte Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den Ultraschallsensor
Der HC-SR04 Ultraschallsensor wird verwendet, um die Entfernung zu einem Objekt durch die Nutzung von Ultraschallwellen zu berechnen.
Die Pinbelegung des Ultraschallsensors
Der HC-SR04 Ultraschallsensor hat vier Pins:
- VCC-Pin: muss mit VCC (5V) verbunden werden
- GND-Pin: muss mit GND (0V) verbunden werden
- TRIG-Pin: dieser Pin empfängt ein Steuersignal (Puls) vom Raspberry Pi
- ECHO-Pin: dieser Pin sendet ein Signal (Puls) an den Raspberry Pi. Der Raspberry Pi misst die Länge des Pulses, um die Entfernung zu berechnen.

Wie es funktioniert
- Der Mikrocontroller erzeugt einen 10-Mikrosekunden-Puls am TRIG-Pin, wodurch der Ultraschallsensor automatisch Ultraschallwellen aussendet.
- Wenn die Wellen auf ein Hindernis treffen, werden sie zum Sensor zurückreflektiert.
- Der Ultraschallsensor erkennt dann die reflektierte Welle und misst ihre Laufzeit.
- Als Ergebnis erzeugt der Ultraschallsensor einen Puls am ECHO-Pin, wobei die Dauer des Pulses gleich der Laufzeit der Ultraschallwelle ist.
- Der Mikrocontroller misst die Pulsdauer am ECHO-Pin und berechnet die Entfernung zwischen Sensor und Hindernis.
Wie man die Entfernung vom Ultraschallsensor erhält
- Um die Entfernung vom Ultraschallsensor zu berechnen, müssen zwei Schritte unternommen werden, wie im Abschnitt "Wie es funktioniert" beschrieben (Schritte 1 und 6):
- Erzeugung eines 10-Mikrosekunden-Pulses am TRIG-Pin.
- Messung der Pulsdauer am ECHO-Pin.
- Verwendung der gemessenen Pulsdauer zur Berechnung der Entfernung zwischen Sensor und Hindernis.
Entfernungsberechnung
Wir haben:
- Die Laufzeit der Ultraschallwelle (µs): travel_time = pulse_duration
- Die Geschwindigkeit der Ultraschallwelle: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Also:
- Die Laufstrecke der Ultraschallwelle (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- Die Entfernung zwischen Sensor und Hindernis (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
Raspberry Pi - Ultraschallsensor
Die Pins eines Raspberry Pi können einen 10-Mikrosekunden-Puls erzeugen und die Länge des Pulses messen. Dies ermöglicht es uns, die Entfernung vom Ultraschallsensor zu berechnen, indem wir zwei Raspberry Pi Pins verwenden. Also müssen wir nur zwei Pins des Raspberry Pi verwenden:
- Ein Pin wird mit dem TRIG-Pin des Ultraschallsensors verbunden, um einen 10µs Puls zu erzeugen.
- Der andere Pin wird mit dem ECHO-Pin des Ultraschallsensors verbunden, um den Puls vom Sensor zu messen
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Programmierung für den Ultraschallsensor
- Erzeugen Sie einen 10-Mikrosekunden-Puls am Pin 9 des Raspberry Pi durch Nutzung der GPIO.output() und time.sleep() Funktionen.
- Zum Beispiel:
- Setzen Sie Pin 9 auf HIGH mit digitalWrite() und verzögern Sie dann um 10 Mikrosekunden mit delayMicroseconds().
- Bestimmen Sie die Pulsdauer (µs) am Pin 8 des Raspberry Pi durch Verwendung der pulseIn() Funktion. Zum Beispiel:
- Bestimmen Sie die Entfernung (cm):
Raspberry Pi Code
Schnelle Schritte
- Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit dem gleichen lokalen Netzwerk wie Ihr PC verbunden ist.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, wenn Sie Bibliotheken installieren müssen.
- Falls Sie den Raspberry Pi zum ersten Mal verwenden, siehe Raspberry Pi einrichten
- Verbinden Sie Ihren PC mit dem Raspberry Pi über SSH mit dem integrierten SSH-Client auf Linux und macOS oder PuTTY auf Windows. Siehe PC mit Raspberry Pi über SSH verbinden.
- Stellen Sie sicher, dass die RPi.GPIO Bibliothek installiert ist. Falls nicht, installieren Sie sie mit folgendem Befehl:
- Erstellen Sie eine Python-Skriptdatei ultrasonic_sensor.py und fügen Sie den folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal ausführen:
- Platzieren Sie Ihre Hand vor dem Ultraschallsensor
- Überprüfen Sie die Entfernung zwischen dem Sensor und Ihrer Hand, die im Terminal angezeigt wird
Das Skript läuft in einer Endlosschleife kontinuierlich, bis Sie Ctrl + C im Terminal drücken.
Code-Erklärung
Schauen Sie sich die zeilenweise Erklärung in den Kommentaren des Quellcodes an!
Rauschen aus Entfernungsmessungen des Ultraschallsensors filtern
Das Messergebnis eines Ultraschallsensors kann Rauschen enthalten, was in einigen Anwendungen zu unerwünschten Vorgängen führen kann. Um dieses Rauschen zu entfernen, kann der folgende Algorithmus verwendet werden:
- Mehrere Messungen durchführen und in einem Array speichern
- Das Array in aufsteigender Reihenfolge sortieren
- Das Rauschen herausfiltern durch:
- Die kleinsten Proben werden als Rauschen betrachtet und sollten ignoriert werden
- Die größten Proben werden als Rauschen betrachtet und sollten ignoriert werden
- Der Durchschnitt der mittleren Proben sollte als Messwert genommen werden
- Ignoriert die fünf kleinsten Proben, die als Rauschen betrachtet werden.
- Ignoriert die fünf größten Proben, die ebenfalls als Rauschen betrachtet werden.
- Ermittelt den Durchschnitt der 10 mittleren Proben (von der 5. bis zur 14.).
Der folgende Beispielcode nimmt 20 Messungen vor:
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Fordern Sie sich selbst heraus
Verwenden Sie einen Ultraschallsensor, um eines der folgenden Projekte zu realisieren:
- Bauen Sie ein Kollisionsvermeidungssystem für ein ferngesteuertes Auto.
- Messen Sie die Materialmenge in einem Mülleimer.
- Überwachen Sie den Füllstand des Mülleimmers.
- Öffnen und schließen Sie den Mülleimer automatisch. Hinweis: Siehe Raspberry Pi - Servo Motor.
Anwendungen des Ultraschallsensors
- Kollisionsvermeidung
- Füllstandserkennung
- Pegelmessung
- Näherungserkennung