Ultrazvukové senzory vzdálenosti: Kompletní průvodce sonarovými senzory pro robotiku a automatizaci
Reklama:Ultrazvukové senzory vzdálenosti, známé také jako sonarové senzory, představují klíčovou technologii v moderní robotice a automatizaci. Tyto senzory využívají princip echolokace podobně jako netopýři nebo delfíni, kdy vysílají ultrazvukové vlny a měří čas jejich návratu po odrazu od překážky. Nejpopulárnějším představitelem této kategorie je HC-SR04, který se stal standardem díky své dostupnosti a jednoduchosti použití. Modernější alternativou je RCW-0001, který nabízí kompatibilitu s 3,3V systémy a menší mrtvou zónu. Článek poskytuje komplexní přehled dostupných senzorů, jejich technických parametrů, programovacích možností a praktických omezení, které je třeba zohlednit při jejich implementaci do projektů.
Princip fungování ultrazvukových senzorů
Ultrazvukové senzory vzdálenosti pracují na základě principu Time-of-Flight (ToF), který využívá měření času letu ultrazvukových vln. Základní princip fungování lze rozdělit do několika kroků1 2:
Senzor nejprve přijme spouštěcí signál na trigger pinu, který musí být vysoký minimálně 10 μs1 13. Po aktivaci trigger signálu modul automaticky vyšle osm cyklů ultrazvukových vln o frekvenci 40 kHz1 2. Tyto vlny se šíří rychlostí zvuku (přibližně 340 m/s při pokojové teplotě) až narazí na překážku a odrazí se zpět k senzoru1.
Když senzor detekuje odražené vlny, nastaví echo pin na vysokou úroveň po dobu, která je úměrná vzdálenosti k objektu1 2. Vzdálenost se pak vypočítá podle vzorce: Vzdálenost = (doba trvání echo signálu × rychlost zvuku) / 21. Dělení dvěma je nutné, protože ultrazvukové vlny urazí vzdálenost k objektu a zpět.
Pro praktické výpočty se často používají zjednodušené vzorce. U HC-SR04 platí: vzdálenost v centimetrech = čas v mikrosekundách / 58, nebo vzdálenost v palcích = čas v mikrosekundách / 1481 20. Tato zjednodušení vycházejí z konstantní rychlosti zvuku a usnadňují programování.
Využití v robotice a automatizaci
Ultrazvukové senzory našly široké uplatnění v robotických aplikacích díky své spolehlivosti a nezávislosti na světelných podmínkách13. Na rozdíl od infračervených senzorů nejsou ovlivněny slunečním světlem, reflektory ani barvou povrchu objektu3. Jejich hlavní výhodou je bezkontaktní měření, které umožňuje detekci objektů bez fyzického dotyku.
V mobilní robotice se tyto senzory používají především pro vyhýbání se překážkám a autonomní navigaci9 18. Roboti monitorují tyto senzory k vytváření map prostředí a plánování bezpečných tras. Aplikace zahrnují také detekci osob7, měření hladiny tekutin18 a parkovací asistenty9 18.
Průmyslové využití se rozšiřuje na měření úrovně materiálu v zásobnících7, bezpečnostní systémy9 a interaktivní instalace9. Senzory jsou také oblíbené v edukačních projektech díky své jednoduchosti a dostupnosti, což z nich činí ideální volbu pro výuku principů robotiky a automatizace.
Přehled dostupných senzorů
HC-SR04 - Klasický standard
HC-SR04 představuje nejrozšířenější ultrazvukový senzor na trhu, který se stal de facto standardem pro hobby i edukační projekty1 12. Tento senzor byl uveden na trh kolem roku 2005 a rychle si získal popularitu díky své nízké ceně a jednoduchosti použití12 13.
Senzor poskytuje měřicí rozsah 2 cm až 400 cm s přesností až 3 mm1 12. Pracuje s napájecím napětím 5V DC a spotřebovává 15 mA během měření1 13. Úhel detekce je omezen na 15 stupňů, což zajišťuje směrové měření1 12.
HC-SR04 je široce podporován ve všech populárních programovacích jazycích a platformách, včetně Arduino IDE, Python, CircuitPython a MakeCode13. Dokumentace a ukázkové kódy jsou dostupné pro prakticky všechny mikrokontroléry. Omezením je nutnost 5V napájení, což může komplikovat použití s 3,3V systémy bez úrovňových převodníků13.
RCW-0001 - Moderní alternativa
RCW-0001 od společnosti Cytron představuje vylepšenou verzi HC-SR04 s rozšířenou kompatibilitou3. Tento senzor byl uveden na trh v roce 2016 a řeší hlavní omezení svého předchůdce3.
Klíčovou výhodou je široký rozsah napájení 3,0V až 5,5V, což umožňuje přímé připojení k 3,3V systémům jako ESP32 nebo NodeMCU3. Minimální detekční vzdálenost je snížena na pouhý 1 cm (oproti 2 cm u HC-SR04), což rozšiřuje možnosti aplikace3. Maximální dosah dosahuje 400 cm při 3,3V a 450 cm při 5V3.
Spotřeba je výrazně nižší: 2,2 mA při 3,3V a 2,8 mA při 5V3. Senzor je pin-to-pin kompatibilní s HC-SR04, což umožňuje snadnou výměnu bez změn v hardware i software3. Protokol komunikace zůstává stejný, takže existující kódy fungují bez úprav.
US-100 - Senzor s teplotní kompenzací
US-100 nabízí pokročilejší funkcionalitu díky vestavěnému teplotnímu senzoru, který kompenzuje změny rychlosti zvuku při různých teplotách5 14. Senzor podporuje dva provozní režimy: GPIO režim kompatibilní s HC-SR04 a UART režim pro sériovou komunikaci14 17.
Měřicí rozsah je 2 cm až 450 cm s rozlišením 1 mm14. V UART režimu senzor automaticky odesílá naměřenou vzdálenost i teplotu prostředí při rychlosti 9600 baud17. Napájení je flexibilní: 3,3V až 5V se spotřebou 2 mA17.
Přepínání mezi režimy se provádí jumprem na zadní straně PCB14. UART režim eliminuje nutnost měření časových impulsů v mikrokontroléru, čímž zjednodušuje programování a zvyšuje přesnost měření17.
JSN-SR04T - Vodotěsná varianta
JSN-SR04T je specializovaná vodotěsná verze určená pro aplikace v náročných podmínkách6 15. Senzor má uzavřenou vodotěsnou sondu, která umožňuje použití ve vlhkých a nepříznivých prostředích6.
Základní specifikace zahrnují měřicí rozsah 25 cm až 450 cm při napájení 4,5V až 5,5V se spotřebou až 30 mA6. Pracovní teplota je rozšířena na rozsah -10°C až +70°C6. Úhel detekce je širší než u standardních variant: méně než 50 stupňů6.
JSN-SR04T podporuje několik provozních režimů ovládaných odpory nebo zkratováním kontaktů6. Režim 0 emuluuje HC-SR04, zatímco další režimy nabízejí automatické spouštění, nízkou spotřebu nebo funkci přepínače při detekci objektu do 1,5 m6.
PING))) - Jednokonektorové řešení
PING))) od společnosti Parallax využívá jediný I/O pin pro trigger i echo signály, což šetří porty mikrokontroléru9. Senzor měří vzdálenosti v rozsahu 3 cm až 3 m s úzkým úhlem detekce9.
Napájení vyžaduje 5V DC se spotřebou 35 mA během měření9. Komunikace probíhá pomocí pozitivních TTL pulsů, přičemž šířka pulsu odpovídá naměřené vzdálenosti9. Senzor je optimalizován pro použití s mikrokontroléry BASIC Stamp, Arduino, Propeller a micro:bit9.
Výhodou je LED indikátor, který signalizuje probíhající měření9. Kompaktní rozměry 22 × 46 × 16 mm a hmotnost pouhých 8,7 g umožňují snadnou integraci do robotických platforem9.
MaxBotix řada - Profesionální senzory
MaxBotix vyrábí řadu profesionálních ultrazvukových senzorů s pokročilými funkcemi. MB1210/MB1310 nabízejí extrémní dosah až 765 cm s rozlišením 1 cm7. Tyto senzory pracují s napájením 3,3V až 5V a poskytují multiple výstupní formáty7.
MB1240/MB1340 jsou optimalizovány pro kratší vzdálenosti s dosahem 645 cm a vyšší přesností11. Všechny MaxBotix senzory zahrnují automatickou kalibraci, potlačení šumu a detekci objektů od 0 cm7 11.
Tyto senzory podporují reálný čas analog envelope výstup, který zobrazuje průběh odražených vln11. To umožňuje pokročilé analýzy a detekci více objektů současně. Cena je však výrazně vyšší než u běžných hobby senzorů.
Srovnávací tabulka senzorů
Senzor | Rozměry (mm) | Napájení (V) | Spotřeba (mA) | Min. vzdálenost (cm) | Max. vzdálenost (cm) | Přesnost | Úhel detekce (°) |
---|---|---|---|---|---|---|---|
HC-SR04 | 45×20×15 | 5.0 | 15 | 2 | 400 | 3mm | 15 |
RCW-0001 | 45×20×15 | 3.0-5.5 | 2.2-2.8 | 1 | 400-450 | 1mm | 15 |
US-100 | 20×45 | 3.3-5.0 | 2 | 2 | 450 | 1mm | 15 |
JSN-SR04T | Variabilní | 4.5-5.5 | 30 | 25 | 450 | 10mm | <50 |
PING))) | 22×46×16 | 5.0 | 35 | 3 | 300 | N/A | Úzký |
HY-SRF05 | 45×20 | 5.0 | 15 | 2 | 400 | 3mm | 15 |
MB1210 | Kompaktní | 3.3-5.0 | N/A | 20 | 765 | 1cm | N/A |
MB1240 | Kompaktní | 3.3-5.0 | N/A | 20 | 645 | 1cm | N/A |
Tabulka ukazuje, že RCW-0001 vyniká nejnižší spotřebou a nejkratší minimální vzdáleností3, zatímco MaxBotix senzory nabízejí nejvyšší dosah711. HC-SR04 zůstává zlatým standardem pro běžné aplikace díky optimálnímu poměru cena/výkon1 12.
Ukázka MicroPython kódu
Následující ukázka demonstruje základní použití HC-SR04 nebo kompatibilního senzoru v MicroPythonu:
import machine
import time
class UltrasonicSensor:
def __init__(self, trigger_pin, echo_pin):
"""
Inicializace ultrazvukového senzoru
Args:
trigger_pin: GPIO pin pro trigger signál
echo_pin: GPIO pin pro echo signál
"""
self.trigger = machine.Pin(trigger_pin, machine.Pin.OUT)
self.echo = machine.Pin(echo_pin, machine.Pin.IN)
def measure_distance(self):
"""
Měření vzdálenosti v centimetrech
Returns:
float: Vzdálenost v cm, nebo -1 při chybě
"""
# Vyčištění trigger pinu
self.trigger.off()
time.sleep_us(2)
# Spuštění měření - 10us puls
self.trigger.on()
time.sleep_us(10)
self.trigger.off()
# Čekání na začátek echo signálu
timeout = time.ticks_ms()
while self.echo.value() == 0:
if time.ticks_diff(time.ticks_ms(), timeout) > 30:
return -1 # Timeout
# Měření délky echo pulsu
start_time = time.ticks_us()
timeout = time.ticks_ms()
while self.echo.value() == 1:
if time.ticks_diff(time.ticks_ms(), timeout) > 50:
return -1 # Timeout
end_time = time.ticks_us()
# Výpočet vzdálenosti
pulse_duration = time.ticks_diff(end_time, start_time)
distance = pulse_duration / 58.0 # Převod na cm
return distance
def get_filtered_distance(self, samples=5):
"""
Filtrované měření s mediánem
Args:
samples: Počet vzorků pro filtraci
Returns:
float: Filtrovaná vzdálenost v cm
"""
measurements = []
for _ in range(samples):
dist = self.measure_distance()
if dist > 0:
measurements.append(dist)
time.sleep_ms(60) # Pauza mezi měřeními
if measurements:
measurements.sort()
return measurements[len(measurements)//2] # Medián
else:
return -1
# Ukázka použití
sensor = UltrasonicSensor(trigger_pin=5, echo_pin=18)
while True:
distance = sensor.get_filtered_distance()
if distance > 0:
print(f"Vzdálenost: {distance:.1f} cm")
# Jednoduché varování při blízké překážce
if distance < 10:
print("POZOR: Překážka velmi blízko!")
elif distance < 30:
print("Překážka blízko")
else:
print("Chyba měření nebo překážka mimo dosah")
time.sleep(1)
Tento kód implementuje robustní měření s timeout ochranou a mediánovou filtrací pro zvýšení spolehlivosti1 18. Filtrování je důležité kvůli občasným chybným měřením způsobeným elektromagnetickým rušením nebo odrazy od více povrchů.
Záludnosti a omezení ultrazvukových senzorů
Problematické povrchy a materiály
Ultrazvukové senzory mají významná omezení při detekci určitých typů povrchů. Akusticky měkké materiály jako jsou textilie, koberce, pěna nebo závěsy mohou být obtížně detekovatelné3. Tyto materiály pohlcují ultrazvukové vlny místo jejich odrazu, což vede k falešným měřením nebo úplnému selhání detekce.
Velmi hladké povrchy pod ostrými úhly mohou způsobit úplný odraz vln mimo senzor1. Podobně zakřivené povrchy jako jsou trubky nebo kulové objekty rozptylují ultrazvukové vlny do různých směrů, což snižuje intenzitu signálu vracejícího se k senzoru.
Pro optimální funkci se doporučuje, aby detekovaný objekt měl plochu minimálně 0,5 m² a byl orientován kolmo k senzoru1 20. Menší objekty nebo ty pod ostrými úhly způsobují nedostatečný odraz pro spolehlivou detekci.
Vlivy prostředí
Teplota vzduchu výrazně ovlivňuje rychlost zvuku a tím i přesnost měření. Při změně teploty o 10°C se rychlost zvuku změní přibližně o 1,7%5. Některé pokročilé senzory jako US-100 tento problém řeší integrovaným teplotním senzorem5 14.
Vlhkost vzduchu také mění rychlost šíření zvuku, ačkoli méně výrazně než teplota. Silný vítr může rozptýlit ultrazvukové vlny a způsobit nepřesná měření. Prach a částice ve vzduchu mohou způsobit předčasné odrazy.
Elektromagnetické rušení od motorů, spínaných zdrojů nebo jiných elektronických zařízení může ovlivnit citlivé analogové obvody senzoru7. To je důvod, proč profesionální senzory jako MaxBotix obsahují pokročilé potlačení šumu.
Geometrické a fyzikální omezení
Mrtvá zóna senzoru je oblast příliš blízko, kde nelze provést spolehlivé měření. U HC-SR04 je to 2 cm, u RCW-0001 pouze 1 cm1 3. V této zóně může docházet k falešným odečtům nebo úplnému selhání.
Úhel detekce omezuje detekci na kužel obvykle 15° až 50°1 6. Objekty mimo tento kužel nebudou detekovány, i když jsou ve fyzickém dosahu senzoru. To může být problém při detekci tenkých objektů jako jsou tyče nebo dráty.
Vícecestné odrazy v uzavřených prostorech mohou způsobit echo efekty a falešná měření. Ultrazvukové vlny se mohou odrážet od stěn a vracet se k senzoru s dlouhým zpožděním, což vytváří zdání vzdálených objektů.
Programovací úskalí
Timing je kritický - příliš časté měření může způsobit interferenci mezi jednotlivými pulsy1. Doporučuje se minimální interval 60 ms mezi měřeními1. Blokující měření může zastavit celý program při čekání na echo signál, proto je důležité implementovat timeout.
Napěťové úrovně představují problém při připojování 5V senzorů k 3,3V mikrokontrolérům13. Echo signál může poškodit vstupy mikrokontroléru, pokud se nepoužijí vhodné úrovňové převodníky13.
Závěr
Ultrazvukové senzory vzdálenosti představují klíčovou technologii v moderní robotice a automatizaci, nabízející spolehlivé bezkontaktní měření v širokém spektru aplikací. HC-SR04 zůstává zlatým standardem díky své dostupnosti a rozsáhlé podpoře, zatímco novější alternativy jako RCW-0001 řeší jeho hlavní omezení v oblasti napájení a minimální detekční vzdálenosti.
Při výběru vhodného senzoru je třeba zohlednit specifické požadavky aplikace: napájecí napětí systému, požadovaný dosah a přesnost, podmínky prostředí a cenový rozpočet. Pro hobby projekty a vzdělávací účely zůstává HC-SR04 optimální volbou, zatímco pro komerční aplikace jsou vhodnější pokročilejší senzory s teplotní kompenzací nebo profesionální řešení od MaxBotix.
Úspěšná implementace vyžaduje pochopení fyzikálních omezení ultrazvukových senzorů a jejich vlivů na různé materiály a geometrie. Správná programovací praxe včetně timeout ochrany, filtrování měření a respektování timing požadavků je nezbytná pro dosažení spolehlivých výsledků. S rostoucím vývojem v oblasti miniaturizace a integrace pokročilých funkcí můžeme očekávat další vylepšení těchto všestranných senzorů, které budou i nadále hrát důležitou úlohu v autonomních systémech a robotických aplikacích.
-
https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
https://datasheetspdf.com/datasheet-pdf/1380136/HC-SR04.html ↩↩↩
-
https://www.cytron.io/p-rcw-0001-micro-ultrasonic-range ↩↩↩↩↩↩↩↩↩↩↩
-
https://www.tokopedia.com/larisrameshop/5pcs-us-100-ultrasonic-mulai-modul-dengan-suhu-kompensasi ↩↩↩
-
https://assets.website-files.com/66f43ab41995d6ee71c55727/67395e29d57d477447e57ece_2590395282.pdf ↩↩↩↩↩↩↩↩
-
https://www.parallax.com/product/ping-ultrasonic-distance-sensor/ ↩↩↩↩↩↩↩↩↩↩↩
-
https://botland.store/distance-sensors/14329-ultrasonic-distance-sensor-2-400cm-hy-srf05-5903351241588.html ↩
-
https://www.jameco.com/Jameco/Products/ProdDS/2157351.pdf ↩↩↩↩
-
https://electronics.semaf.at/?a=1447\&lang=eng\&srsltid=AfmBOoryb8NEq8lIAEftUQjYj-4k75SjDOGICiF8gaELtGv0_qrHhxCk ↩↩↩↩↩
-
https://etqan.sa/product/us100-ultrasonic-module-5pins/?srsltid=AfmBOopDhwl-hZ3st3X6tMtUWZduBYJnXd0Vnz569O5NEkzPUQAVDrsN\&v=c12e01f2a13f ↩↩↩↩
-
https://handsontec.com/dataspecs/sensor/SR-04-Ultrasonic.pdf ↩↩↩↩
-
https://www.handsontec.com/dataspecs/HC-SR04-Ultrasonic.pdf ↩
-
https://www.tokopedia.com/celectro/us-100-ultrasonic-sensor-distance-range ↩
-
https://maxbotix.com/products/mb1240?srsltid=AfmBOoruc6z-qaF5p4ss9QBx0AHkLWC5TNhVZc1P7_iw4BdDGCE5MUeQ ↩
-
https://www.robotshop.com/products/parallax-ping-ultrasonic-sensor?srsltid=AfmBOopBblXidKspNQuyVbjOSN95rDV2lHiJePGf6ikXGDe6vbqO6bSz ↩
-
https://core-electronics.com.au/parallax-ping-ultrasonic-sensor-28015.html ↩
-
https://stackoverflow.com/questions/56687570/problem-with-multiple-parallax-ping-ultrasonic-sensors ↩
-
https://boardsandsensors.com/products/hy-srf05-ultrasonic-distance-measuring-transducer-sensor-module-for-dev-boards ↩