Dnes si ukážeme výpočet a vizualizáciu detekčnej charakteristiky ultrazvukových senzorov v prostredí MATLAB. Vizualizácie boli využité v projekte Hladinomer pre lepšiu reprezentáciu detekčnej charakteristiky používateľovi webaplikácie pri výbere ultrazvukového senzora, ktorého charakteristika vyhovuje priemeru studne pre meranie bez odrazov.
Detekčná charakteristika vyjadruje schopnosť detekcie plochy na určitú vzdialenosť so známou šírkou lúča. Ultrazvukové senzory vzdialenosti fungujú na princípe vysielanie signálu Trigger s dĺžkou 10 mikrosekúnd, ktorý sa od detekovanej plochy odrazí a vráti sa do prijímača - Echo. Na základe času príchodu signálu vieme určiť vzdialenosť v metroch, resp. centimetroch.
V prípade použitia senzora s nevhodnou detekčnou charakteristikou sa zvyšuje čas príchodu signálu, prípadne sa signál nevráti vôbec z dôvodu príliš veľkého počtu odrazov od stien studne. V projekte Hladinomer boli využité dva druhy ultrazvukových senzorov vzdialenosti. Ako komunikačné mikrokontroléry boli použité Arduino Uno, ESP8266, či ESP32. Prenosové technológie Ethernet / WiFi / IoT sieť Sigfox.
Prvým typom ultrazvukového senzora v projekte bol HC-SR04 (existujú aj kompatibilné senzory HC-SR05, HY-SRF05, HY-SRF06, DYP-ME007), ktorý má detekčnú charakteristiku 15°. Senzor je veľmi lacný a veľmi obľúbený. Nevýhodou je určite, že senzor nie je vodotesný a nehodí sa priamo do studne. Druhým senzorom bol JSN-SR04T, ktorý má 60° detekčnú charakteristiku. To znamená, že lúč v prípade JSN-SR04T je 4x širší v rovnakej vzdialenosti ako HC-SR04. Senzor je síce drahší, ako HC-SR04, je však vodotesný a hodí sa priamo aj do vlhkého prostredia studne bez rizika korózie.
Pri výpočte detekčnej charakteristiky si musíme definovať určité hranice. Oba senzory sú schopné merať vzdialenosť maximálne do 450 cm. Na základe známych detekčných charakteristík môžeme v prostredí MATLAB vypočítať šírku lúča vo vzdialenosti 0 až 450 cm. Pri výpočte využijeme trigonometriu. pre vizualizáciu polomeru (resp. celkového priemeru) som v prostredí MATLAB využil grafickú reprezentáciu s využitím osi X, ktorá rozdeľuje priemer na polomer. Z toho dôvodu sa pri výpočte počíta detekčná charakteristika s rozdeleným uhlom na polovicu. Nakoľko nám to os X rozdeľuje, budeme počítať s uhlom 7,5° a -7,5° (pre HC-SR04). Pri výpočte je nutné previesť uhol na radiány t.j. (pre HC-SR04) 0.1316525 a -0.1316525.
Vzorec pre výpočet šírky lúča v danom bode (polomer) je: vzdialenosť * tg(rad_studne).
Celkovo som vytvoril viacero matíc so vzdialenosťou po pol metri s využitím jemného stúpania, aby detekcia vo vizualizácii nebola skokovitá. Taktiež je každého pol metra vizualizované rozličkou farbou v grafickej reprezentácii. Pre 0 až 0,5 metra bola postupnosť po 0,01 m lineárne. Následne som už výsledky mohol vykresliť do grafu, kde som si prispôsobil jeho rozmery. Z výsledkov u oboch detekčných charakteristík je zrejmé, že šírka lúča pri HC-SR04 vo vzdialenosti 4,5 metra od senzora je 1,20 metra. V prípade JSN-SR04T je pri vzdialenosti hladiny 4,5 metra od senzora šírka lúča takmer 6 metrov.
Detekčná charakteristika - HC-SR04:
Detekčná charakteristika - JSN-SR04T:
Rovnaký princíp výpočtu je integrovaný aj do webaplikácie projektu Hladinomer, kde výpočet realizuje PHP script. Na základe známeho priemeru studne vypočíta script maximálnu merateľnú vzdialenosť pri meraní bez odrazov, aby si mohol používateľ vybrať vhodný senzor pre svoju studňu, kde chce merania vykonávať.
Webaplikáciu projektu Hladinomer môžete vyskúšať s vašim hardvérom ihneď online na:
http://arduino.clanweb.eu/studna_s_prekladom/
MATLAB script pre HC-SR04 (15° charakteristika):
https://github.com/martinius96/MATLAB-scripty/blob/main/Detekcna_charakteristika_ultrazvuk/HC-SR04.m
MATLAB script pre JSN-SR04T (60° charakteristika):
https://github.com/martinius96/MATLAB-scripty/blob/main/Detekcna_charakteristika_ultrazvuk/JSN-SR04T.m