Cieľom tejto práce je skenovanie neznámeho prostredia s využitím ultrazvukového snímača a obchádzanie prekážok mobilným zariadením za pomoci infračervených snímačov. Najprv bol vytvorený komunikačný protokol pre komunikáciu ultrazvukového snímača s PC a následne algoritmus na skenovanie prostredia, ktorý bol implementovaný do programu vo vývojovom prostredí C#. Program nám dáva grafický výstup neznámeho prostredia na monitor podľa toho vieme rozpoznať prekážky pred ultrazvukovým snímačom.

Na obchádzanie prekážok sme aplikovali program vytvorený vo vývojovom prostredí C#. Mobilný robot po detekcii prekážky infračerveným snímačom vyhodnotí situáciu a podľa algoritmu obíde prekážku pred mobilným zariadením. Výstupom práce je rozšírenie mobilného zariadenia o funkcie ,ktoré budú využité neskôr pre inteligentný autonómny pohyb mobilného zariadenia.

1. Úvod

Snímače sú dôležitým prvkom pre snímanie objektov. Využitie snímačov v tejto práci je na obchádzanie prekážok a na skenovanie prostredia. Na obchádzanie prekážok sa používajú infračervené snímače a na skenovanie prostredia je použitý ultrazvukový snímač. Bola k tomu vytvorená aplikácia v programovacom prostredí C#, ktorá bola aplikovaná do mobilného zariadenia. Mobilné zariadenie vyhodnocuje informácie zo snímačov a na základe toho vykonáva požadované úlohy.

2. Snímače

Na presné meranie automatického riadiaceho pochodu sa využívajú snímače, ktorí prevádzajú informáciu z fyzikálnej oblasti meranej veličiny do inej fyzikálnej oblasti, najčastejšie na elektrický signál. Snímače sa používajú prakticky vo všetkých druhoch priemyselných výrobkov a systémov, ako aj v procesnej automatizácii, v meraní a regulácii [1]. Základné typy:

  • Snímače tlaku
  • Snímače teploty
  • Snímače prietoku
  • Snímače polohy
  • Špeciálne snímače:
    • optické snímače (infračervené snímače)
    • senzory s povrchovou akustickou vlnou
    • ultrazvukové snímače

Pri ďalšom písaní prace sa bude venovať optickým snímačom na meranie vzdialenosti. Tento snímač bude detekovať objekty pred a za mobilným zariadením. Snímače budú posielať informácie o aktuálnom stave mobilného zariadenia a tento stav vyhodnotí podľa stanovených príkazov vo vývojovom prostredí C#. Nasledujúcu kapitolu som čerpal z literatúry [2].

2.1 Princíp optického snímača

Vo všeobecnosti pozostáva snímač, ktorý pracuje na optickom princípe, zo zdroja svetla, fotocitlivého prvku a prenosového média. Optický snímač vzdialenosti je skonštruovaný tak, že zmena vzdialenosti medzi dvoma súčasťami snímača resp. medzi jednou časťou snímača a pohyblivým objektom má za následok zmenu vlastností svetelného lúča, spôsobenú jeho prenosom, odrazom, pohltením rozptylom alebo ohybom. Na všetky objekty na ktoré dopadne svetlo sa toto svetlo odrazí späť pod určitým uhlom a intenzitou. Odraz samozrejme závisí od typu povrchu daného materiálu a jeho drsnosti. Z fyzikálneho hľadiska je svetlo elektromagnetické žiarenie, ktoré je vďaka svojej vlnovej dĺžke viditeľné okom od 780 nm (infračervené) až po 380 nm (ultrafialové)[2].


Obr.1: Bloková schéma zapojenia vysielacej a prijímacej jednotky infračerveného senzora

Základom  je generátor frekvencie, ktorý vyrába obdĺžnikový signál. Tento signál musí byť zosilnený, pretože jeho intenzita nestačí na prácu diódového infra vysielača. Infra vysielač tvoria dve diódy zapojené za sebou, ktoré poskytujú väčší vysielací výkon ako keby tam bola zapojená len jedna dióda. Prijímaciu jednotku tvorí špeciálny obvod, ktorý sa skladá z niekoľkých blokov a to: fotocitlivý infra tranzistor, kontrolná jednotka, demodulátor a výstupný zosilňovač. Výstup je invertovaný a cez zosilňovací obvod tranzistora pripojený na klasickú LED diódu, ktorá zhasne v prípade detekcie objektu v krátkej vzdialenosti.


Obr.2: Infračervený snímač

2.2 Využitie optického snímača

Infračervené optické senzory pracujú na vlnovej dĺžke približne 940 nm a používajú sa v kombinácii vysielač – prijímač. Patria medzi aktívne snímače, kde vysielač vysiela pulzy s určitou frekvenciou a keď ich prijímač zachytí, tak sa zmení jeho výstup z log. 1 na log. 0 alebo naopak. Najčastejšie sa využívajú na meranie vzdialenosti objektu medzi infračerveným snímačom a snímaným objektom. V tejto práci sa využívajú optické snímače na obchádzanie objektu (prekážky), ktorý sa nachádza pred snímačom. Snímače sú pripevnené na mobilnom zariadení a umiestnene je ako sú na obr.3.


Obr.3: Umiestnenie snímačov na mobilnom zariadeni

2.3 Princíp ultrazvukového snímača

Ultrazvukom nazývame mechanické kmitanie s frekvenciou vyššou ako 20 kHz. Správa sa podobne ako iné vlnenie. Keď ultrazvuková vlna narazí na predmet, resp. na rozhranie, na ktorom sa menia vlastnosti prostredia, časť jej energie sa odrazí, časť prechádza predmetom a časť sa v ňom pohltí. Najviac ak sa takýto predmet relatívne pohybuje vzhľadom na zdroj ultrazvukových kmitov, dochádza k posunu frekvencie odrazenej vlny (uplatňuje sa Dopplerov jav). Tieto vlastnosti interakcie zdroja ultrazvuku a prostredia, resp. objektu sa využívajú pri meraní fyzikálnych veličín. Najčastejšie ide o

  • detekciu prítomnosti,
  • meranie vzdialenosti resp. posunutia predmetov,
  • meranie rozmerov objektov a hrúbky vrstiev,
  • meranie fyzikálnych veličín založených na rýchlosti pohybu predmetov, častíc, resp. prostredia.

Veličinou, ktorá sa v ultrazvukových systémoch najčastejšie meria, je doba šírenia sa ultrazvukovej vlny. Doba šírenia sa ultrazvukovej vlny predstavuje časový interval, ktorý (zvuková) vlna potrebuje na prekonanie vzdialenosti od zdroja do detektora zvuku, priamo alebo nepriamo cez odrazovú plochu. Meraná doba šírenia je priamo úmerná vzdialenosti prekonanej vlnou.

2.4 Využitie ultrazvukového snímača

Má za úlohu zabezpečiť detekovanie prekážky na vzdialenosť od 3 cm až 4 m (v závislosti od konkrétneho typu senzora). Bežný ultrazvukový senzor obsahuje niekoľko za sebou zapojených blokov elektrických obvodov, ktoré pracujú v postupnosti, ako je zobrazené na obrázkoch.


Obr.4: Zapojenie blokov bežného  ultrazvukového snímača


Obr.5: Ultrazvukový senzor

Výstup tohto snímača tvoria impulzy s dĺžkou trvania log. 1 0,1 až 25 ms, podľa ktorých vieme v akej vzdialenosti je detekovaný objekt. Ten by mal byť privedený na špeciálny vstup mikrokontroléra a po spracovaní by sa dáta mali odosielať priamo do aplikácie bežiacej na PC. Program aplikácie by dáta spracoval a rozhodol by sa ako by bolo možné daný objekt, ktorý by bránil v pohybe obísť už v predstihu.


Obr.6: Umiestnenie ultrazvukového snímača na mobilnom zariadení

3. Obchádzanie prekážky

Na obchádzanie prekážky sa využívajú infračervené snímače vzdialenosti. Pri pohybe mobilného zariadenia, snímač vysiela pulzy s určitou frekvenciou. Ak zariadenie nezadetekuje prekážku, tak na výstupe je log 1. Pri zadetekovaní prekážky sa výstup ma hodnotu log 0. Ak takýto prípad nastane tak zariadenie sa začne automaticky chovať podľa získaných informácii na výstupe a to podľa nasledovných krokov:

  • Zastavenie zariadenia – ak na výstupe je log 0 t.j. zariadenie zadetekovalo prekážku, následne sa zastaví pred prekážkou, aby nenastala kolízia s prekážkou a mobilným zariadením.
  • Cúvanie – ďalším krokom je cúvanie mobilného zariadenia, aby sa ľahšie obchádzala prekážka
  • Natáčanie kolies – ak je už dostatočne ďaleko od prekážky začína natáčať kolesa do zvolenej strany na obchádzanie prekážky. Pri dokončení obchádzania, mobilné zariadenie pokračuje smerom dopredu.


Obr.7: Obchádzanie prekážky

Tieto informácie od snímača vyhodnotí na základe programu, ktorý je aplikovaný v tomto zariadení, ktorý bol vytvorený v programovacom prostredí C#. V tomto programovacom prostredí sú aplikovane príkazy, ktoré vyhodnotia situáciu buď:

  • obchádzanie
  • priamy pohyb bez prekážok

4. Skenovanie prostredia

Na skenovanie prostredia je využitý ultrazvukový snímač vzdialenosti, ktorý je natáčaný servopohonom v rozsahu 120o. Pomocou aplikácie vytvorenej vo vývojovom prostredí C# nám ultrazvukový snímač dáva výstup v podobe vzdialenosti zadetekovanej prekážky, kde nám vytvorený program prepočíta na základe uhlu natočenia servopohonu a vzdialenosti súradnice X,Y. Po zadetekovaní prekážky nám vytvorená aplikácia po stlačení tlačidla Scan vykreslí súradnicovú os a začína sa samotné skenovanie prostredia.

Snímač vyšle hodnotu zadetekovanej prekážky, ktora sa následne zobrazí v aplikácii ako bod, ktorý nám určí vzdialenosť a polohu prekážky po otočení sa servopohonu o 5o nám vytvorená aplikácia vykreslí ďalší bod ktorý snímač zachytí cyklus sa opakuje kým servo nedojde do konečnej polohy 120o. Vytvorená aplikácia je spustiteľná v 2 režimoch a to v režime simulácia kde nám hodnotu vzdialenosti objektu program vyčítava z vopred nadefinovaného poľa prvkov a v online režime kde už program vyčítava vzdialenosť prekážky zo samotného snímača.

Natočenie servopohonu

Servopohon je softwarovo natáčaný o 120o čím je dosiahnutý väčší rozptyl prostredia pred samotným ultrazvukovým snímačom ktorý je umiestnení na hlavici ktorú natáča servopohon.


Obr.8: Rozsah pootočenia servopohonu

Skenovanie prostredia

Je zabezpečíme ultrazvukovým snímačom vzdialenosti o ktorom sme si v úvode práce už písali.


Obr.9: Využitie ultrazvukového snímača v praxi

Software na skenovanie prostredia vytvorený vo vývojovom prostredí C#

Program sme vytvorili v vo vývojovom prostredí C# samotný program komunikuje s ultrazvukovým snímačom a dáva nám hodnoty vzdialenosti prekážky.

5. C#

Ak nastane prvý prípad, aplikovaný program v tomto zariadení vyhodnotí situáciu za obchádzanie a ďalej sa chová podľa príkazov a to nasledovných:

  • Pri zadetekovaní prekážky sa mobilné zariadenie zastaví a to podľa príkazu
    Moves.Motion_Foreward_Backward(63);
  • Nasledovne na zastavenie zariadenie začne cúvať
    Moves.Motion_Foreward_Backward(40);

Pri vykonaní tohto príkazu sa začne zariadenie vytáčať kolesa do zvolenej strany. Čísla v zátvorke znamenajú akou rýchlosť sa bude pohybovať zariadenie a akým smerom:

  • Hodnota <0,62> mobilné zariadenie cúva
  • Hodnota <63> mobilné zariadenie stoji na mieste
  • Hodnota <64,120> mobilné zariadenie sa pohybuje dopredu

Aplikujú sa väčšie alebo menšie hodnoty od <63>, podľa toho akým smerom sa robot má pohybovať, a to z toho dôvodu aby sa toto zariadene pohybovalo, lebo môže nastať taký prípad, že hodnota blízka hodnote <63> nebude vedieť zo zariadením pohnúť. Ukážka programu vyvinutý v programovacom prostredí C#:


Obr.10: Program pre mobilné zariadenie

Program na skenovanie prostredia pracuje nasledovne:

  1. Bola vytvorená funkcia ultra:
    public void ultra()
  2. Funkcia zahŕňa vykresľovanie osi:
    Obj1.DrawLine(p2, 20, 20, 20, 170);
  3. Vykresľovanie ciachovania na osi:
    Obj1.DrawString(jk.ToString(), newFont("Verdana", 5), new SolidBrush(Color.Red), 300, h);
  4. Výpočet súradníc zadetekovanej překážky :
    xultra = Math.Sin(a * (Math.PI / 180));
    xultra = (xultra * UltraSonic);
  5. Cez tlačítko je volaná funkcia ultra ktorá nám vykonáva skenovanie prostredia:
    Thread tr1 = new Thread(ultra);
    tr1.Start();


Obr. 11 Screenshot s vytvorenej aplikácie na skenovanie prostredia


Obr.12 Vývojové prostredie C#

6. Záver

V tejto práci bolo vytvorené skenovanie prostredia pomocou ultrazvukového snímača a obchádzanie prekážok mobilným zariadením pomocou infračervených snímačov. Obchádzanie prekážok bolo naprogramované vo vývojovom prostredí C# a implementovaná do mobilného zariadenia. Výstupom je schopnosť mobilného zariadenia autonómne zadetekovať prekážku a vyhnúť sa jej. Skenovanie prostredia bolo taktiež naprogramované vo vývojovom prostredí C# a implementované do mobilného zariadenia. Výstupom vykresľovanie mapy prostredia podľa ktorej vieme určit vzdialenosti prekážok pred mobilným zariadením.

Literatura

  1. http://sk.wikipedia.org/wiki/Snímač#Pou.C5.BEitie 18.02.2010
  2. http://orcs.sebsoft.com/index.php?option=com_content&task=view&id=67&Itemid=73. 25.02.2008

Spoluautorom článku je Dušan Nemec, Studentská tvůrčí a odborná činnost 2010, FAI UTB ve Zlíně

Napísať príspevok