Raspberry Pi

Hur man mäter avstånd med Raspberry Pi

Hur man mäter avstånd med Raspberry Pi
Du kan mäta avstånd med hjälp av ultraljudssensorn HC-SR04 med Raspberry Pi. HC-SR04-sensorn kan mäta avstånd från 2 mm (.02m) till 400cm (4m). Den skickar 8 burst 40KHz-signaler och väntar sedan på att den träffar ett objekt och reflekteras tillbaka. Tiden det tar för ultraljud 40 KHz ljudvåg att resa fram och tillbaka används för att beräkna avståndet mellan sensorn och objektet på väg. Det är i princip hur HC-SR04-sensorn fungerar.

I den här artikeln kommer jag att visa dig hur du använder en HC-SR04 ultraljudssensor för att mäta avståndet mellan din sensor och ett objekt på sitt sätt med Raspberry Pi. Låt oss börja.

Komponenter du behöver:

För att framgångsrikt mäta avstånd med Raspberry Pi och HC-SR04-sensor behöver du,

Jag har skrivit en dedikerad artikel om installation av Raspbian på Raspberry Pi, som du kan kolla på https: // linuxhint.com / install_raspbian_raspberry_pi / om du behöver.

HC-SR04 Pinouts:

HC-SR04 har 4 stift. VCC, TRIGGER, ECHO, GROUD.

Fig1: HC-SR04-pinouts (https: // www.råttfångare.com / ds / 2/813 / HCSR04-1022824.pdf)

VCC-stiftet ska anslutas till + 5V-stift på Raspberry Pi, vilket är stift 2. GROUND-stiftet ska anslutas till GND-stiftet på Raspberry Pi, vilket är stift 4.

TRIGGER- och ECHO-stiften ska anslutas till GPIO-stiften på Raspberry Pi. Medan TRIGGER-stiftet kan anslutas direkt till en av GPIO-stiften på Raspberry Pi, behöver ECHO-stiftet en spänningsdelarkrets.

Kretsschema:

Anslut HC-SR04 ultraljudssensor till din Raspberry Pi enligt följande:

Fig2: HC-SR04 ultraljudssensor ansluten till Raspberry Pi.

När allt är anslutet ser det ut så här:

Fig3: HC-SR04 ultraljudssensor ansluten till Raspberry Pi på brödbräda.

Fig4: HC-SR04 ultraljudssensor ansluten till Raspberry Pi på brödbräda.

Skriva ett Python-program för mätning av avstånd med HC-SR04:

Anslut först till din Raspberry Pi med VNC eller SSH. Öppna sedan en ny fil (låt oss säga distans.py) och skriv in följande rader med koder:

Här importerar rad 1 raspberry pi GPIO-biblioteket.

Rad 2 importerar tidsbiblioteket.

Inuti Prova block, skrivs den faktiska koden för att mäta avståndet med HC-SR04.

De till sist block används för att städa upp GPIO-stiften med GPIO.städa() metod när programmet avslutas.

Inuti Prova blockera, på rad 5, GPIO.setmode (GPIO.STYRELSE) används för att göra det lättare att definiera stift. Nu kan du referera stift med fysiska siffror som det är på Raspberry Pi-kortet.

På rad 7 och 8, pinTrigger är satt till 7 och pinEcho är satt till 11. De TRIGGER stift på HC-SR04 är anslutet till stift 7 och EKO stift av HC-SR04 är ansluten till stift 11 på Rapsberry Pi. Båda dessa är GPIO-stift.

På rad 10, pinTrigger är inställt för OUTPUT med GPIO.uppstart() metod.

På rad 11, pinEcho är inställt för INPUT med GPIO.uppstart() metod.

Linjerna 13-17 används för återställning pinTrigger (genom att ställa in den på logik 0) och ställa in pinTrigger till logik 1 i 10 ms och sedan till logik 0. På 10 ms skickar HC-SR04-sensorn 8 40 KHz-puls.

Linjerna 19-24 används för att mäta den tid det tar för 40KHz-pulserna att reflekteras till ett objekt och tillbaka till HC-SR04-sensorn.

På rad 25 mäts avståndet med formeln,

Avstånd = deltatid * hastighet (340M / S) / 2

=> Avstånd = deltatid * (170M / S)

Jag beräknade avståndet i centimeter istället för meter, bara för att vara exakt. Jag beräknade avståndet är också avrundat till 2 decimaler.

Slutligen, på rad 27, skrivs resultatet ut. Det är det, väldigt enkelt.

Kör nu Python-skriptet med följande kommando:

$ python3 avstånd.py

Som du kan se är det uppmätta avståndet 8.40 cm.

Fig5: objekt placerat vid cirka 8.40 cm från sensorn.

Jag rörde mig för att invända lite längre, det uppmätta avståndet är 21.81cm. Så det fungerar som förväntat.

Fig6: objekt placerat vid cirka 21.81 cm från sensorn.

Så det är så du mäter avstånd med Raspberry Pi med hjälp av HC-SR04 ultraljudssensor.  Se koden för avstånd.py nedan:

importera RPi.GPIO som GPIO
importtid
Prova:
GPIO.setmode (GPIO.STYRELSE)
pinTrigger = 7
pinEcho = 11
 
GPIO.inställning (pinTrigger, GPIO.UT)
GPIO.inställning (pinEcho, GPIO.I)
 
GPIO.utgång (pinTrigger, GPIO.LÅG)
GPIO.utgång (pinTrigger, GPIO.HÖG)
 
tid.sova (0.00001)
GPIO.utgång (pinTrigger, GPIO.LÅG)
 
medan GPIO.input (pinEcho) == 0:
pulseStartTime = tid.tid()
medan GPIO.input (pinEcho) == 1:
pulseEndTime = tid.tid()
 
pulseDuration = pulseEndTime - pulseStartTime
avstånd = rund (pulsDuration * 17150, 2)
 
skriv ut ("Avstånd:%.2f cm "% (avstånd))
till sist:
GPIO.städa()
Mus Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Emulera musklick genom att sväva med Clickless Mouse i Windows 10
Att använda en mus eller tangentbord i fel hållning av överdriven användning kan resultera i många hälsoproblem, inklusive stam, karpaltunnelsyndrom o...
Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...
Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...