KURZ: Světelný senzor

KAPITOLY

Světelný senzor je vstupní zařízení sloužící pro orientaci robota. Mezi jeho hlavní funkce patří rozeznávání světla a tmy a také měření intenzity světla. Jeho hlavní uplatnění je pro navigaci robota. Díky použití světelného senzoru může robot sledovat například dráhu nakreslenou na podkladu, která je dostatečně kontrastní s okolím plochy. Senzor se k řídící jednotce NXT připojuje standardně pomocí kabelu do jednoho ze čtyř vstupních portů (1-4).

U stavebnice LEGO Mindstorms EV3 kombinuje tyto funce barevný senzor (colour senzor), který dokáže měřit intenzitu světla v okolí, intenzitu odraženého světla a zároveň rozeznávat barvy, z čehož je odvozen také jeho název.

Použití v programovacích prostředích

NXT-G

BLOK PRO OVLÁDÁNÍ MOTORU

Rozcestník


Umístění bloku

Blok LightSensorDragged Light Sensor pro ovládání světelného senzoru nalezneme v programovacím prostředí NXT-G v paletě icon completeCompleteSensorHilight Sensor.

NXTG LightSenzor rozbaleny

 

Popis bloku

Programový blok LightSensorDragged Light Sensor obsahuje celkem sedm různých konektorů pro propojení s dalšími bloky programu:

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

TriggerPoint TriggerPoint- značí nastavenou vstupní hodnotu intenzity světla, která je srovnávána s hodnotou snímanou senzorem. 

GreaterLessGreater / Less - hodnota logického datového typu sloužící pro srovnání dvou hodnot (větší nebo menší).

Floodlight Generate Light - určuje, zda během snímání hodnot svítí LED dioda senzoru.

Boolean Yes / No - hodnota logického datového typu vyjadřující výsledek porovnání.

Intensity Intensity - udává hodnotu intenzity světla snímanou senzorem na stupnici (0-100).

RawValue Raw Value - udává čistou, neškálovanou hodnotu intenzity světla snímanou senzorem na stupnici (0-1023).

Aktuální nastavení bloku vyjadřují tři ikonky. První je číslo, které se nachází vpravo nahoře a označuje vstupní port, ke kterému je senzor připojen. Níže se poté zobrazuje, zda LED dioda generuje světlo Floodlight a také úroveň intensity světla Intensity.

 

Parametry bloku

NXTG LightSenzor

Programový blok světelného senzoru umožňuje nastavit následující parametry:

Port: slouží k určení vstupního portu řídící jednotky, ke kterému je senzor připojen.

Compare: sekce slouží k nastavení vstupních dat určených ke srovnání. Pomocí tažítka je možné nastavit intenzitu světla. Volby na obou koncích tažítka umožňují nastavit, jestli chceme zjišťovat, zda světlo snímané senzorem je tmavší než nastavená hodnota intenzity či světlejší. Znaménko větší či menší lze volit i o krok níže a stejně tak zadávat ručně hodnotu intenzity.

Function: zaškrtnutím volby Generate light (generovat světlo) udělujeme příkaz k rozsvícení vláknové žárovky na čelní straně senzoru.

Po spuštění programu začne světelný senzor snímat hodnotu intenzity světla ve svém okolí. Zjištěná hodnota se průběžně zobrazuje ve žlutém poli na levé straně programového bloku (na obrázku hodnota 34).

RobotC

Příkazy pro ovládání světelného senzoru

Světelný senzor obsahuje vláknovou žárovku, jejíž svit lze programově ovládat. Před každým použití jej musíme správně nakonfigurovat a zajistit tak bezproblémový chod. Snímané hodnoty lze zpracovávat ve dvou režimech. První je klasický a druhý ve formátu RAW.

Rozcestník


Nastavení senzoru

Ještě než začneme v programovacím prostředí RobotC pracovat se světelným senzorem, je nutné ho nakonfigurovat. Zápis konfigurace je uveden níže. Skládá se z klíčového slova #pragma a příkazu config(), který obsahuje čtyři parametry. První parametr značí, o jaký druh zařízení se jedná. V našem případě je to senzor (Sensor). Další parametr označuje, do jakého portu řídící jednotky je senzor připojen (S2 = port 2). Následuje volitelný název senzoru (svetelny). Posledním parametrem je druh senzoru (sensorLightActive = světelný senzor). Tato deklarace je v úvodu každého programu, kde budeme pracovat se senzory nezbytná.

 
#pragma config(Sensor, S2, svetelny, sensorLightActive) // Kod je automaticky generovan pruvodcem konfiguraci RobotC.
 

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


Generování světla žárovkou

Snímání intenzity světla světelným senzorem může být doprovázeno světlem z žárovky umístěné na přední části senzoru. Parametr, který vyjadřuje činnost či nečinnost žárovky se nazývá sensorLightActive nebo sensorLightInactive. Tento parametr se používá ve spojení s příkazem SensorType[], u kterého je nutné v závorce zadat název daného senzoru, který jsme si nadefinovali v úvodu programu.

 
SensorType[Svetelny] = sensorLightActive; // LED dioda senzoru generuje po celou dobu chodu programu svetlo.
SensorType[Svetelny] = sensorLightInactive; // LED dioda senzoru je neaktivni, negeneruje svetlo. 
 

Nastavení hodnoty intenzity světla v procentech

Volitelná hodnota intenzity světla, která je určena k programovému zpracování a porovnání s hodnotou snímanou senzorem se nastavuje pomocí příkazu SensorValue[]. V závorce je nutné uvést název senzoru, který jsme si nadeklarovali v úvodu programu. Rozsah číselné hodnoty je zadáván pomocí porovnávacích znamének, která značí hodnotu větší, menší nebo rovnu zadané hodnotě (>, < nebo =).

 
SensorValue[Svetelny] < 45; // Hodnota intenzity svetla je nizsi nez 45.
SensorValue[Svetelny] > 45; // Hodnota intenzity svetla je vyssi nez 45.
SensorValue[Svetelny] = 45; // Hodnota intenzity svetla je rovna 45.
 

Využití hodnoty intenzity světla v RAW

Hodnota udávaná jako raw, je vyjádření hodnoty přečtené senzorem v čisté, neškálované podobě. Lze s ní pracovat v rozmezí od 0 do 1023. Pro vyjádření této hodnoty slouží příkaz SensorRaw[]. V závorce je nutné uvést název senzoru, který jsme si nadeklarovali v úvodu programu. Stejně jako tomu bylo u předchozího vyjádření hodnot v procentech, je možné i zde ovlivnit rozsah hodnot pomocí porovnávacích znamének.

 
SensorRaw[Svetelny] < 512; // Hodnota intenzity svetla v RAW je nizsi nez 512. 
SensorRaw[Svetelny] > 512; // Hodnota intenzity svetla v RAW je vyssi nez 512.
SensorRaw[Svetelny] = 512; // Hodnota intenzity svetla v RAW je rovna 512.
 

EV3

Blok pro práci s barevným senzorem 

Rozcestník


Umístění bloku pro práci s barevným senzorem

Programový blok Colour Sensor je umístěn v paletě Sensor Sensor.

UMISTENI BAREVNY


Změna režimu

Programový blok Colour Sensor můžeme využívat ve třech základních režimech. Přepínání mezi nimi se provádí pomocí tlačítka v levé spodní části bloku (červeně zvýrazněno).

REZIMY


Přidání vstupního portu 

Kliknutím do pole pro výběr vstupního portu v pravém horním rohu programového bloku a vybráním možnosti Wired přidáme do programového bloku nový vstupní port Identification 515 Port Port (červeně zvýrazněno).

WIRED


Režimy programového bloku

Measure - Colour (měření barvy)

Režim sloužící k identifikaci barvy snímaného povrchu. Programový blok obsahuje v tomto režimu jediný výstupní port, který vrací číselnou návratovou hodnotu odpovídající zjištěné barvě.

MEASURE COLOR

Identification 501 MeasuredColorColour - výstupní port vracející číselnou návratovou hodnotu odpovídající zjištěné barvě. Návratové hodnoty mohou být následující:

  • 0 = žádná barva
  • 1 = černá
  • 2 = modrá
  • 3 = zelená 
  • 4 = žlutá 
  • 5 = červená
  • 6 = bílá
  • 7 = hnědá 

 

 

Measure - Reflected Light Intensity

Režim sloužící k měření intenzity světla odraženého od aktuálně snímaného povrchu. Programový blok obsahuje v tomto režimu jediný výstupní port.

REFLECTED LIGHT

Identification 502 MeasuredLight Light - návratovou hodnotou výstupního portu je číselná hodnota odpovídající intenzitě odráženého světla snímaného povrchu.

 

 

Measure - Ambient Light Intensity

Režim sloužící k měření intenzity světla v okolí. Programový blok obsahuje v tomto režimu jediný výstupní port.

AMBIENT LIGHT

Identification 502 MeasuredLightLight - návratovou hodnotou výstupního portu je číselná hodnota odpovídající intenzitě světla snímaného z okolního prostředí. 

 

 

Compare - Colour

Režim sloužící k ověření, zda barva snímaného povrchu odpovídá zadané/ým barvě/ám. Programový blok obsahuje v tomto režimu jeden vstupní a dva výstupní porty.

COMPARE COLOR

Identification 019 Color NoColor Set of Colours - vstupní port sloužící k zadání jedné či více barev. Při snímání se bude zjišťovat, zda snímaný povrch odpovídá zadané barvě/ám.

Identification 030 ComparisonType EqualCompare Result - výstupní port vracející logickou návratovou hodnotu podle toho, zda byla zadaná barva/y detekována/y (True) nebo nikoliv (False).

Identification 501 MeasuredColorColour - výstupní port vracející číselnou návratovou hodnotu odpovídající zjištěné barvě.

 

 

Compare - Reflected Light Intensity

Režim sloužící k porování zjištěné intenzity odraženého světla se zadanou prahovou hodnotou. Programový blok obsahuje v tomto režimu dva vstupní a dva výstupní porty.

COMPARE REFLECTED

Identification 034 ComparisonType LessThan Compare Type - výběr způsobu porovnání zjištěné hodnoty s prahovou. Vybíráme, zda chceme zjistit, jestli je snímaná hodnota menší, větší nebo rovna prahové. 

Identification 412 Threshold Less 0Threshold Value - prahová hodnota, s kterou se porovnává intenzita odraženého světla zjištěná senzorem.

Identification 030 ComparisonType EqualCompare Result - výstupní port vracející logickou návratovou hodnotu v závislosti na tom, zda zjištěná hodnota byla v námi požadované intenzitě vůči prahové (True) či nikoliv (False).

Identification 502 MeasuredLightLight - návratovou hodnotou výstupního portu je číselná hodnota odpovídající intenzitě světla odraženého od snímaného povrchu. 

 

 

Compare - Ambient Light Intensity

Režim sloužící k porování zjištěné intenzity světla v okolí se zadanou prahovou hodnotou. Programový blok obsahuje v tomto režimu dva vstupní a dva výstupní porty.

COMPARE AMBIENT

 Identification 034 ComparisonType LessThan Compare Type - výběr způsobu porovnání zjištěné hodnoty s prahovou. Vybíráme, zda chceme zjistit, jestli je snímaná hodnota menší, větší nebo rovna prahové. 

Identification 412 Threshold Less 0Threshold Value - prahová hodnota, s kterou se porovnává intenzita snímaného světla z okolí zjištěná senzorem.

Identification 030 ComparisonType EqualCompare Result - výstupní port vracející logickou návratovou hodnotu v závislosti na tom, zda zjištěná hodnota byla v námi požadované intenzitě vůči prahové (True) či nikoliv (False).

Identification 502 MeasuredLightLight - návratovou hodnotou výstupního portu je číselná hodnota odpovídající intenzitě snímaného světla v okolí senzoru. 

 

 

Calibrate Reflected Light Intensity - Minimum

Režim sloužící pro kalibraci senzoru, díky kterému nastavíme prahovou hodnotu, která bude senzorem dále vyhodnocována jako minimální a bude tedy označována jako 0. Programový blok v tomto režimu obsahuje jeden vstupní port.

MINIMUM

Identification 502 MeasuredLightValue - hodnota zadávaná při kalibraci senzoru. Dále bude při snímání chápána jako minimum.

 

 

Calibrate Reflected Light Intensity - Maximum

Režim sloužící pro kalibraci senzoru, díky kterému nastavíme prahovou hodnotu, která bude senzorem dále vyhodnocována jako maximální a bude tedy označována jako 100. Programový blok v tomto režimu obsahuje jeden vstupní port.

MAXIMUM

 Identification 502 MeasuredLightValue - hodnota zadávaná při kalibraci senzoru. Dále bude při snímání chápána jako maximum.

 

 

Calibrate Reflected Light Intensity - Reset

Režim sloužící ke zrušení všech změn provedených při kalibraci a tudíž navrácení senzoru opět do výchozího nastavení.

RESET

1 1 1 1 1 1 1 1 1 1 Hodnocení 4.00 (1 hodnocení)

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