KURZ: Teplotní senzor
- Podrobnosti
- Mgr. Jan Baťko
- Aktualizováno: 01.04.2014
- Zobrazení: 6288
KAPITOLY
Teplotní senzor je jedním ze senzorů, které dokáží snímat hodnoty okolního prostředí. Chování robota tak může být ovlivněno teplotou okolního prostředí. Ovládání a chování na základě snímané teploty patří mezi rozšiřující možnosti stavebnice LEGO Mindstorms NXT. Teplotní senzor dokáže pracovat s teplotou udávanou jak ve stupních Celsia tak Fahrenheita. Jeho využití je možné nejen pro konstrukci robota, ale hlavně při různých laboratorních měřeních.
PRÁCE S teplotním SENZOREM V PROGRAMOVACÍCH PROSTŘEDÍCH
NXT-G
Blok pro ovládání teplotního senzoru
Rozcestník
UMÍSTĚNÍ BLOKU
Blok Temperature Sensor je součástí základní instalace programovacího prostředí NXT-G a nalezneme ho v paletě Complete > Sensor.
POPIS BLOKU
Blok Temperature Sensor obsahuje šest konektorů pro propojení s dalšími bloky:
Port - značí, ke kterému z portů (1-4) je senzor připojen.
Trigger Point - značí zadanou vstupní hodnotu, kterou je možné porovnat s hodnotou snímanou teplotním senzorem.
Greater / Less - logická hodnota sloužící k porovnání dvou hodnot (větší nebo menší).
Yes / No - hodnota logického datového typu vyjadřující výsledek porování.
Temperature - škálovaná hodnota zjištěná senzorem (ve stupních Celsia nebo Fahrenheita).
Raw Value - udává čistou hodnotu v RAW zjištěnou senzorem na stupnici od 0 do 1024.
PARAMETRY BLOKU
Port: udává, ke kterému vstupnímu portu je teplotní senzor připojen (1-4).
Compare: slouží k zadání hodnoty, která má být porovnávána s hodnotou snímanou senzorem (větší či menší než zvolená hodnota).
Show: volba, která slouží ke zvolení jednotek, ve kterých se bude s teplotou pracovat (stupně Celsia nebo Fahrenheita).
Průběžně snímaná teplota se během chodu programu zobrazuje v levé části bloku.
RobotC
Příkazy pro ovládání teplotního senzoru
Rozcestník
Deklarace senzoru
Teplotní senzor patří mezi sezory vyráběné firmou LEGO, ovšem nepatří mezi základní senzory. Při jeho použití tak musíme v programovacím prostředí RobotC použít vývojovou knihovnu, která obsahuje ovladače a funkce sloužící k jeho ovládání. Knihovna je obsažena v zdrojových souborech instalace programovacího prostředí nebo si ji můžete stáhnout ZDE. V balíku knihoven pro rozšiřující senzory ji najdete pod názvem lego-temp.h. Její zavolání v programu poté provedeme následovně:
#include "lego-temp.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.
Po zavolání příslušné vývojové knihovny je nutné deklarovat používaný senzor. Deklarace se skládá z klíčového slova #pragma a příkazu config(), který obsahuje čtyři parametry. První parametrem je určení, o jaké zařízení se jedná. V našem případě používáme senzor, tudíž zapíšeme Sensor. Druhý parametr udává, ke kterému portu je senzor připojen (S1-S4). Třetí parametr je volitelný a uživatel si zde volí název senzoru, který je následně v programu používán jako parametr funkcí a podobně. Posledním parametrem je zařazení senzoru. Teplotní senzor patří mezi rozšiřující senzory a ty jsou v programovacím prostředí RobotC zařazeny do skupiny sensorI2CCustom.
#pragma config(Sensor, S1, LEGOTMP, sensorI2CCustom)
Využití předdefinovaných metod
Vývojová knihovna teplotního senzoru obsahuje předdefinované metody pro jeho ovládání. Snímání teplotním senzorem může být prováděno ve dvou režimech. První režim je nazýván Single Shot mode. Jedná se o běžné snímání, kdy je teplotním senzorem vracena každá okamžitá hodnota. Jeho aktivování je možné provést příkazem LEGOTMPsetSingleShot(). Druhý režim snímání se nazývá Continuous mode. Pokud senzor pracuje v tomto režimu, provede ve velice krátkém časovém úseku v řádu milisekund několik měření. Následně jako výsledek senzor vrací poslední naměřenou hodnotu. Díky tomu dokáže ověřit, zda je naměřená hodnota přesná a nemělo by tak dojít ke zkreslení. Režim aktivujeme pomocí příkazu LEGOTMPsetContinuous(). Parametrem uvedeným v závorce je u obou metod volitelný název senzoru.
Jestliže budeme používat teplotní senzor, hlavní věcí která nás bude zajímat, bude jím zjištěná teplota. Její hodnotu zjistíme v programovacím prostředí RobotC použitím příkazu LEGOTMPreadTemp(). Příkaz vyžaduje zadání dvou parametrů uvedených v závorce. První je volitelný název senzoru zadávaný při deklaraci senzoru a druhý název proměnné datového typu float, do které se zjištěná hodnota následně uloží.