KURZ: Vyhledávač IR signálů
- Podrobnosti
- Mgr. Jan Baťko
- Aktualizováno: 01.04.2014
- Zobrazení: 8045
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 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ů.
POPIS BLOKU
Programový blok vyhledávače IR signálů obsahuje celkem 8 konektorů pro propojení s ostatními bloky.
Port - vyjadřuje, ke kterému ze vstupních portů (1-4) je senzor připojen.
IRDirection - výstup, který vyjadřuje hodnotu v podobě sektoru, ze kterého byl IR signál přijat.
Mode - konektor, který značí, zda vyhledávač pracuje v módu AC nebo DC.
Detect - výstup, který v podobě logické hodnoty vyjadřuje, zda byl nebo nebyl detekován IR signál.
Strength1 - označuje hodnotu síly signálu v kanálu 1.
Strength2 - označuje hodnotu síly signálu v kanálu 2.
Strength3 - označuje hodnotu síly signálu v kanálu 3.
Strength4 - označuje hodnotu síly signálu v kanálu 4.
Strength5 - označuje hodnotu síly signálu v kanálu 5.
PARAMETRY BLOKU
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
- Nastavení typu senzoru
- Práce s hodnotou snímanou senzorem
- Využití předdefinovaných metod
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.