Raspberry Pi

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

Как измерить расстояние с Raspberry Pi
Вы можете измерить расстояние с помощью ультразвукового датчика HC-SR04 с Raspberry Pi. Датчик HC-SR04 может измерять расстояние от 2 мм (.02 м) до 400 см (4 м). Он отправляет 8 пакетов сигналов 40 кГц, а затем ждет, пока он ударится об объект и отразится обратно. Время, необходимое для перемещения ультразвуковой звуковой волны 40 кГц вперед и назад, используется для расчета расстояния между датчиком и объектом на пути. В основном так работает датчик HC-SR04.

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

Необходимые компоненты:

Чтобы успешно измерить расстояние с помощью датчика Raspberry Pi и HC-SR04, вам потребуется,

Я написал специальную статью об установке Raspbian на Raspberry Pi, которую вы можете проверить по адресу https: // linuxhint.com / install_raspbian_raspberry_pi / если вам нужно.

Распиновка HC-SR04:

HC-SR04 имеет 4 контакта. VCC, TRIGGER, ECHO, GROUD.

Рис.1: Распиновка HC-SR04 (https: // www.мышка.com / ds / 2/813 / HCSR04-1022824.pdf)

Вывод VCC должен быть подключен к выводу + 5V Raspberry Pi, который является выводом 2. Контакт заземления должен быть подключен к контакту 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. Затем откройте новый файл (скажем, расстояние.ру) и введите следующие строки кода:

Здесь строка 1 импортирует библиотеку GPIO Raspberry Pi.

Строка 2 импортирует библиотеку времени.

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

В наконец-то блок используется для очистки контактов GPIO с GPIO.очистка () метод при выходе из программы.

Внутри пытаться блок, в строке 5, GPIO.setmode (GPIO.ДОСКА) используется для упрощения определения булавок. Теперь вы можете ссылаться на контакты по физическим номерам, как на плате Raspberry Pi.

В строке 7 и 8, pinTrigger установлен на 7 а также pinEcho установлен на 11. В КУРОК вывод HC-SR04 подключен к выводу 7, а ЭХО Контакт HC-SR04 подключен к контакту 11 Rapsberry Pi. Оба являются контактами GPIO.

На строке 10, pinTrigger настроен для ВЫХОДА с использованием GPIO.настраивать() метод.

В строке 11, pinEcho настроен для INPUT с помощью GPIO.настраивать() метод.

Строки 13-17 используются для сброса pinTrigger (установив его на логический 0) и установив pinTrigger до логической 1 в течение 10 мс, а затем до логического 0. За 10 мс датчик HC-SR04 отправляет 8 импульсов 40 кГц.

Линии 19-24 используются для измерения времени, необходимого для отражения импульсов 40 кГц от объекта и обратно к датчику HC-SR04.

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

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

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

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

Наконец, в строке 27 выводится результат. Вот и все, очень просто.

Теперь запустите сценарий Python с помощью следующей команды:

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

Как видите, измеренное расстояние составляет 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.В)
 
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 см "% (расстояние))
наконец-то:
GPIO.очистка ()
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...
Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...
Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...