KURZ: Barevný senzor

KAPITOLY

Barevný senzor je vstupní zařízení, které umožňuje zjišťovat barvu snímaného povrchu. Senzor dokáže rozeznávat 17 různých barev. Při zjišťování vrací čísla od 0 do 17. Číslo 0 označuje černou barvu, naopak 17 je označení barvy bílé. Při zjišťování by měl být senzor umístěn několik centimetrů od snímaného předmětu, ne přímo pod pravým úhlem, aby se zdrojové světlo diody senzoru neodráželo přímo zpět do snímače. Senzor je primárně nastaven pro snímání barev doplňkových komponent stavebnice LEGO Mindstorms NXT. Může proto občas u odlišných odstínů barev dojít k nepřesnostem. 

Práce s barevným senzorem v programovacích prostředích

NXT-G

Blok pro ovládání barevného senzor

Rozcestník


Umístění bloku

Barevný senzor je řízen pomocí bloku ColorSensorDragged Color Sensor. 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ů.
 

 Hightechnic color sensor blok

 

POPIS BLOKU

Blok ColorSensorDragged Color Sensor obsahuje celkem 8 konektorů pro propojení s dalšími bloky:

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

A A - vyjadřuje nižší číselnou hodnotu označení rozmezí barev určeného k porovnání.

B B -  vyjadřuje vyšší číselnou hodnotu označení rozmezí barev určeného k porovnání.

Number Color - výstupní konektor označující číslo zjištěné barvy (0-17).

Red Red - výstupní konektor vyjadřující relativní červenou složku zjištěné barvy.

Green Green - výstupní konektor vyjadřující relativní zelenou složku zjištěné barvy.

Blue Blue - výstupní konektor vyjadřující relativní modrou složku zjištěné barvy.

Boolean Yes / No - hodnota logického datového typu vyjadřující, zda zjištěná barva je v zadaném barevném rozpětí či nikoliv.

 

Parametry bloku

Hightechnic color sensor

Port: určuje, ke kterému ze vstupních portů je barevný senzor připojen.

Compare: pomocí tažítka si navolíme, s jakým rozsahem barev chceme pracovat (0 - 17). Nad tažítkem vidíme všech 17 barev, které dokáže senzor rozpoznávat. Dále si v rozbalovacím menu vybereme, zda chceme ověřovat, jestli je zjištěná barva v zadaném rozmezí (Inside Range), které jsme si tažítkem navolili, nebo mimo něj (Outside Range).

RobotC

PŘÍKAZY PRO OVLÁDÁNÍ barevného SENZORU

Rozcestník


Deklarace SENZORU

Barevný senzor patří do skupiny rozšiřujících senzorů od společnosti Hitechnic. Pro jeho ovládání v programovacím prostředí RobotC je v základní instalaci prostředí přiložena vývojová knihovna obsahující ovladače a předdefinované funkce pro získání hodnot z barevného senzoru. Pokud ji nemáte k dispozici, můžete si ji stáhnout ZDE. Soubor knihovny se nazývá hitechnic-colour-v2 a zavoláme jej v úvodu programu následovně:

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

Poznámka: Příklad demonstruje volání knihovny umístěné ve stejném adresáři jako program. Pokud je knihovna umístěna v jiném adresáři, je nutné uvést celou cestu k souboru.

Než začneme pracovat s barevným senzorem je nutné jej nadeklarovat, aby s ním bylo možné v programovacím prostředí RobotC pracovat. Automaticky generovaný zápis deklarace 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. Budeme používat senzor, proto v deklaraci uvedeme Sensor. 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ím parametrem zápisu označujeme skupinu, do které senzor patří či jeho standardizovaný název. Jelikož barevný senzor patří mezi rozšiřující senzory, uvedeme zde sensorI2CCustom.

 
#pragma config(Sensor, S1, barevny, sensorI2CCustom)
 

Využití předdefinovaných metod

Barevný senzor umožňuje získávat několik typů dat. Pro jejich správné zpracování jsou ve vývojové knihovně definovány následující funkce (v závorce jsou uvedeny parametry včetně potřebných proměných a jejich datových typů):

  • HTCS2readColor(nazev_senzoru) - vrací číselné označení aktuálně snímané barvy,
  • HTCS2readRGB(nazev_senzoru, int cervena, int zelena, int modra) - vrací hodnoty všech tří složek barvy v režimu RGB,
  • HTCS2readHSV(nazev_senzoru, float odstin, float sytost, float jas) - vrací hodnoty všech tří složek barevného modelu HSV (hue - odstín, saturation - sytost, value - jas),
  • HTCS2readWhite(nazev_senzoru, int bila) - vrací úroveň odstínu bílé barvy,
  • HTCS2readNormRGB(nazev_senzoru, int cervena, int zelena, int modra) - vrací hodnoty všech tří složek barvy v režimu RGB v normalizovaném tvaru,
  • HTCS2readRawRGB(nazev_senzoru, bool aktivace_prisviceni, long cervena, long zelena, long modra) - vrací hodnoty všech tří složek barvy v režimu RGB vyjádřené ve formátu RAW (jedním z parametrů je přisvícení na čelní straně senzoru),
  • HTCS2readRawWhite(nazev_senzoru, bool aktivace_prisviceni, long bila) - vrací úroveň odstínu bílé barvy vyjádřenou ve formátu RAW (jedním z parametrů je přisvícení na čelní straně senzoru),
  • _HTCSsendCommand(nazev_senzoru, byte prikaz) - funkce, která slouží ke změně módu snímání.

Všechny zmíněné funkce mají při svém použití jediný společný parametr uvedený v závorce. Jedná se o volitelný název senzoru, který uživatel zadává při deklaraci senzoru.

Poznámka: Pokud budeme tyto předdefinované funkce používat, je nutné mít ve stejném adresáři jako ovladače pro barevný senzor umístěny ještě dvě další vývojové knihovny. Jedná se o ovladače s názvy common.h a common-light.h. Obsahují totiž funkce, na které odkazují některé z funkcí uvedené ve vývojové knihovně barevného 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.