У цьому проекті ми збираємось підключити модуль ультразвукового датчика HC-SR04 до Raspberry Pi для вимірювання відстані. Раніше ми використовували ультразвуковий датчик з Raspberry Pi для створення робота, який уникає перешкод. Перш ніж йти далі, повідомте про ультразвуковий датчик.
HC-SR04 Ультразвуковий датчик:
Ультразвуковий датчик використовується для вимірювання відстані з високою точністю та стабільними показаннями. Він може вимірювати відстань від 2 см до 400 см або від 1 дюйма до 13 футів. Він випромінює ультразвукову хвилю на частоті 40 кГц у повітрі, і якщо об'єкт буде заважати, він повернеться до датчика. Використовуючи час, який потрібно для нанесення удару по об’єкту і повернення, ви можете розрахувати відстань.
Ультразвуковий датчик використовує техніку, яка називається “ECHO”. “ECHO” - це просто відбита звукова хвиля. Ви отримаєте ECHO, коли звук відбивається назад після того, як зайде в глухий кут.
Модуль HCSR04 генерує звукову вібрацію в ультразвуковому діапазоні, коли ми піднімаємо високий штифт `` Trigger '' приблизно на 10us, який надсилає 8-цикловий звуковий сплеск зі швидкістю звуку, і після удару по об'єкту, він буде отриманий ехо-штифтом. Залежно від часу, необхідного звуковій вібрації для повернення, він забезпечує відповідний імпульсний вихід. Якщо об'єкт знаходиться далеко, то для того, щоб почути ECHO, потрібно більше часу, і вихідна імпульсна ширина буде великою. А якщо перешкода поруч, тоді ECHO буде чути швидше, а ширина вихідного імпульсу буде меншою.
Ми можемо розрахувати відстань об’єкта, виходячи з часу, за який ультразвукова хвиля повертається назад до датчика. Оскільки час і швидкість звуку відомі, ми можемо розрахувати відстань за наступними формулами.
- Відстань = (Час х Швидкість звуку в повітрі (343 м / с)) / 2.
Значення ділиться на два, оскільки хвиля рухається вперед і назад, покриваючи однакову відстань. Таким чином, час досягнення перешкоди становить лише половину загального часу
Отже, відстань в сантиметрах = 17150 * T
Раніше ми зробили багато корисних проектів, використовуючи цей ультразвуковий датчик та Arduino, перевірте їх нижче:
- Вимірювання відстані на основі Arduino за допомогою ультразвукового датчика
- Сигналізація дверей за допомогою Arduino та ультразвукового датчика
- Моніторинг дамстерів на основі IOT за допомогою Arduino
Необхідні компоненти:
Тут ми використовуємо Raspberry Pi 2 Model B з ОС Raspbian Jessie. Усі основні вимоги до обладнання та програмного забезпечення обговорювались раніше, ви можете переглянути їх у Вступі про 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 або + 5V
- PIN2- TRIGGER (імпульс 10 мкм, що дається для того, щоб давати сенсору відчути відстань)
- PIN3- ECHO (забезпечує імпульсний вихід, ширина якого представляє відстань після тригера)
- PIN4- ЗЕМЛЯ
Ехо-штек забезпечує вихідний імпульс + 5 В, який неможливо підключити до Raspberry Pi безпосередньо. Отже, ми будемо використовувати схему дільника напруги (побудовану з використанням R1 та R2), щоб отримати логіку + 3,3 В замість логіки + 5 В.
Робоче пояснення:
Повна робота Raspberry Pi Measure Distance вимірюється як, 1. Спрацьовування датчика шляхом підтягування спускового штифта на 10 мкС.
2. Звукова хвиля передається датчиком. Після отримання ECHO, модуль датчика забезпечує вихід, пропорційний відстані.
3. Ми будемо реєструвати час, коли вихідний імпульс переходить від НИЗЬКОГО до ВИСОКОГО і коли знову, коли він переходить від ВИСОКОГО до НИЗЬКОГО.
4. У нас буде час запуску та зупинки. Для розрахунку відстані ми використаємо рівняння відстані.
5. Відстань відображається на РК-дисплеї 16x2.
Відповідно, ми написали програму Python для Raspberry Pi для виконання наступних функцій:
1. Надіслати тригер на датчик
2. Запишіть час запуску та зупинки імпульсного виходу датчика.
3. Розрахувати відстань, використовуючи час СТАРТ та СТОП.
4. Відображення результату, отриманого на РК-дисплеї 16 * 2.
Повна програма та демонстраційне відео наведені нижче. Програма добре пояснюється за допомогою коментарів, якщо у вас є якісь сумніви, ви можете задати їх у розділі коментарів нижче.