Využitie senzora osvetlenia

Ak tablet disponuje senzorom merajúcim intenzitu osvetlenia, ktoré implicitne využíva na automatickú reguláciu jasu displeja, dá sa využiť aj aplikáciách. Napríklad môžu reagovať na to že používateľ vyšiel z miestnosti von na slnečné svetlo, alebo opačne a prispôsobiť tomu farebný motív aplikácie, prípadne vhodne zvýšiť jas, alebo kontrast medzi pozadím a písmom, podobne ako to robia trebárs GPS navigácie po zotmení. Ako najjednoduchšia aplikácia sa ponúka luxmeter, teda merač intenzity osvetlenia. Dá sa použiť napríklad pri sledovaní ergonometrie pracovného prostredia, či má žiak, alebo študent v izbe dosť svetla na čítanie a podobne. Princíp aplikácie je triviálny – stačí periodicky snímať údaje zo snímača a zobraziť ich v číselnej, prípadne aj analógovej podobe. Windows 8.1 RT API poskytuje hodnotu priamo v luxoch

Fungovanie senzora merajúcim intenzitu osvetlenia ukážem na triviálnom príklade merača osvetlenia – luxmetra. Do kódu vložíme referenciu na menný priestor

using Windows.Devices.Sensors;

using Windows.UI.Core;

 

V kóde, napríklad v konštruktore MainPage sa najskôr pripojíme na senzor intenzity osvetlenia

private LightSensor _lightsensor;

 

public MainPage()

{


_sensor = LightSensor.GetDefault();

}

 

V obsluhe udalosti Loaded nastavíme periodicitu snímania údajov zo senzora osvetlenia a obsluhu kľúčovej udalosti – zmeny nameranej intenzity osvetlenia. Je potrebné ošetriť ak zariadenie príslušný senzor nemá. Čiže ak si používateľ aplikáciu nainštaluje na klasickom notebooku, bez senzoru, zobrazí sa mu upozornenie o tejto skutočnosti a zvyšok funkcionality bude zablokovaný.

private void pageRoot_Loaded(object sender, RoutedEventArgs e)

{

if (_sensor != null)

{

uint minInt = _sensor.MinimumReportInterval;

_sensor.ReportInterval = minInt > 100 ? minI : 100;

_sensor.ReadingChanged += new TypedEventHandler<LightSensor,

LightSensorReadingChangedEventArgs>(ReadingChanged);

}

else

{

tbErr.Text = “No light sensor found”;

}

}

 

Hodnota zo senzora sa číta v procedúre ReadingChanged vždy vtedy, keď dôjde k zmene hodnoty. V obsluhe udalosti zmeny osvetlenia nameranú hodnotu vypíšeme, prípadne ju vhodne graficky znázorníme.

async private void ReadingChanged(object sender,

LightSensorReadingChangedEventArgs e)

{

await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>

{

LightSensorReading reading = e.Reading;

int nLux = Convert.ToInt32(reading.IlluminanceInLux);

tbLight.Text = String.Format(“{0,5:0.00}”, nLux) + ” lx”;

});

}

 

Používateľské rozhranie jednoduchého luxmetra. Aby nedochádzalo k ovplyvňovaniu merania jasom displeja, bolo použité čierne pozadie. Aplikáciu nájdete vo Windows obchode pod názvom Digital Luxmeter. Momentálne je aplikácia v procese schvaľovania

Praktické využitie senzora merajúcim intenzitu osvetlenia ukážeme na príklade aplikácie typu optické počítadlo. Každý z vás videl už tzv. “optickú rampu”, čiže zariadenie počítajúce ľudí pri vstupe do priestoru, predmety na páse, kolá ktoré vykoná sólo auto na autodráhe… proste variácií je veľké množstvo. Princíp je jednoduchý – objekty budú iniciovať počítanie tým, že budú prechádzať medzi zdrojom svetla a senzorom intenzity osvetlenia vhodne umiestneného tabletu.

Hodnota zo senzora sa číta v procedúre ReadingChanged vždy vtedy, keď dôjde k zmene hodnoty. Stavový automat inkrementuje počítadlo po prechode snímača zo svetla do tmy a opäť do svetla.

Počítadlo objektov využívajúce snímač osvetlenia. Aplikáciu nájdete vo Windows obchode pod názvom Optical Counter

Vyskúšajte si to, je to hodne inšpiratívny princíp

http://apps.microsoft.com/windows/en-gb/app/optical-counter/f8c81467-fec6-474d-a034-3dd2a62875f4

Princíp je možné ďalej rozširovať, napríklad o automatické zhotovenie fotografie, ak niekto v miestnosti rozsvieti, prípadne ako dočasný optický alarm pre vystavený exemplár, ktorý bude chrániť tablet nenápadne umiestnený vedľa predmetu, pričom opodstatnenosť tabletu sa automaticky odôvodní tým, že je na ňom popis exponátu.

Reklamy

Pridaj komentár

Zadajte svoje údaje, alebo kliknite na ikonu pre prihlásenie:

WordPress.com Logo

Na komentovanie používate váš WordPress.com účet. Odhlásiť sa / Zmeniť )

Twitter picture

Na komentovanie používate váš Twitter účet. Odhlásiť sa / Zmeniť )

Facebook photo

Na komentovanie používate váš Facebook účet. Odhlásiť sa / Zmeniť )

Google+ photo

Na komentovanie používate váš Google+ účet. Odhlásiť sa / Zmeniť )

Connecting to %s


%d bloggers like this: