Raspberry Pi

Hoe afstand te meten met Raspberry Pi

Hoe afstand te meten met Raspberry Pi
U kunt afstand meten met behulp van de HC-SR04 ultrasone sensor met Raspberry Pi. De HC-SR04-sensor kan afstanden meten vanaf 2 mm (.02m) tot 400cm (4m). Het verzendt 8 bursts van 40 KHz-signalen en wacht vervolgens tot het een object raakt en wordt teruggekaatst. De tijd die de ultrasone 40 KHz geluidsgolf nodig heeft om heen en weer te reizen, wordt gebruikt om de afstand tussen de sensor en het object dat onderweg is te berekenen. Dat is eigenlijk hoe de HC-SR04-sensor werkt.

In dit artikel laat ik je zien hoe je een HC-SR04 ultrasone sensor gebruikt om de afstand tussen je sensor en een object op zijn manier te meten met behulp van Raspberry Pi. Laten we beginnen.

Onderdelen die u nodig heeft:

Om met succes afstand te meten met Raspberry Pi en HC-SR04-sensor, heb je nodig:,

Ik heb een speciaal artikel geschreven over het installeren van Raspbian op Raspberry Pi, dat je kunt bekijken op https://linuxhint.com/install_raspbian_raspberry_pi/ als je nodig hebt.

HC-SR04 Pin-outs:

De HC-SR04 heeft 4 pinnen. VCC, TRIGGER, ECHO, GROUD.

Fig1: HC-SR04 pinouts (https://www.mouser.com/ds/2/813/HCSR04-1022824.pdf)

De VCC-pin moet worden aangesloten op de +5V-pin van de Raspberry Pi, dat is pin 2. De GROUND-pin moet worden aangesloten op de GND-pin van de Raspberry Pi, dat is pin 4.

De TRIGGER- en ECHO-pinnen moeten worden aangesloten op de GPIO-pinnen van de Raspberry Pi. Terwijl de TRIGGER-pin direct kan worden aangesloten op een van de GPIO-pinnen van de Raspberry Pi, heeft de ECHO-pin een spanningsdelercircuit nodig.

Schakelschema:

Sluit de HC-SR04 ultrasone sensor als volgt aan op uw Raspberry Pi:

Fig2: HC-SR04 ultrasone sensor aangesloten op Raspberry Pi.

Als alles is aangesloten, ziet het er zo uit:

Fig3: HC-SR04 ultrasone sensor aangesloten op Raspberry Pi op breadboard.

Fig4: HC-SR04 ultrasone sensor aangesloten op Raspberry Pi op breadboard.

Een Python-programma schrijven voor het meten van afstanden met HC-SR04:

Maak eerst verbinding met je Raspberry Pi via VNC of SSH. Open vervolgens een nieuw bestand (laten we zeggen afstand.py) en typ de volgende regels codes:

Hier importeert regel 1 de Raspberry pi GPIO-bibliotheek.

Regel 2 importeert de tijdbibliotheek.

Binnen in de proberen blok, is de eigenlijke code voor het meten van de afstand met HC-SR04 geschreven.

De Tenslotte blok wordt gebruikt om de GPIO-pinnen op te ruimen met GPIO.schoonmaken() methode wanneer het programma wordt afgesloten.

Binnen in de proberen blok, op lijn 5, GPIO.setmode(GPIO).BORD) wordt gebruikt om het definiëren van pinnen gemakkelijker te maken. Nu kunt u naar pinnen verwijzen met fysieke nummers zoals op het Raspberry Pi-bord.

Op lijn 7 en 8, pinTrigger ingesteld op 7 en pinEcho ingesteld op 11. De OP GANG BRENGEN pin van HC-SR04 is verbonden met pin 7, en ECHO pin van HC-SR04 is verbonden met pin 11 van de Rapsberry Pi. Beide zijn GPIO-pinnen.

Online 10, pinTrigger is ingesteld voor OUTPUT met behulp van GPIO.opstelling() methode.

Online 11, pinEcho is ingesteld voor INPUT met behulp van GPIO.opstelling() methode.

Regels 13-17 worden gebruikt voor resetten pinTrigger (door het in te stellen op logische 0) en het instellen van de pinTrigger naar logische 1 gedurende 10 ms en vervolgens naar logische 0. In 10 ms verzendt de HC-SR04-sensor 8 40 KHz-pulsen.

Lijnen 19-24 worden gebruikt om de tijd te meten die nodig is voordat de 40 KHz-pulsen worden gereflecteerd naar een object en terug naar de HC-SR04-sensor.

Op regel 25 wordt de afstand gemeten met de formule,

Afstand = deltatijd * snelheid (340M/S) / 2

=> Afstand = deltatijd * (170M/S)

Ik heb de afstand berekend in centimeters in plaats van meters, om precies te zijn. Ik berekende afstand wordt ook afgerond op 2 decimalen.

Eindelijk, op regel 27, wordt het resultaat afgedrukt. Dat is het, heel eenvoudig.

Voer nu het Python-script uit met de volgende opdracht:

$ python3 afstand.py

Zoals u kunt zien, is de gemeten afstand 8.40 cm.

Fig5: object geplaatst op ongeveer 8.40 cm afstand van de sensor.

Ik ben iets verder naar het object verhuisd, de gemeten afstand is 21.81cm. Het werkt dus zoals verwacht.

Fig6: object geplaatst op ongeveer 21.81 cm verwijderd van de sensor.

Dus zo meet je afstand met Raspberry Pi met behulp van de HC-SR04 ultrasone sensor.  Zie de code voor afstand.py hieronder:

importeer RPi.GPIO als GPIO
import tijd
proberen:
GPIO.setmode(GPIO).BORD)
pinTrigger = 7
pinEcho = 11
 
GPIO.setup (pinTrigger, GPIO).UIT)
GPIO.instellingen (pinEcho, GPIO).IN)
 
GPIO.uitgang (pinTrigger, GPIO).LAAG)
GPIO.uitgang (pinTrigger, GPIO).HOOG)
 
tijd.slaap (0.00001)
GPIO.uitgang (pinTrigger, GPIO).LAAG)
 
terwijl GPIO.invoer (pinEcho) ==0:
pulseStartTime = tijd.tijd()
terwijl GPIO.invoer(pinEcho)==1:
pulseEndTime = tijd.tijd()
 
pulseDuration = pulseEndTime - pulseStartTime
afstand = rond (pulsduur * 17150, 2)
 
print("Afstand: %.2f cm" % (afstand))
Tenslotte:
GPIO.schoonmaken()
Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...
Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...
Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...