В этом проекте мы собираемся подключить модуль ультразвукового датчика HC-SR04 к Raspberry Pi для измерения расстояния. Ранее мы использовали ультразвуковой датчик с Raspberry Pi для создания робота, избегающего препятствий. Прежде чем идти дальше, дайте знать об ультразвуковом датчике.
Ультразвуковой датчик HC-SR04:
Ультразвуковой датчик используется для измерения расстояния с высокой точностью и стабильными показаниями. Он может измерять расстояние от 2 см до 400 см или от 1 дюйма до 13 футов. Он излучает в воздухе ультразвуковую волну с частотой 40 кГц, и если объект встанет у него на пути, он отразится обратно на датчик. Используя время, необходимое для того, чтобы ударить объект и вернуться назад, вы можете рассчитать расстояние.
В ультразвуковом датчике используется технология, называемая «ECHO». «ЭХО» - это просто отраженная звуковая волна. У вас будет ЭХО, когда звук будет отражаться в тупике.
Модуль HCSR04 генерирует звуковую вибрацию в ультразвуковом диапазоне, когда мы делаем вывод «Trigger» высоким примерно на 10 мкс, который отправит 8-тактный звуковой импульс со скоростью звука, и после удара по объекту он будет принят контактом Echo. В зависимости от времени, затрачиваемого звуковой вибрацией на возврат, он обеспечивает соответствующий импульсный выход. Если объект находится далеко, то потребуется больше времени, чтобы услышать ECHO, и ширина выходного импульса будет большой. А если препятствие близко, то ECHO будет слышен быстрее, а ширина выходного импульса будет меньше.
Мы можем рассчитать расстояние до объекта на основе времени, которое требуется ультразвуковой волне, чтобы вернуться обратно к датчику. Поскольку время и скорость звука известны, мы можем рассчитать расстояние по следующим формулам.
- Расстояние = (Время x скорость звука в воздухе (343 м / с)) / 2.
Значение делится на два, поскольку волна распространяется вперед и назад, преодолевая одинаковое расстояние. Таким образом, время, необходимое для достижения препятствия, составляет лишь половину от общего времени
Итак, расстояние в сантиметрах = 17150 * T.
Ранее мы сделали много полезных проектов, используя этот ультразвуковой датчик и Arduino, проверьте их ниже:
- Измерение расстояний на базе Arduino с помощью ультразвукового датчика
- Дверная сигнализация с использованием Arduino и ультразвукового датчика
- Мониторинг мусорных контейнеров на основе IOT с использованием Arduino
Необходимые компоненты:
Здесь мы используем Raspberry Pi 2 Model B с Raspbian Jessie OS. Все основные требования к оборудованию и программному обеспечению обсуждаются ранее, вы можете найти их во введении Raspberry Pi и мигании светодиода Raspberry PI, чтобы начать работу, кроме того, что нам нужно:
- Raspberry Pi с предустановленной ОС
- Ультразвуковой датчик HC-SR04
- Источник питания (5В)
- Резистор 1КОм (3 шт.)
- Конденсатор 1000 мкФ
- 16 * 2-символьный ЖК-дисплей
Описание схемы:
Соединения между Raspberry Pi и ЖК-дисплеем приведены в таблице ниже:
Подключение ЖК-дисплея |
Подключение Raspberry Pi |
GND |
GND |
VCC |
+ 5В |
VEE |
GND |
RS |
GPIO17 |
R / W |
GND |
EN |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
В этой схеме мы использовали 8-битную связь (D0-D7) для подключения ЖК-дисплея к Raspberry Pi, однако это не обязательно, мы также можем использовать 4-битную связь (D4-D7), но с 4-битной коммуникационной программой становится немного сложный для новичков, так что просто используйте 8-битное общение. Здесь мы подключили 10 контактов ЖК-дисплея к Raspberry Pi, из которых 8 контактов являются контактами данных, а 2 контакта - контактами управления.
Ниже представлена принципиальная схема подключения датчика HC-SR04 и ЖК-дисплея к Raspberry Pi для измерения расстояния.
Как показано на рисунке, ультразвуковой датчик HC-SR04 имеет четыре контакта,
- PIN1- VCC или + 5В
- PIN2- ТРИГГЕР (10us High импульс дан, чтобы датчик определил расстояние)
- PIN3-ECHO (обеспечивает импульсный выход, ширина которого представляет собой расстояние после триггера)
- PIN4- ЗЕМЛЯ
Вывод Echo обеспечивает выходной импульс +5 В, который нельзя напрямую подключить к Raspberry Pi. Итак, мы будем использовать схему делителя напряжения (построенную с использованием R1 и R2), чтобы получить логику + 3,3 В вместо логики + 5 В.
Рабочее объяснение:
Полная работа Raspberry Pi Distance Measure выглядит так:
1. Срабатывание датчика путем нажатия спускового штифта на 10 мкс.
2. Звуковая волна излучается датчиком. После получения ECHO модуль датчика выдает выходной сигнал, пропорциональный расстоянию.
3. Мы запишем время, когда выходной импульс переходит с НИЗКОГО на ВЫСОКИЙ и когда снова переходит с ВЫСОКОГО на НИЗКИЙ.
4. У нас будет время начала и окончания. Мы будем использовать уравнение расстояния для вычисления расстояния.
5. Расстояние отображается на ЖК-дисплее 16x2.
Соответственно, мы написали программу Python для Raspberry Pi, которая выполняет следующие функции:
1. Отправить триггер на датчик
2. Запишите время начала и окончания импульсного выхода с датчика.
3. Рассчитать расстояние, используя время НАЧАЛА и СТОП.
4. Отобразить полученный результат на ЖК-дисплее 16 * 2.
Полная программа и демонстрационное видео приведены ниже. Программа хорошо объясняется в комментариях, если у вас есть какие-либо сомнения, вы можете задать вопрос в разделе комментариев ниже.