Ультразвуковой датчик диапазона HC-SR04 на Raspberry Pi
В предыдущих уроках мы описали датчики температуры, контроллеры движения PIR, кнопки и переключатели, которые можно подключить непосредственно к портам GPIO Raspberry Pi. Ультразвуковой дальномер HC-SR04 очень прост в использовании, однако выходной сигнал необходимо преобразовать с 5 В в 3,3 В, чтобы не повредить Raspberry Pi! В этом уроке мы познакомим вас с физикой и электроникой, чтобы объяснить каждый шаг!
Что вам понадобится:
HC-SR04
Резистор 1кОм
Резистор 2кОм
Провода перемычки
Ультразвуковые датчики расстояния
Звук состоит из колеблющихся волн, проходящих через среду (например, воздух), высота тона определяется близостью этих волн друг к другу, определяемой как частота. Человеческое ухо может слышать только часть звукового спектра (диапазон частот звуковых волн), определяемую как «акустический» диапазон. Очень низкочастотный звук ниже Acoustic определяется как «Инфразвук», а высокочастотный звук выше называется «Ultrasound». Ультразвуковые датчики предназначены для определения близости или дальности объекта с помощью отражения ультразвука, как и в случае с радаром, для расчета времени, необходимого для отражения ультразвуковых волн между датчиком и твердым объектом. Ультразвук используется в основном потому, что он не слышен человеческим ухом и относительно точен на небольших расстояниях. Вы, конечно, можете использовать для этой цели акустический звук, но у вас будет шумный робот, который пищит каждые несколько секунд. . . .
Базовый ультразвуковой датчик состоит из одного или нескольких ультразвуковых передатчиков (в основном громкоговорителей), приемника и цепи управления. Передатчики излучают высокочастотный ультразвуковой звук, который отражается от любых ближайших твердых предметов. Часть этого ультразвукового шума отражается и обнаруживается приемником на датчике. Этот ответный сигнал затем обрабатывается схемой управления для вычисления разницы во времени между передаваемым и принимаемым сигналом. Впоследствии это время можно использовать вместе с некоторыми умными вычислениями для расчета расстояния между датчиком и отражающим объектом.
Ультразвуковой датчик HC-SR04, который мы будем использовать в этом руководстве для Raspberry Pi, имеет четыре контакта:заземление (GND), выход эхо-импульса (ECHO), вход триггерного импульса (TRIG) и источник питания 5 В (Vcc). Мы запитываем модуль с помощью Vcc, заземляем его с помощью GND и используем Raspberry Pi для отправки входного сигнала на TRIG, который запускает датчик для отправки ультразвукового импульса. Пульсовые волны отражаются от ближайших объектов, а некоторые отражаются обратно на датчик. Датчик обнаруживает эти возвратные волны и измеряет время между срабатыванием триггера и возвращенным импульсом, а затем отправляет сигнал 5 В на вывод ECHO.
ECHO будет «низким» (0 В) до тех пор, пока датчик не сработает, когда он получит эхо-импульс. После обнаружения возвратного импульса ECHO устанавливается на высокий уровень (5 В) на время этого импульса. Длительность импульса - это полное время между датчиком, выдающим ультразвуковой импульс, и обратным импульсом, обнаруженным приемником датчика. Поэтому наш скрипт Python должен измерить длительность импульса, а затем рассчитать расстояние от нее.
ВАЖНЫЙ. Выходной сигнал датчика (ECHO) на HC-SR04 рассчитан на 5 В. Однако входной вывод на Raspberry Pi GPIO рассчитан на 3,3 В. Отправка сигнала 5 В на этот незащищенный входной порт 3,3 В может повредить ваши контакты GPIO, чего мы хотим избежать! Нам понадобится небольшая схема делителя напряжения, состоящая из двух резисторов, чтобы снизить выходное напряжение датчика до уровня, с которым справится Raspberry Pi.
Делители напряжения
Делитель напряжения состоит из двух резисторов (R1 и R2), последовательно подключенных к входному напряжению (Vin), которое необходимо уменьшить до нашего выходного напряжения (Vout). В нашей схеме Vin будет ECHO, которое необходимо уменьшить с 5 В до Vout, равного 3,3 В.
Следующая схема и простое уравнение могут применяться во многих приложениях, где необходимо снизить напряжение. Если вы не хотите разбираться в технологиях, просто возьмите 1 резистор 1 кОм и 1 резистор 2 кОм.
Не углубляясь в математику, на самом деле нам нужно рассчитать только одно номинальное сопротивление резистора, так как важен коэффициент деления. Мы знаем наше входное напряжение (5 В) и требуемое выходное напряжение (3,3 В), и мы можем использовать любую комбинацию резисторов для достижения снижения. У меня есть несколько дополнительных резисторов 1 кОм, поэтому я решил использовать один из них в схеме в качестве R1.
Соберите схему
В этом проекте мы будем использовать четыре контакта Raspberry Pi:GPIO 5V [Pin 2]; Vcc (питание 5 В), GPIO GND [контакт 6]; GND (0 В Земля), GPIO 23 [контакт 16]; TRIG (выход GPIO) и GPIO 24 [контакт 18]; ECHO (вход GPIO)
1. Вставьте четыре перемычки «папа-мама» в контакты HC-SR04 следующим образом:красный; Vcc, синий; TRIG, желтый; ЭХО и черный; ЗЕМЛЯ.
2. Подключите Vcc к положительной шине макетной платы и подключите GND к отрицательной шине.
3. Подключите GPIO 5V [контакт 2] к положительной шине, а GPIO GND [контакт 6] к отрицательной шине.
4. Вставьте TRIG в пустую направляющую и вставьте эту направляющую в GPIO 23 [контакт 16]. (Вы можете подключить TRIG напрямую к GPIO 23, если хотите). Мне лично просто нравится делать все на макетной плате!
5. Вставьте ECHO в пустую шину, подключите другую пустую шину с помощью R1 (резистор 1 кОм)
6. Соедините шину R1 с шиной GND с помощью R2 (резистор 2 кОм). Оставьте пространство между двумя резисторами.
7. Добавьте GPIO 24 [контакт 18] к шине с R1 (резистор 1 кОм). Этот вывод GPIO должен находиться между R1 и R2
Вот и все! Наш датчик HC-SR04 подключен к Raspberry Pi!
Восприятие с помощью Python
Теперь, когда мы подключили наш ультразвуковой датчик к нашему Pi, нам нужно запрограммировать скрипт Python для определения расстояния!
Выход ультразвукового датчика (ECHO) всегда будет выводить низкий уровень (0 В), если только он не сработал, и в этом случае он будет выдавать 5 В (3,3 В с нашим делителем напряжения!). Поэтому нам нужно установить один вывод GPIO в качестве выхода для запуска датчика и один в качестве входа для обнаружения изменения напряжения ECHO.
Сначала импортируйте библиотеку Python GPIO, импортируйте нашу библиотеку времени (чтобы наш Pi ждал между шагами) и задайте нумерацию контактов GPIO.
импортировать RPi.GPIO как GPIO
время импорта
GPIO.setmode (GPIO.BCM)
Подробнее:Ультразвуковой датчик диапазона HC-SR04 на Raspberry Pi
Производственный процесс
- Регистратор температуры Raspberry Pi
- Мониторинг температуры на Raspberry Pi
- Датчик температуры Python и Raspberry Pi
- Метеостанция Raspberry Pi
- DHT Tiny Breakout для Raspberry Pi
- Интеграция данных датчика с микропроцессором Raspberry Pi
- Ультразвуковой датчик (HC-SR04) + Raspberry Pi
- Датчик движения с использованием Raspberry Pi
- Датчик влажности почвы Raspberry Pi
- Цифровой датчик Холла Raspberry Pi в JAVA