2007/9– 19.3.2007
Lokalizace objektů pomocí ultrazvukových senzorů Ing. Ladislav Jozsa Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav radioelektroniky, Purkyňova 118, 612 00 Brno, Česká republika email:
[email protected]
1. Úvod Ultrazvuk je zvuk generovaný na kmitočtu vyšším než je schopno zaregistrovat lidské ucho. Obvykle je tento kmitočet vyšší než 20 kHz. Ultrazvukové transducery pracují na principu vysílání kuželovitého svazku krátkých shluků impulsů v oblasti ultrazvukového kmitočtového spektra a příjmu tohoto signálu odraženého lokalizovaným objektem. Vzdálenost objektu je možno spočítat pomocí známé rychlosti šíření ultrazvukových vln ve známém prostředí měřením času, který uplyne od okamžiku vyslání signálu transducerem až do příjmu odražené vlny. V případě, že prostředím je vzduch, je rychlost šíření akustických vln přibližně 345 m/s při teplotě 22 ˚C. Změny podmínek, za nichž se akustická vlna šíří, např. teploty, vlhkosti či tlaku vzduchu způsobují změnu rychlosti šíření zvuku a jsou zdrojem chyb měření. Změny teploty způsobují nejen změny rychlosti zvuku, ale i změny vlastností materiálů, ze kterých jsou vyrobeny transducery. Provozování senzorů při podstatně vyšších nebo nižších teplotách má za následek posunutí jejich rezonančního kmitočtu a z toho plynoucí sníženou citlivost. Pro většinu aplikací snížení citlivosti nepředstavuje problém, nicméně aplikace vyžadující vysoký rozsah pracovních teplot mohou vyžadovat jisté úpravy. Změna podmínek prostředí akustického šíření zvuku se výrazně podílí na útlumu vyzářené energie akustického signálu. Na obr.1 je zobrazen útlum akustického signálu jako funkce teploty, vlhkosti a tlaku vzduchu.
Obr.1: Zeslabení signálu o kmitočtu 100kHz při tlaku 1 atmosféra 9-1
2007/9– 19.3.2007
Ze vztahu (1) vyplývá, že rychlost šíření ultrazvuku je závislá především na teplotě vzduchu,
, představuje rychlost šíření zvuku ve vzduchu v m/s a je teplota vzduchu ve kde stupních Celsia. Vlhkost vzduchu se podílí na rychlosti šíření jen asi 0,6% [7]. Maximální dosah při měření je omezen především turbulencemi v atmosféře, které mohou způsobit unášení vzduchové hmoty a tím zeslabit odražený signál. V extrémním případě velice rychlého proudění vzduchu může dojít k úplnému unesení ultrazvukových vln a ty potom minou svůj cíl. Ultrazvukový signál může být také odražen na rozhranní oblastí s náhlou změnou teploty. Další omezení dosahu může být způsobeno srážkami v atmosféře. Tento vliv lze částečně eliminovat snížením kmitočtu transducerů, protože vliv srážek je menší na nižších kmitočtech, délka vlny je větší než rozměry dešťové kapky. Nejsilnější signál bývá odražen od cílů, které jsou pevné, hladké a ploché směřující kolmo k vysílanému svazku. Takové cíle je možné detekovat na delší vzdálenosti. Cíle mohou být z kovu, skla nebo kapaliny. V případě nerovnoměrného a nerovného povrchu má odražený signál různou amplitudu kvůli rozptylu zvuku a je menší než v případě pevného cíle, ale svazek odraženého signálu je širší, což může být považováno za výhodu. Různé materiály mají různé schopnosti odrážet zvuk. Například materiály jako tkanina nebo molitan mají velice malou odrazivost, z čehož plyne snížení dosahu lokalizačního systému. Nejvíce vysílané energie je soustředěno v hlavním laloku, kterým definujeme šířku svazku. Postranní laloky soustřeďují energii ležící mimo hlavní lalok a mohou představovat problém v případě, že v oblasti kde vyzařují, se nachází překážka, která způsobí falešný odraz. Šířka hlavního laloku je určena poklesem energie hlavního svazku o 3 dB oproti jeho maximální hodnotě. Užití transducerů s velkou šířkou hlavního laloku má za následek rozprostření energie vysílaného svazku do většího prostoru a tím také snížení maxima vysílané energie, což vede ke snížení dosahu transducerů. Při detekci objektů pomocí ultrazvukových senzorů existuje jistá minimální vzdálenost, ve které jsou senzory schopny detekovat objekt (viz obr.2). Toto omezení je způsobeno dokmity aktivní plochy transduceru po odeznění budícího pulzu. Dokmity jsou způsobeny fyzikálními vlastnostmi použitých piezoelektrických měničů a dochází při nich ke spotřebování zbytkové elektrické a mechanické energie přijaté budícím pulzem.
9-2
2007/9– 19.3.2007
Obr.2: Minimální dosah ultrazvukových senzorů
2. Ultrazvukový lokalizační systém Jako praktická ukázka vlastností a schopností ultrazvukových senzorů byla v rámci mé diplomové práce navrhnuta aplikace ultrazvukového lokalizačního systému, jejímž cílem je lokalizace objektů ve 2D rovině. Systém je složen ze tří ultrazvukových uzlů, obsahujících ultrazvukový vysílač a přijímač, strategicky umístěných na okraji desky a jednoho řídicího uzlu, který zprostředkuje komunikaci mezi počítačem a senzorovými uzly. Senzorové uzly jsou řízeny jednočipovým mikrokontrolérem Atmel 89C2051 [5] a jsou mezi sebou propojeny optickým kabelem v kruhové topologii. Řídicí uzel získává časy šíření ultrazvukových vln z jednotlivých senzorových uzlů a odesílá je do počítače přes sériovou linku. Na základě získaných dat probíhá na počítači výpočet polohy objektu pomocí algoritmu trilaterace. Na počítači je rovněž spuštěn TCP/IP server, naprogramovaný v jazyce Java, který zajišťuje ostatním klientským počítačům v síti možnost sledovat pohyb objektu (obr.3).
9-3
2007/9– 19.3.2007
Obr.3.: Požadované zapojení ultrazvukového lokalizátoru
3. Architektura ultrazvukového lokalizačního systému Na obr.4 je zobrazeno blokové schéma ultrazvukového lokalizátoru. Pro zjednodušení popisu rozdělíme blokové schéma na hardwarovou část tvořenou jednotlivými ultrazvukovými moduly spolu s řídicím modulem a část, kterou tvoří osobní počítač a vyhodnocovací software.
9-4
2007/9– 19.3.2007
Obr.4.: Blokové schéma ultrazvukového lokalizátoru Základním prvkem hardwarové části je řídicí uzel, jenž je z důvodu nutnosti sdílení sériového portu propojen s elektronickým přepínačem GAL, který přepíná komunikaci mezi senzorovou sítí a počítačem. Přepínaní je řízeno mikrokontrolérem řídicího uzlu. Výchozím stavem přepínače je stav připojení řídicího uzlu do senzorové sítě. Zde čeká řídicí uzel na data od senzorových uzlů. Pokud do určitého času žádná data nedorazí je indikována porucha, řídicí modul se pomocí přepínače GAL přepne do režimu komunikace s počítačem a odešle hlášení o chybě v senzorové síti. Poté se přepne zpět do senzorové sítě a opět čeká na data od senzorových uzlů. Celý cyklus se opakuje do té doby, než jsou přijata nějaká data. O tom jaká data jsou přijata, bude zmínka později v sekci věnované komunikačním protokolům. Hardwarová část je dále tvořena senzorovými uzly, sestávající z řídicích mikrokontrolérů 89C2051 a průmyslově vyráběných modulů SRF04 [1]. Kromě napájecích vstupů obsahují moduly vstup Trig pro spuštění generace ultrazvukových pulzů a výstup Echo, kde je změnou napěťové úrovně indikován příjem odražené ultrazvukové vlny.
9-5
2007/9– 19.3.2007 Mikroprocesor senzorového uzlu očekává příkazy od řídicího uzlu a dále přeposílá zprávy, které nejsou určeny pro daný uzel sousednímu uzlu. V případě přijetí příkazu měření, mikroprocesor spustí generování ultrazvukových vln z modulu SRF04 změnou napěťové úrovně na vstupu Trig a zapne časovač. V okamžiku, kdy zaznamená napěťovou změnu na výstupu Echo, zastaví časovač a hodnotu času uloží do paměti. Ta je zde uložena do té doby, než řídicí uzel o uložený čas požádá. Poslední poznámka k hardwarové části se týká geometrického rozmístění senzorových uzlů. V technické dokumentaci k modulům SRF04 je uvedena šířka vyzařovaného svazku 55°. Na obr.5 je zobrazena jedna z možných kombinací rozmístění senzorových uzlů.
Obr.5.: Vybrané rozmístění senzorových uzlů Tato konfigurace rozmístění je nejvýhodnější jednak z hlediska oblasti pokrytí a také z hlediska vzájemného rušení. Pokud by totiž došlo k vyslání ultrazvukových vln ve stejný okamžik ze všech senzorových uzlů a jeden z nich by se nacházel naproti ostatním, mohlo by za určitých podmínek dojít k záměně odražených vln za vlny šířené přímo od protějších senzorových uzlů. Poslední část popisu tvoří softwarová část sestavená v počítači. K tomu, aby byl řídicí uzel schopen komunikovat s počítačem je nejprve zapotřebí napěťové konverze úrovní z TTL na RS232 a naopak. Pro správných běh Java aplikace na osobním počítači je třeba doinstalovat rozšíření Javy javax.comm. Tato alternativa je vhodná pro počítač pracující s operačním systémem na bázi Unixu. Druhou možností je použití balíčku RXTX, který je vhodný pro použití v prostředí Windows.
9-6
2007/9– 19.3.2007
4. Výpočet polohy Polohu lze vypočítat ze získaných časů odrazu ultrazvukového signálu. Vychází se ze znalosti umístění jednotlivých senzorových uzlů v kartézském souřadnicovém systému. Ze získaných časů odrazu ultrazvukových vln lze získat vzdálenosti měřeného objektu od senzorových uzlů. Z technické dokumentace k modulům SRF04 plyne, že pro získání vzdálenosti objektu od daného uzlu je třeba získat čas v mikrosekundách, který je zapotřebí k vyslání ultrazvukové vlny a jejímu vrácení zpět k místu vyslání. Potom lze použít následující vztah:
je vzdálenost objektu v centimetrech. Konstanta ve jmenovateli koresponduje s kde rychlostí šíření akustické vlny. Pokud máme k dispozici pouze jeden senzorový uzel, tak víme, že se objekt může nacházet v kruhové výseči o úhlové šířce 55° a vzdálenosti .V případě, že vycházíme z obr.5 a jako referenční uzel uvažujeme SRF3 to lze matematicky zapsat jako: Pro zjištění přesné ve dvourozměrném prostoru polohy potřebujeme ještě alespoň jeden senzorový uzel. Můžeme použít například uzel SRF2 nacházející se 50 cm napravo od spočteme jako: prvního. Vzdálenost objektu od něj
Nebo můžeme použít senzorový uzel SRF1, který je opět umístěn 50 cm napravo od předchozího. Objekt se potom bude nacházet ve vzdálenosti:
Vyjádřením souřadnice x resp. y například z (3) a jejím dosazením do (5) dostáváme (9) resp. (6). Podobným způsobem dostaneme i ostatní rovnice vyjadřující souřadnice objektu v kartézské souřadné soustavě v rovině.
9-7
2007/9– 19.3.2007
Výsledná poloha je počítána z matematického průměru hodnot souřadnici a pro Yovou
pro Xovou souřadnici.
5. Komunikační protokoly Stejně jako při rozdělení popisu blokového schématu na dvě části rozdělíme i popis komunikačních protokolů. Důvodem je odlišný způsob komunikace mezi řídicím uzlem a počítačem a komunikace řídicího uzlu se senzorovými uzly. První způsob komunikace je nazván vnější komunikační protokol, druhý je potom označen jako vnitřní komunikační protokol. 5.1 Vnější komunikační protokol Hlavička tzv. vnějšího komunikačního protokolu je zobrazena na obr.6. Tento protokol je určený pro komunikaci Java aplikace běžící na osobním počítači s řídicím uzlem. Před začátkem vlastní komunikace odešle řídicí uzel čtyř bytovou zprávu do osobního počítače. První byte této zprávy reprezentuje stav senzorové sítě. Pokud dojde k přerušení komunikace v senzorové síti (tj. rozpojení optického kabelu) řídicí uzel odešle první byte s hodnotou rovnou nule. V případě, že jednotlivé uzly jsou bezchybně propojeny, nabývá první odesílaný byte hodnoty podle tab.1. Z bitů 0-2 může být aktivní vždy jen jeden. Bity 4-6 reprezentují stavy jednotlivých senzorových uzlů a mohou tedy nabývat jakékoliv kombinace nul a jedniček. Tab.1.:Stavy senzorové sítě reprezentované 1. bytem odeslaným řídicím uzlem Nastaven na Bit
0
1
7
---
---
6
Senzorový uzel #3 offline
Senzorový uzel #3 online
5
Senzorový uzel #2 offline
Senzorový uzel #2 online
4
Senzorový uzel #1 offline
Senzorový uzel #1 online
3
---
2
---
Senzorový uzel #3 je považován za první v daném kole
1
---
Senzorový uzel #2 je považován za první v daném kole
0
---
Senzorový uzel #1 je považován za první v daném kole
9-8
2007/9– 19.3.2007
Zbývající tři byty reprezentují vypočtený čas, po který bude aktivní komunikace s osobním počítačem. Po odeslání prvních čtyř stavových bytů je řídicí uzel připraven přijmout příkazy z počítače ve formátu uvedeném na obr.6.
Obr.6.: Hlavička vnějšího komunikačního protokolu Bity 6 a 7 reprezentují adresu senzorového uzlu, ke kterému se bude vztahovat daná akce. V případě adresy 00 je akce vztažena ke všem senzorovým uzlům. Akcí může být například měření, při nastavení bitu číslo 5, případně načtení uložených časů ze senzorových uzlů do paměti řídicího uzlu, pokud nastavíme bit číslo 4. Oba bity mohou být nastaveny současně. V takovém případě nejprve dojde k přenosu časů naměřených v minulém kole, poté se spustí nové měření. Nastavením posledního použitého bitu číslo 3 dosáhneme přenosu uložených časů z řídicího uzlu do počítače, kde dojde k jejich zpracování. 5.2 Vnitřní komunikační protokol Komunikace mezi senzorovými uzly a řídicím uzlem je zajištěna prostřednictvím vnitřního komunikačního protokolu, jehož hlavička je zobrazena na obr.7.
Obr.7.: Hlavička vnitřního komunikačního protokolu Pro potřeby komunikace jednotlivých uzlů je třeba zajistit jejich adresování v rámci kruhu. Celkem jsou zde přítomna čtyři zařízení, pro jejichž adresaci dostačují dvě dvojice bitů. Dvojice bitů 6 a 7 představuje adresu zdrojového uzlu, zatímco dvojice s bity číslo 2 a 3 tvoří adresu cílového uzlu. Pátý bit slouží jako příkaz pro měření při nastavení na hodnotu 1, jeho nastavení na hodnotu 0 značí příkaz k poslání naměřených časů do řídicího uzlu, kdy se odesílají celkem 3 byty. Senzorový uzel potom nastaví čtvrtý bit, jako příznak odeslání třech bytů. První byte vždy reprezentuje hlavičku, zbývající dva představují naměřené časy odrazu ultrazvukového signálu. Poslední dva bity v hlavičce slouží pro kontrolu stavu spojení s řídicím uzlem. Odesílají je pravidelně senzorové uzly a jsou potvrzovány řídicím uzlem. Potvrzovací zpráva od řídicího uzlu má stejný formát jako u senzorového uzlu, liší se pouze zdrojovou a cílovou adresou. Na základě přijatého potvrzení od řídicího uzlu v prvním kole nastaví senzorový uzel poslední bit. Od této chvíle je senzorová síť považována za funkční. Správný příjem zpráv kontrolujících správné propojení kruhu je klíčový pro výpočet času, po který bude řídicí uzel přepnut do režimu komunikace s PC. Po přijetí kontrolního paketu linky od prvního senzorového uzlu se nastaví příznak indikující, který senzorový uzel je považován jako první v daném kole a spustí se časovač. Řídicí uzel potom počká na zbylé dva senzorové uzly, zastaví časovač a uloží čas, který zabralo čekání na všechny tři kontrolní pakety. Protože perioda odesílání kontrolních paketů linky je známá, vypočte řídicí uzel čas, 9-9
2007/9– 19.3.2007 po který může být přepnut do režimu komunikace s PC. Vypočtený čas se uloží a ihned po přepnutí do režimu komunikace s počítačem je spolu se stavovým bytem senzorové sítě odeslán do PC. V případě, že nedošlo ke správnému příjmu kontrolních paketů, je indikována porucha a řídicí uzel restartuje komunikační cyklus.
9-10
2007/9– 19.3.2007
6. Hardwarový popis systému 6.1 Senzorový uzel Základním prvkem celého systému, zobrazeného na obr.8, je mikroprocesor IC1. Resetovací obvod ve standardním zapojení je tvořen kondenzátorem C1 a rezistorem R4. Tlačítko S1 umožňuje reset obvodu. Krystal XTAL1 o kmitočtu 22.1184 MHz zajišťuje potřebnou stabilitu kmitočtu. Jeho hodnota umožňuje jednoduché nastavení komunikační rychlosti sériové linky, která odpovídá 19200 Bd.
Obr.8.: Schéma senzorového uzlu
9-11
2007/9– 19.3.2007
LED diody LED1 a LED2 indikují správnou činnost, resp. poruchu v komunikaci. Dioda LED3 se krátce rozsvítí v případě, že daný senzorový uzel obdržel příkaz k započetí měření. Na pinech 2 a 3 mikroprocesoru IC1 je připojen jednoduchý převodník elektrického signálu na optický a naopak. Vysílač a přijímač pro optický přenos je tvořen komplementární dvojicí modulů SFH756V a SFH250V od firmy Infineon. Mikroprocesor je připojen k průmyslově vyráběnému modulu SRF04 firmy Devantech, Ltd. [1]. Návrh plošného spoje není uveden, zařízení bylo postaveno na univerzální desce plošných spojů.
9-12
2007/9– 19.3.2007 6.2 Řídicí uzel Základem řídicího uzlu (obr.9) je stejně jako v předchozím případě mikroprocesor IC1.
Obr.9.: Schéma řídicího uzlu
9-13
2007/9– 19.3.2007
Zapojení převodníku optického signálu na elektrický a naopak, stejně jako resetovacího a napájecího obvodu se nijak neliší od zapojení senzorového uzlu. Hlavní změna tak spočívá v přidání přepínače IC2, jenž je naprogramován tak, aby se choval podle vnitřního schématu, uvedeném na obr.10. Po resetu mikroprocesoru, jsou jeho V/V brány nastaveny do logické úrovně 1 a řídicí uzel je tedy přepnut do režimu komunikace se senzorovými uzly.
Obr.10.: Vnitřní zapojení přepínače GAL Správná činnost vstupně výstupních bran P1.0 a P1.1 je zajištěna připojením pull-up rezistorů R10 a R11 na piny 12 a 13 mikroprocesoru IC1, které musí být připojeny v případě, že není použit integrovaný komparátor. Činnost LED indikátorů LED1-LED12 je objasněna v tabulce 2.
9-14
2007/9– 19.3.2007 Tab.2.: Funkce LED indikátorů Označení schématu
ve
Barva
Funkce
LED1
zelená
Indikace funkčnosti senzorové sítě
LED2
červená Indikace poruchy senzorové sítě
LED3
žlutá
Kontrolní pakety linky od senzorového uzlu 1 považovány za první v daném kole
LED4
žlutá
Kontrolní pakety linky od senzorového uzlu 2 považovány za první v daném kole
LED5
žlutá
Kontrolní pakety linky od senzorového uzlu 3 považovány za první v daném kole
LED6
zelená
Senzorový uzel 1 OK
LED7
zelená
Senzorový uzel 2 OK
LED8
zelená
Senzorový uzel 3 OK
LED9
červená Porucha senzorového uzlu 1
LED10
červená Porucha senzorového uzlu 2
LED11
červená Porucha senzorového uzlu 3
LED12
žlutá
Přepnutí do režimu komunikace s počítačem
7. Závěr Zařízení bylo sestaveno na Mondragón University ve Španělsku v rámci realizace diplomové práce. Senzorové uzly byly během testu zařízení umístěny na jedné straně desky o rozměrech 1x1 metr s nakresleným obrazcem, který odpovídal teoretickému pokrytí sledované oblasti všemi třemi senzorovými uzly. Měřeným objektem byla plastová láhev s vodou. Na začátku měření byla umístěna ve středu obrazce na souřadnicích x=50 cm, y=50 cm. Měření probíhalo metodou postupného vysílání ultrazvukových vln z jednotlivých senzorových uzlů s prodlevou zhruba 140 ms. Nejlepšího výsledku přesnosti měření bylo dosaženo při pohybu objektu ve vzdálenější polovině oblasti pokryté ultrazvukovým signálem ze všech třech transducerů. Při pohybu objektu v bližší polovině desky byl objekt detekován o několik centimetrů dál, než se skutečně nacházel, což odpovídá výrobcem uváděné přesnosti 3-4 cm pro měření vzdálenosti objektu jediným transducerem. Velkého zjednodušení návrhu softwarové i hardwarové části by se dalo dosáhnout při použití mikroprocesoru se dvěma sériovými porty pro řídicí uzel. Odpadl by tak přepínač GAL a složité počítání maximálního času v režimu komunikace s počítačem. Ultrazvukové transducery nacházejí široké uplatnění v kybernetice jako například antikolizní dektory, měřiče rychlosti proudění kapalin a plynů, nebo jako parkovací radary.
9-15
2007/9– 19.3.2007
Literatura [1] Robot electronics (Devantech, Ltd.) website. Přístupné z URL: http://www.robotelectronics.co.uk/htm/srf04tech.htm. [2] JÓZSA, L. Object localization using ultrasonic sensors. Diplomová práce. Mondragón: Mondragón Unibertsitatea, 2006. [3] Trilateration. Wikipedia, the free encyclopedia. Přístupné z URL: http://en.wikipedia.org/wiki/Trilateration. [4] Atmel 8051 Microcontrollers Hardware Manual. Atmel Corporation, 2005. [5] AT89C2051 Datasheet. Atmel Corporation, 2005. [6] Air Ultrasonic Ceramic Air Transducers 400ST/R160. Robot electronics (Devantech, Ltd.) website. Přístupné z URL: http://www.robot-electronics.co.uk/datasheets/t400s16.pdf [7] Overview for Applying Ultrasonic Technology. Airmar Technology Corporation. Přístupné z URL: http://www.airmartechnology.com/uploads/AirPDF/Intro_Overview.pdf
9-16