Ультразвуковой измерительный модуль HC-SR04 в связке с Raspberry Pi 2

Ультразвуковой измерительный модуль HC-SR04 обеспечивает бесконтактный диапазон измерения расстояния от 2 до 400 см. Его точность составляет ± 3 мм с периодом цикла 50 мс, что является минимальной временной задержкой, рекомендованной до проведения измерений. Модуль включает в себя ультразвуковой передатчик, приемник и схему управления.

Raspberry Pi 2 — это плата Raspberry Pi второго поколения, выпущенная в феврале 2015 года. Это компьютер на базе Linux с мощным четырехъядерным процессором Broadcom BCM2836 ARMv7 900 МГц и 1 ГБ SDRAM. Плата работает от 5 В с током 200 мА. Имеет 40 контактов GPIO, разъем HDMI, слот для карты micro-SD, Ethernet, USB 2.0 и аудио выход 3,5.

ultrazvukovoj-izmeritelnyj-modul-hc-sr04-3

Схема и работа

Компонентами, необходимыми для этого проекта, являются модуль Raspberry Pi (или Raspi) 2, HC-SR04, резисторы 330 Ом и 470 Ом и несколько проводов-перемычек.

Схема подключения HC-SR04 показана на рисунке ниже. Работа ультразвукового датчика HC-SR04 довольно проста.

ultrazvukovoj-izmeritelnyj-modul-hc-sr04-1

Когда процессор подает высокий сигнал на триггерный вход датчика, датчик излучает пачку из восьми звуковых импульсов на частоте 40 кГц. После отправки звукового импульса датчик переходит в режим ожидания эхо, пока звуковой пакет не вернется к датчику после отражения от объекта.

ultrazvukovoj-izmeritelnyj-modul-hc-sr04-2

Следовательно, длина этого импульса пропорциональна удаленности объекта.А это значит, что расстояние, пройденное импульсом, вдвое превышает расстояние, которое нужно измерить. Скорость звука составляет примерно 340 метров в секунду и поэтому расчеты можно выполнить с использованием следующего соотношения:

ultrazvukovoj-izmeritelnyj-modul-hc-sr04-4

Таким образом мы можем определить расстояние между объектом и датчиком в метрах. Для расчета в сантиметрах умножьте результат на 100.

Резисторы R1 и R2 используются для согласовании уровня выхода, поскольку высокий сигнал датчика составляет около 5 В, тогда как Raspberry работает с уровнем 3,3 В. Данный делитель напряжения помогает снизить уровень выходного напряжения.

Программное обеспечение

Существует много операционных систем, разработанных для Raspberry 2, но наиболее широко используемой является Raspian (на базе Linux) и Microsoft Windows 10 IoT Core.

Если вы новичок в Raspberry 2, ознакомьтесь со ссылкой: www.raspberrypi.org/help/ для информации.

В этом проекте используется компилятор Python, а операционная система для Raspberry — это Raspbian. Задача — измерение расстояния между датчиком и объектом, который находиться на неизвестном расстоянии от датчика.

Для работы нам понадобятся некоторые пакеты, необходимые для взаимодействия с HC-SR04. Чтобы загрузить эти пакеты, запустите Terminal на Raspberry и выполните приведенные ниже команды.

После входа в систему обновите Raspberry, используя приведенные ниже команды. Это гарантирует, что у вас установлены последние версии программного обеспечения и драйверов.

pi@raspberrrypi ~$ sudo apt-get update
pi@raspberrrypi ~$ sudo apt-get upgrade

Следующие команды предоставляют вам некоторые распространенные инструменты Python:

pi@raspberrrypi ~$ sudo apt-get install
python-dev
// This should install python
development tools
pi@raspberrrypi~$sudo wget http://pypi.
python.org/packages/source/R/RPi.GPIO/
RPi.GPIO-0.6.1.tar.gz
// Downloads the GPIO package
pi@raspberrrypi ~$ sudo tar zxf Rpi.
GPIO-0.6.1.tar.gz
// Extracts the package
pi@raspberrrypi ~$ cd Rpi.GPIO-0.6.1
//This should change the directory to
Rpi GPIO folder
pi@raspberrrypi ~$ sudo python setup.
py install
// This will install GPIO package on
Raspi
To

Чтобы все было в порядке, перезагрузите Raspberry, набрав следующую команду:

pi@raspberrrypi ~$ sudo reboot

Теперь все пакеты, необходимые для взаимодействия с HC-SR04 установлены.

Код Python

import RPi.GPIO as GPIO
#For GPIO operations
import time
#For Delay and Time Functions
GPIO.setmode(GPIO.BCM)
#Sets the GPIO Layout and Mapping Mode
GPIO.setwarnings(False)
#Disables GPIO Warnings
TRIG = 23
ECHO = 24
#Defines TRIG and ECHO Pin Numbers according to GPIO Numbers
GPIO.setmode(TRIG, GPIO.OUT)
#Define TRIG as OUTPUT
GPIO.output(TRIG, GPIO.LOW)
#Initially TRIG is set to LOW
GPIO.setmode(ECHO, GPIO.IN)
#Define ECHO as INPUT
time.sleep(0.1)
#Delay of 0.1 second
print(«Initializing the Sensor»)
GPIO.output(TRIG, GPIO.HIGH)
time.sleep(0.00001)
GPIO.output(TRIG, GPIO.LOW)
#This activates the sensor and sensor sends out an 8 cycle Sonic Pulse
while(GPIO.input(ECHO)==GPIO.LOW):
pass
start = time.time()
#Records the Start Time
while(GPIO.input(ECHO)==GPIO.HIGH):
pass
stop = time.time()
#Records the Stop Time
dist = int((stop-start)*17000)
#This gives the distance in Centimeters
print(«Distance: «+str(dist)+» cm»)
#Prints out the Distance in centimeters
GPIO.cleanup()
#Resets the GPIO PINS Status

Запустите Raspberry и создайте папку UltraTest. Для этого урока используются библиотеки RPi.GPIO и time. Создайте новый файл (Ultra_Test.py) в nano редакторе, используя приведенные ниже команды:

pi@raspberrrypi ~ $ cd ~/Desktop/
UltraTest
// Change Directory to UltraTest
pi@raspberrrypi ~/Desktop/UltraTest
$ sudo nano Ultra_Test.py
// Write python script as Ultra_Test.py

Нажмите ctrl + o, чтобы сохранить скрипт Python, а затем нажмите ctrl + x для выхода.

После сохранения кода и подключения HC-SR04 к Raspberry сделайте перегрузку. В терминале введите следующие команды для выполнения программы.

pi@raspberrrypi ~/Desktop/UltraTest
$ sudo python Ultra_Test.py

Этот скрипт позволяет измерить расстояние между желаемым объектом и датчиком в сантиметрах.


Добавить комментарий

Ваш электронный адрес не будет опубликован.

*