Raspberry Pi - Ultrasonic Sensor
Deze handleiding leert u hoe u met een Raspberry Pi en een ultrasonic sensor afstanden kunt meten tot obstakels of objecten. In detail behandelen we:
- Hoe een ultrasonic sensor werkt
- Hoe u de ultrasonic sensor op de Raspberry Pi aansluit
- Hoe u de Raspberry Pi programmeert om afstand te meten met de ultrasonic sensor
- Hoe u ruis uit de afstandsmetingen van de ultrasonic sensor filtert in de Raspberry Pi code
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over Ultrasonic Sensor
De HC-SR04 ultrasonic sensor wordt gebruikt om de afstand tot een object te berekenen door gebruik te maken van ultrasone golven.
Pinout van de Ultrasonic Sensor
De HC-SR04 ultrasonic sensor heeft vier pinnen:
- VCC pin: moet worden aangesloten op VCC (5V)
- GND pin: moet worden aangesloten op GND (0V)
- TRIG pin: deze pin ontvangt een stuursignaal (puls) van de Raspberry Pi
- ECHO pin: deze pin verstuurt een signaal (puls) terug naar de Raspberry Pi. De Raspberry Pi meet de lengte van deze puls om de afstand te berekenen.

Hoe Het Werkt
- De microcontroller genereert een puls van 10 microseconden op de TRIG pin, waardoor de ultrasonic sensor automatisch ultrasone golven uitzendt.
- Wanneer de golven een obstakel raken, worden ze teruggekaatst naar de sensor.
- De ultrasonic sensor detecteert vervolgens de gereflecteerde golf en meet de reistijd hiervan.
- Hierdoor genereert de ultrasonic sensor een puls op de ECHO pin, waarbij de duur van de puls gelijk is aan de reistijd van de ultrasone golf.
- De microcontroller meet de pulsduur op de ECHO pin en berekent de afstand tussen sensor en obstakel.
Hoe De Afstand Te Bepalen Met Ultrasonic Sensor
- Voor het berekenen van de afstand met de ultrasonic sensor moeten twee stappen worden doorlopen, zoals beschreven in de sectie "Hoe Het Werkt" (stappen 1 en 6):
- Genereer een puls van 10 microseconden op de TRIG pin.
- Meet de pulsduur op de ECHO pin.
- Gebruik de gemeten pulsduur om de afstand tussen sensor en obstakel te berekenen.
Afstandsberekening
We hebben:
- De reistijd van de ultrasone golf (μs): travel_time = pulse_duration
- De snelheid van de ultrasone golf: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/μs
Dus:
- De reisafstand van de ultrasone golf (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- De afstand tussen sensor en obstakel (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
Raspberry Pi - Ultrasonic Sensor
De pinnen van een Raspberry Pi kunnen een puls van 10 microseconden genereren en de lengte van een puls meten. Hierdoor kunnen we de afstand bepalen van de ultrasonic sensor door twee Raspberry Pi pinnen te gebruiken. We hebben dus slechts twee Raspberry Pi pinnen nodig:
- Eén pin is verbonden met de TRIG pin van de ultrasonic sensor om een puls van 10 μs te genereren.
- De andere pin is verbonden met de ECHO pin van de ultrasonic sensor om de puls van de sensor te meten.
Bedradingsschema

This image is created using Fritzing. Click to enlarge image
Hoe Te Programmeren Voor Ultrasonic Sensor
- Maak een puls van 10 microseconden op pin 9 van de Raspberry Pi met gebruik van de functies GPIO.output() en time.sleep().
- Bijvoorbeeld:
- Zet pin 9 op HIGH via digitalWrite() en wacht dan 10 microseconden met delayMicroseconds().
- Bepaal de pulsduur (μs) op pin 8 van de Raspberry Pi met de pulseIn() functie. Bijvoorbeeld:
- Bereken de afstand (cm):
Raspberry Pi Code
Snelle Stappen
- Zorg dat u Raspbian of een ander door Raspberry Pi ondersteund besturingssysteem op uw Pi geïnstalleerd hebt.
- Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw PC.
- Zorg dat uw Raspberry Pi met internet verbonden is als u libraries moet installeren.
- Als dit de eerste keer is dat u de Raspberry Pi gebruikt, bekijk dan hoe u de Raspberry Pi instelt.
- Verbind uw PC via SSH met de Raspberry Pi met de ingebouwde SSH-client op Linux en macOS of PuTTY op Windows. Zie hoe u uw PC via SSH verbindt met de Raspberry Pi.
- Zorg dat de RPi.GPIO library geïnstalleerd is. Zo niet, installeer deze met het volgende commando:
- Maak een Python scriptbestand aan met de naam ultrasonic_sensor.py en voeg de volgende code toe:
- Sla het bestand op en voer het Python script uit via het volgende commando in de terminal:
- Houd uw hand voor de ultrasonic sensor
- Bekijk de afstand tussen sensor en hand die in de terminal wordt weergegeven
Het script draait in een oneindige lus totdat u Ctrl + C drukt in de terminal.
Code Uitleg
Bekijk de regel-voor-regel uitleg die verwerkt is in de commentaren van de broncode!
Hoe Ruis Uit Afstandsmetingen Van Ultrasonic Sensor Te Filteren
De meetresultaten van een ultrasonic sensor kunnen ruis bevatten, wat in sommige toepassingen ongewenste effecten kan geven. Om deze ruis te verwijderen kan het volgende algoritme gebruikt worden:
- Neem meerdere metingen en sla deze op in een array.
- Sorteer de array oplopend.
- Filter de ruis door:
- De kleinste waarden als ruis te beschouwen en te negeren.
- De grootste waarden als ruis te beschouwen en te negeren.
- Het gemiddelde te nemen van de middelste waarden als de gemeten waarde.
- Negeer de vijf kleinste waarden, omdat deze ruis worden genoemd.
- Negeer de vijf grootste waarden, omdat ook deze als ruis gelden.
- Neem het gemiddelde van de 10 middelste waarden (5e tot en met 14e).
Het voorbeeld hieronder neemt 20 metingen:
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.
Daag Uzelf Uit
Gebruik een ultrasonic sensor om een van de volgende projecten te maken:
- Bouw een botsingsmeldingssysteem voor een op afstand bestuurbare auto.
- Meet de hoeveelheid materiaal in een vuilnisbak.
- Monitor het vulniveau van de vuilnisbak.
- Open en sluit de vuilnisbak automatisch. Tip: Bekijk Raspberry Pi - Servo Motor.
Toepassingen Van Ultrasonic Sensor
- Botsingen vermijden
- Volle bak detecteren
- Niveau meten
- Nabijheid detecteren