Експерименти с ултразвуков далекомер. Уикенд проект.

ултразвуков

Реших да направя няколко експеримента с ултразвуковия далекомер DYP-MY007.

Тези (и подобни) далекомери са много разпространени, продават се от всички и всякакви. Те обикновено се позиционират като щит Arduino. Купих тук.

Характеристики на устройството:

Захранващо напрежение: 5V
Консумация на ток: до 15 mA
Измерен обхват на разстоянието: 2 - 500 cm
Зрителен ъгъл: 15 градуса.

Интерфейсът на устройството е изключително прост. Цялото управление се осъществява чрез 2 пина - "Trigger" и "Echo".

За да започнете да измервате, трябва да изпратите сигнал от високо ниво към входа "Trigger" (мин. Продължителност 10 μs). След това далекомерът излъчва поредица от ултразвукови импулси и улавя отразения сигнал. Далекомерът генерира импулс от високо ниво на изхода "Echo" и продължителността на този импулс е пропорционална на измереното разстояние.

За да бъдем точни:

Това е просто, просто трябва да започнем измерването (чрез изпращане на импулс на високо ниво към „Trigger“) и да измерим продължителността на импулса на високо ниво на щифта „Echo“.

далекомер

Има няколко нюанса: след стартиране на измерването импулсът на щифта „Echo“ може изобщо да не се появи или този щифт преминава на високо ниво и не се връща до началото на проследяващото измерване. Това се случва, когато приемникът на ултразвуковия далекомер не е получил отразения ултразвуков импулс. По принцип всичко това не е критично и може лесно да бъде решено програмно.

Не виждам смисъл да се спирам на контролната програма, всичко е изключително просто. Пример за програма за STM32F100 е прикрепен към стълба (импулсът на спусъка се формира на PWM1 на таймера TIM2 (крак PA0), импулсът "Echo" се улавя като външно прекъсване на крака PB7).

Въз основа на резултатите от първите тестове мога да обобщя следното:

- чувствителността на устройството на разстояние до 2 метра е около 1 cm.
- далекомерът работи уверено на разстояние до 3 - 3,5 метра, след което отразеният сигнал започва да се губи Трудно е да се постигнат декларираните 5 метра в реални условия.

IMHO, далекомерът е доста добър, що се отнася до парите му (около $ 8).

Но всичко това не е интересно, исках да опитам да използвам това устройство за сканиране на пространството и откриване на препятствия. За това далекомерът е инсталиран на серво, който осигурява "хоризонтално размахване".

Оказа се нещо подобно.

високо ниво

Това устройство сканира сектора (малко повече от 90 градуса), резултатите от измерването се прехвърлят в компютъра, където програмата визуализира "картината".

Сега експерименталните резултати.

1. Липса на препятствия

далекомер

Секторът не е „перфектен“ поради стената вдясно от масата. Не се вижда на снимката, но е там и далекомерът го „вижда“. Също така моят косяк е най-големият - секторът, който сканира далекомер, не е насочен ясно по масата, а е обърнат надясно (това се забелязва на следващите снимки - препятствието е вдясно от центъра на масата, и далекомера го вижда в средата на сектора).

високо ниво

Вижда се, че на разстояние около 50 см далекомерът ясно „вижда“ препятствието („потапяне“ в средата на сектора).

3. "Много препятствия"

високо ниво

Отново далекомерът си свърши добре работата, визуализацията ясно показва 2 спадове, които съответстват на две „препятствия“.

А сега за лошото. Поставяме препятствие на разстояние около метър от сензора.

ултразвуков

Оказва се боклук, нашето препятствие (малък цилиндър, 2 сантиметра в диаметър) закрива стената и блокира "гледката" в сектор от около 40 градуса.

Други експерименти потвърждават резултатите от предишните: на разстояние до 60 см, далекомерът ще прави разлика между „препятствия“ и „свободни пропуски“, започвайки от метър - всичко се слива.

Морал: устройството е доста подходящо като измервател на разстояние, но не е подходящо за „сканиране на пространство“ (например за навигация на робот), трябва да потърсите нещо с по-малък ъгъл на дисперсия на лъча/ъгъл на чувствителност на приемника.