KURZ: Vyhledávač IR signálů

KAPITOLY

Vyhledávač IR signálů je senzor, který ve svém okolí detekuje infračervené signály. Návratovou hodnotou senzoru je směr, ze kterého byl signál přijat v podobě čísla sektoru (1-9), do kterých je přijímací plocha senzoru rozdělena. Přijímání infračervených signálů můžeme při použití LEGO Mindstorms NXT využít například pro detekci infračerveného míče, který tento signál vysílá. Pomocí senzoru tak zjistíme, na jaké pozici vůči senzoru se míč nachází a na základě tohoto zjištění poté manipulujeme s robotem.

Druhá verze vyhledávače IR signálů dokáže pracovat ve dvou módech. Prvním je modulovaný AC a druhý nemodulovaný DC. Rozdíl je v typu přijímaných signálů. V AC módu dokáže detekovat pouze modulované signály, které vysílá například infračervený míč. V nemodulovaném DC módu detekuje senzor všechny infračervené signály. Může tak být ovlivňován i slunečním svitem.

PRÁCE S vyhledávačem IR signálů V PROGRAMOVACÍCH PROSTŘEDÍCH

NXT-G

Blok pro ovládání vyhledávače IR signálů

Rozcestník


UMÍSTĚNÍ BLOKU

Vyhledávač IR signálů je v programovacím prostředí NXT-G řízen blokem IRSeekerV2Dragged IRSeeker Sensor V2. Tento blok není součástí základní instalace. Pro jeho použití je nutné jej do prostředí importovat. Návod k importu rozšiřujících modulů naleznete v kapitole Instalace rozšiřujících modulů.

 

IRseekerV2 block

 

POPIS BLOKU

Programový blok vyhledávače IR signálů obsahuje celkem 8 konektorů pro propojení s ostatními bloky.

Port Port - vyjadřuje, ke kterému ze vstupních portů (1-4) je senzor připojen.

IRDirection IRDirection - výstup, který vyjadřuje hodnotu v podobě sektoru, ze kterého byl IR signál přijat.

Mode Mode - konektor, který značí, zda vyhledávač pracuje v módu AC nebo DC.

Boolean Detect - výstup, který v podobě logické hodnoty vyjadřuje, zda byl nebo nebyl detekován IR signál.

Number Strength1označuje hodnotu síly signálu v kanálu 1.

Number Strength2 - označuje hodnotu síly signálu v kanálu 2.

Number Strength3  - označuje hodnotu síly signálu v kanálu 3.

Number Strength4  - označuje hodnotu síly signálu v kanálu 4.

Number Strength5 - označuje hodnotu síly signálu v kanálu 5.

 

PARAMETRY BLOKU

IRseekerV2

Port: vyjadřuje, ke kterému ze vstupních portů je vyhledávač IR signálů připojen.

Mode: značí, zda vyhledávač pracuje v módu AC nebo DC.

RobotC

PŘÍKAZY PRO OVLÁDÁNÍ vyhledávače IR signálů

Rozcestník


NASTAVENÍ SENZORU

Stejně jako u použití jiných senzorů, je i u vyhledávače IR signálů před započetím práce nutné provést deklaraci senzoru. Robotickým prostředím RobotC automaticky generovaný zápis, se skládá z klíčového slova #pragma a příkazu config(), který obsahuje čtyři parametry. První parametr definuje, zda se jedná o deklaraci senzoru či motoru. Druhý parametr definuje, ke kterému vstupnímu portu (S1 - S4) je senzor připojen. Třetí parametr je volitelný, zadávaný uživatelem. Jedná se o název senzoru, který se poté dále používá při vytváření programu. Poslední parametr deklarace je standardizovaný název senzoru (v případě vyhledávače IR signálů = sensorHiTechnicIRSeeker1200).

 
#pragma config(Sensor, S1,     IRvyhledavac,        sensorHiTechnicIRSeeker1200) // Kod je automaticky generovan pruvodcem deklaraci RobotC.
 

Poznámka: Deklaraci lze provést ručním zapsáním deklarace v příkladu nebo v menu programovacího prostředí RobotC. Postup je uveden v kapitole Deklarace motorů a senzorů.


NASTAVENÍ TYPU SENZORU

Deklarace senzoru pomocí průvodce není jediná možnost. Druhou variantou deklarace je pomocí příkazu SensorType[]. Parametrem tohoto příkazu je název senzoru, který musí být nejprve nadeklarován pro třídu tSensors, která definuje rozšiřující moduly v prostředí RobotC. Pro úplnost zápisu musíme k příkazu přiřadit standardizovaný název senzoru (vyhledávač IR signálů = sensorHiTechnicIRSeeker1200).

Tento typ deklarace je doporučeno provádět zkušenějším uživatelům. Začátečníkům se doporučuje deklarovat moduly pomocí Deklarace motorů a senzorů v horní liště menu.

 
tSensors IRvyhledavac;
SensorType[IRvyhledavac] = sensorHiTechnicIRSeeker1200;
 

Práce s hodnotou snímanou senzorem

Vyhledávač IR signálů vrací výstupní hodnotu, která je rovna číslu od 1 do 9. Toto číslo vyjadřuje směr kolem senzoru, ze kterého byl infračervený signál přijat. Naše zařízení nebo robot tak může podle tohoto zjištění reagovat. Můžeme například vytvořit program, ve kterém se bude robot opatřený IR vyhledávačem natáčet za zdrojem infračervených signálů.

Hodnotu zjištěnou senzorem vyjadřujeme pomocí příkazu SensorValue[]. Jeho parametrem v závorce je název senzoru, který jsme si nadefinovali v úvodní deklaraci. Možný zápis příkazu vidíte níže.

 
SensorValue[IRvyhledavac] == 5;
SensorValue[IRvyhledavac] > 5
 

Využití předdefinovaných metod

Stejně jako u ostatních rozšiřujících modulů, tak i u vyhledávače IR signálů nalezneme buďto v instalačních souborech programového prostředí RobotC nebo na stránkách výrobce (můžete si ji stáhnout ZDE) vývojovou knihovnu obsahující ovladače pro senzor. Knihovnu ovšem musíme nejprve v programu zavolat. Provedeme to v jeho úvodu následovně:

 
#include "drivers/hitechnic-irseeker-v2.h"
 

Úkolem vyhledávače infračervených signálů je vracet číslo, které označuje sektor vyjadřující směr přijetí signálu. Ve vývojové knihovně nalezneme k tomuto účelu dvě předdefinované funkce. Jejich návratový typ je v obou případech datového typu integer. První funkce se nazývá HTIRS2readDCDir(). Vrací nám číslo od 0 do 9, označující sektor, ze kterého byl signál přijat v nemodulovaném DC módu. Druhá se nazývá HTIRS2readACDir(). Její funkce je naprosto totožná jako u předchozí. Ovšem tato funkce vrací hodnotu zjištěnou v modulovaném AC módu. Parametrem uváděným v závorce je u obou volitelný název senzoru, který si uživatel definuje při deklaraci senzoru.

1 1 1 1 1 1 1 1 1 1 Hodnocení 0.00 (0 hodnocení)

Nemáte oprávnění přidat komentář.
Komentáře mohou přidávat pouze registrovaní uživatelé, kteří neporušují pravidla diskuze.