Hirdetés

Alkalmazásfejlesztés badára: Szenzorok kezelése 2.

Mi maradt ki?

Az előző két bejegyzésben két eltérő, szenzorokra épülő megoldást néztünk: az elsőben a döntésérzékelő (tilt sensor) segítségével három előre definiált mozgási mintát (snap, shake, double tap) detektáltunk, a másodikban pedig a giroszenzor által küldött adatokat figyeltük. Ezek mellett azonban rengeteg szenzor található még a badát futtató készülékekben, a mai bejegyzésben a teljesség igénye nélkül vesszük végig ezeket. Az egyes szenzorokat az előző posztban ismertetett módszerrel tudjuk kezelni, azaz egy SensorManager pédlányhoz hozzá kell adnunk a típusát, majd az OnDataReceived() függvényen keresztül feldolgozhatjuk a beérkezett adatokat.

Gyorsulásérzékelő

Az angolul Acceleration sensornak becézett érzékelő a telefon helyzetéhez képest a relatív sebességbeli változásokat figyeli, segítségével a telefon irányát is meg lehet határozni. A mértékegysége a g, ami körülbelül 9,81 m/s2-tel egyenlő. Mivel a Föld nevű bolygón vagyunk, nyugalmi helyzetben is lesz egy 1 g-s alap gyorsulás a Föld középpontja felé a gravitáció következtében, ehhez adódnak hozzá a telefon mozgatásából adódó erők. A szenzor a Descartes-koordinátarendszer három tengelyének megfelelő komponensekre bontja fel a mért az adatokat, az eredmények -2 g és +2 g között lehetnek.

A gravitációs erőből adódó (nagyjából konstans) gyorsulást és a felhasználói interakciókból következő pillanatnyi gyorsulásváltozást a zirányuk szempontjából is meg kell különböztetnünk. Míg utóbbi eredménye mindig a mozgás irányvektorának megfelelő irányú lesz, a gravitáció következtében fellépő gyorsulás a gravitáció irányával ellentétes lesz. Tehát a telefont függőlegesen tartva a G erő lefelé húzza azt (azaz az erő iránya a negatív Y tengelyével egyezik meg), viszont a gyorsulásérzékelő által detektált eredmény az Y tengely pozitív félegyenesével lesz párhuzamos.

Mágnes-szenzor

A mágneses teret figyeli a Descartes-koordinátarendszer tengelyeinek megfelelő irányokban, azaz egy elektronikus iránytűt kapunk, ez által az irány is meghatározható. Hogy pontosak legyünk, a szenzor a mágneses tér erejét és annak változásait figyeli, amelyet sok környezeti tényező is befolyásolhat: a pillanatnyi időjárás, a közeli mágneses mezők és a földrajzi  helyzetünk következtében is eltérő eredményeket kaphatunk.

A gyorsulásszenzorhoz hasonlóan az angolul magnetic sensornak becézett érzékelő is a telefon testéhez képest relatív eredményeket ad, a mágneses tér irányvektorát ennek megfelelően három (X, Y és Z) komponensre bontja fel. A mértékegysége a μT (mikrotesla, a Nikola Tesla-ról elnevezett SI-mértékegység a mágneses indukció kifejezésére szolgál), az előző érzékelők által kezelt eredményekkel ellentétben ezt nem szorították korlátok közé.

Közelség-érzékelő

Közelség-érzékelővel valószínűleg mindenki találkozott, aki használt már érintőképernyős telefont: ez az a szenzor, amely általában a képernyő felett helyezkedik el, és lekapcsolja a kijelzőt, ha telefonálunk. Ez arra jó, hogy telefonbeszélgetés közben ne érintkezzen az arcbőrünk az érintést detektálni képes képernyővel, ez által ne rakjul le véletlen a telefont stb. Az angolul proximty sensor névre hallgató érzékelő egy boolean értékkel tér vissza, ami jelzi, hogy van-e valamilyen objektum az érzékelő előtt, tehát a klasszikus értelemben vett közelség-érzékelésre, azaz a tárgyak távolságának megállapításáranem alkalmas.

Időjárás-szenzor

Az időjárárás-érzékelő a szenzorok fekete báránya, ugyanis nem egy konkrét szenzoron alapul a működése, hanem egy internetes kiszolgálótól (a bada esetében ez a WeatherBug) kéri el az a napi időjárási adatokat és az előrejelzéseket. Ettől függetlenül ezt is a SensorManager-en keresztül menedzselhetjük, így említés szintjén itt is kitérünk rá, viszont vele bővebben is fogunk foglalkozni a közeli jövőben.

dr. Kind

Előzmények