Raspberry Pi

Как да измерим разстоянието с Raspberry Pi

Как да измерим разстоянието с Raspberry Pi
Можете да измервате разстоянието с помощта на ултразвуков сензор HC-SR04 с Raspberry Pi. Сензорът HC-SR04 може да измерва разстоянието от 2 мм (.02 м) до 400 см (4 м). Той изпраща 8 пакета от 40KHz сигнали и след това чака той да удари обект и да се отрази обратно. Времето, необходимо на ултразвуковата 40KHz звукова вълна да се движи напред-назад, се използва за изчисляване на разстоянието между сензора и обекта по пътя му. По принцип така работи сензорът HC-SR04.

В тази статия ще ви покажа как да използвате ултразвуков сензор HC-SR04 за измерване на разстоянието между вашия сензор и обект по неговия начин, използвайки Raspberry Pi. Да започваме.

Компоненти, от които се нуждаете:

За да измервате успешно разстоянието с Raspberry Pi и HC-SR04 сензор, имате нужда,

Написах специална статия за инсталиране на Raspbian на Raspberry Pi, която можете да проверите на https: // linuxhint.com / install_raspbian_raspberry_pi / ако имате нужда.

HC-SR04 Pinouts:

HC-SR04 има 4 щифта. VCC, TRIGGER, ECHO, GROUD.

Фиг1: HC-SR04 пиноти (https: // www.мишка.com / ds / 2/813 / HCSR04-1022824.pdf)

Пинът VCC трябва да бъде свързан към + 5V щифт на Raspberry Pi, който е щифт 2. ПИНЪТ GROUND трябва да бъде свързан към GND щифта на Raspberry Pi, който е щифт 4.

Пиновете TRIGGER и ECHO трябва да бъдат свързани към GPIO щифтовете на Raspberry Pi. Докато щифтът TRIGGER може да бъде директно свързан към един от GPIO щифтовете на Raspberry Pi, щифтът ECHO се нуждае от верига за разделяне на напрежението.

Електрическа схема:

Свържете ултразвуковия сензор HC-SR04 към вашия Raspberry Pi, както следва:

Фигура2: HC-SR04 ултразвуков сензор, свързан към Raspberry Pi.

След като всичко е свързано, ето как изглежда:

Фиг.3: HC-SR04 ултразвуков сензор, свързан към Raspberry Pi на макет.

Фигура4: HC-SR04 ултразвуков сензор, свързан към Raspberry Pi на макет.

Писане на програма на Python за измерване на разстояние с HC-SR04:

Първо, свържете се с вашия Raspberry Pi чрез VNC или SSH. След това отворете нов файл (да речем разстояние.py) и въведете следните редове кодове:

Тук ред 1 импортира библиотеката Raspberry pi GPIO.

Ред 2 импортира библиотеката за време.

Вътре в опитвам блок, всъщност се изписва код за измерване на разстоянието с помощта на HC-SR04.

The накрая блок се използва за почистване на GPIO щифтовете с GPIO.почисти() метод, когато програмата излезе.

Вътре в опитвам блок, на ред 5, GPIO.setmode (GPIO.БОРД) се използва за улесняване на определянето на щифтове. Сега можете да препращате щифтове по физически числа, както е на борда на Raspberry Pi.

На линия 7 и 8, pinTrigger е настроен на 7 и pinEcho е настроен на 11. The TRIGGER щифт на HC-SR04 е свързан към щифт 7 и ECHO щифт на HC-SR04 е свързан към щифт 11 на Rapsberry Pi. И двете са GPIO щифтове.

На линия 10, pinTrigger е настроена за OUTPUT с помощта на GPIO.настройвам() метод.

На линия 11, pinEcho се настройва за INPUT с помощта GPIO.настройвам() метод.

Редове 13-17 се използват за нулиране pinTrigger (като го зададете на логика 0) и зададете pinTrigger към логика 1 за 10ms и след това към логика 0. За 10 ms сензорът HC-SR04 изпраща 8 40KHz импулс.

Линиите 19-24 се използват за измерване на времето, необходимо на импулсите от 40KHz да бъдат отразени на обект и обратно към сензора HC-SR04.

На линия 25 разстоянието се измерва по формулата,

Разстояние = делта време * скорост (340M / S) / 2

=> Разстояние = делта време * (170M / S)

Изчислих разстоянието в сантиметри вместо в метри, само за да бъда точен. Изчислих, че разстоянието също е закръглено до 2 знака след десетичната запетая.

Накрая, на ред 27, резултатът се отпечатва. Това е, много просто.

Сега стартирайте скрипта на Python със следната команда:

$ python3 разстояние.py

Както можете да видите, измереното разстояние е 8.40 см.

Фиг.5: обект, поставен на около 8.40 см от сензора.

Преместих се да възразя малко по-далеч, измереното разстояние е 21.81см. Така че, работи както се очаква.

Фиг6: обект, поставен на около 21.На 81 см от сензора.

Така че вие ​​измервате разстоянието с Raspberry Pi с помощта на ултразвуковия сензор HC-SR04.  Вижте кода за разстояние.py отдолу:

импортиране на RPi.GPIO като GPIO
време за импортиране
опитвам:
GPIO.setmode (GPIO.БОРД)
pinTrigger = 7
pinEcho = 11
 
GPIO.настройка (pinTrigger, GPIO.ИЗВЪН)
GPIO.настройка (pinEcho, GPIO.IN)
 
GPIO.изход (pinTrigger, GPIO.НИСКО)
GPIO.изход (pinTrigger, GPIO.ВИСОКО)
 
време.сън (0.00001)
GPIO.изход (pinTrigger, GPIO.НИСКО)
 
докато GPIO.вход (pinEcho) == 0:
pulseStartTime = време.време ()
докато GPIO.вход (pinEcho) == 1:
pulseEndTime = време.време ()
 
pulseDuration = pulseEndTime - pulseStartTime
разстояние = кръгло (продължителност на импулса * 17150, 2)
 
print ("Разстояние:%.2f cm "% (разстояние))
накрая:
GPIO.почисти()
Как да използвам Xdotool за стимулиране на кликвания и натискания на мишката в Linux
Xdotool е безплатен инструмент с команден ред с отворен код за симулиране на щраквания и натискания на мишката. Тази статия ще обхване кратко ръководс...
Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...