În acest articol,
Senzorii permit o cerere pentru a obține informații cu privire la interacțiunea dispozitivului cu lumea fizică pe care-l înconjoară. Senzorii pot spune aplicarea cu privire la direcția de deplasare, poziția în spațiu și deplasarea aparatului. Senzorii vor ajuta să facă jocul, aplicarea realitate augmentată, sau aplicarea cu scop general mai convenabil și interactiv. Ele oferă o formă unică de intrare, de exemplu, folosind un aparat de mișcare pentru a comanda caractere pe ecran sau pentru a simula prezența în habitaclu (dispozitivul îndeplinește funcția roții).
De obicei, trebuie să decideți mai întâi dacă cererea se bazează exclusiv pe utilizarea unor senzori sau senzori se vor efectua numai funcții auxiliare mecanism de control. De exemplu, într-un simulator de conducere, în care dispozitivul este folosit ca un volan virtual, jocul poate fi controlat cu ajutorul unui ecran GUI - în acest caz, aplicația funcționează independent de senzori de prezență în sistem. Pe de altă parte, labirintul înclinat pot fi create numai pentru sistemele cu senzori respectivi. Ai nevoie de a lua o decizie strategică, care este, pentru a stabili dacă cererea va depinde în întregime pe senzori. Rețineți că circuitul de control folosind mouse-ul sau atingere oferă un control mai bun, dar nu dă un sentiment plin de imersiune în joc.
Un minut dev - o prezentare generală a senzorului
Senzori dispozitive care operează pe baza magnetometrului (busolă, un senzor de înclinare și un senzor de orientare) poate necesita calibrare din cauza expunerii la factorii de mediu. Enumerarea MagnetometerAccuracy poate ajuta la determinarea acțiunii corespunzătoare atunci când dispozitivul nu necesită calibrare.
Acești senzori OrientationSensor clase sunt definite de arbori lor de sprijin. Aceste axe sunt definite unitate de peisaj și rotiți cu ea.
Aflați cum să utilizați accelerometrul pentru a răspunde la mișcările utilizatorului.
Aflați cum să utilizați busola, puteți determina direcția curentă.
Aflați cum să utilizați giroscopul pentru a urmări modificările la mișcările de utilizator.
Aflați cum să utilizați un înclinometru pentru a determina rotirile despre transversale, longitudinale și axele verticale.
Aflați cum să utilizați senzorul de lumină pentru a detecta modificări ale nivelurilor de lumină.
Aflați cum să utilizați senzori de poziție în spațiu pentru a determina orientarea dispozitivului.
senzor de procesare lot
Unii senzori sprijină lot de prelucrare. Aceasta depinde de senzor individuale disponibile. Atunci când senzorul pune în aplicare de prelucrare a lot, se colectează mai multe puncte de date pentru un anumit interval de timp, și apoi transmite aceste date simultan. Acest principiu de funcționare diferit de comportamentul normal atunci când senzorul raportează rezultatele ca efectuează numai citirea. Luați în considerare următoarea schemă, în care arată modul în care datele sunt colectate si livrate, mai întâi la transportul maritim normal și apoi, când pachete.
Principalul avantaj al senzorului de pachete de prelucrare - crește durata de viață a bateriei. În cazul în care datele nu sunt trimise la o dată, economisind puterea procesorului și nu este nevoie de prelucrare imediată. componente ale sistemului pot fi în modul de repaus, atât timp cât acestea sunt necesare, care oferă economii substanțiale de energie.
Puteți influența cât de des senzorul trimite pachetele prin ajustarea întârziere. De exemplu, senzorul accelerometru are ReportLatency proprietate. Dacă această proprietate este setat, senzorul va trimite date după o anumită perioadă de timp de aplicare. Aveți posibilitatea de a controla cantitatea de date acumulate pentru această întârziere prin setarea ReportInterval de proprietate.
Există mai multe avertismente ale setărilor de întârziere aducere aminte. În primul rând, fiecare senzor are MaxBatchSize proprietate. că acesta poate susține ca o funcție a senzorului în sine. Acesta este numărul de evenimente care senzorul poate fi stocate în memoria cache înainte ca el va fi obligat să le trimită. Dacă multiplica MaxBatchSize pe ReportInterval. ReportLatency valoare maximă este determinată. Dacă specificați o valoare mai mare decât aceasta, întârzierea maximă va fi utilizată pentru a evita pierderea de date. În plus, întârzierea necesară poate fi setată separat pentru mai multe aplicații. Pentru a satisface cerințele tuturor aplicațiilor vor fi utilizate în timpul cel mai scurt timp. În legătură cu faptele enumerate mai sus întârziere pe care le-ați stabilit în cerere, nu se poate compara întârzierea observată.
În cazul în care senzorul de raportare utilizează un lot, ca urmare a unui apel GetCurrentReading pachet de date curent vor fi eliminate și a lansat o nouă perioadă de întârziere.
accelerometru
Accelerometru senzor măsoară accelerația gravitației de-a lungul axelor X, Y și Z pentru dispozitiv și este ideal pentru aplicatii simple, bazate pe mișcările. Vă rugăm să rețineți că valoarea „accelerația gravitațională“ include accelerația datorită forței de gravitație. Dacă dispozitivul este într-o stare de orientare în SimpleOrientation cu fața în sus pe masă, apoi indicația axei accelerometru Z va fi egală cu -1 G. Astfel accelerometru nevoie nu numai că măsoară accelerarea coordonatelor, adică, viteza de schimbare a vitezei. La utilizarea accelerometrului nevoie pentru a înțelege diferența dintre vectorul accelerației gravitaționale (gravitație) și vectorul accelerației liniare (mișcare). Vă rugăm să rețineți că ar trebui să conducă la un vector 1 accelerație gravitațională pentru un dispozitiv staționar.
Următoarele diagrame arată:
- V1 = 1 = forța vector sub acțiunea gravitației terestre
- Vector V2 = 2 = -Z axă a corpului dispozitivului (direcționat spre exterior de la suprafața posterioară)
- Θi = Unghi = unghiul dintre axa corpului dispozitivului și vectorul accelerație gravitațională -Z
Un exemplu de aplicație care utilizează un accelerometru - un joc în care o minge role pe ecran, în direcția în care este înclinată dispozitiv (gravitație vector accelerație). Acest principiu de funcționare este foarte similar cu funcționalitatea senzorului înclinometru. Acțiunea poate fi realizată cu ajutorul acestui senzor folosind la X rotații pe axa Y. și combinații ax Utilizarea unui vector al accelerației accelerometrului gravitația simplifică sarcina deoarece furnizează un vector de înclinare matematic controlabile simplu pentru dispozitiv. Un alt exemplu - o aplicație care face o grevă bici de sunet, atunci când utilizatorul scutură dispozitivul brusc (vectorul accelerație liniară).
senzor de acțiune
Senzorul de acțiune determină starea actuală a dispozitivelor conectate. Acest senzor este adesea utilizat în aplicații de fitness care determină atunci când un utilizator se execută sau vine cu dispozitivul. Lista de acțiuni posibile, care pot fi detectate de API-ul senzorului, consultați. În secțiunea ActivityType.
altimetru
Senzorul altimetru returnează o valoare care indică înălțimea senzorului. Acest senzor vă permite să monitorizeze modificarea înălțimii în metri deasupra nivelului mării. Un exemplu de o aplicație care ar folosi această aplicație poate servi pentru jogging, care urmărește modificări în înălțime în timpul funcționării pentru a calcula caloriile arse. În acest caz, datele senzorilor pot fi combinate cu acțiunea citirile senzorilor pentru a îmbunătăți acuratețea datelor monitorizate.
Barometrul permite o cerere pentru a primi lecturi barometrice. Aceste date pot fi utilizate pentru a determina aplicarea vreme presiunea atmosferică actuală. Acest senzor poate fi utilizat pentru a obține mai multe informații, cum ar fi prognoza meteo.
Senzorul Compass este utilizat de obicei în aplicații care afișează Roza Vetrov sau o hartă de navigație.
Gyro măsoară viteza unghiulară a axele X, Y și Z. Funcțiile sale pot fi utilizate în mișcări simple de aplicații bazate, a căror funcționare nu se bazează pe determinarea orientării în spațiu, și se rotește la o viteză diferită. datele girometru pot fi distorsionate când zgomotul sau date la o deplasare constantă de-a lungul uneia sau mai multor axe. Trebuie să solicite datele de la accelerometru pentru a verifica dacă dispozitivul este în mișcare, și de a determina dacă datele sunt distorsionate ca urmare a deplasării a girometru, și apoi să modifice cererea.
Exemplu de aplicație utilizând girometru - joc în care roata de ruletă este acționat de o rotație bruscă a dispozitivului.
înclinaflie
Senzorul Inclinometer determină unghiul de rotație al dispozitivului axelor X, Y și Z, și este cel mai potrivit pentru aplicații care utilizează date privind poziția dispozitivului în spațiu. Valorile unghiurilor de rotație ale axelor X și Y sunt determinate de vectorul accelerația gravitațională și accelerometru girometru date. Valoarea de rotație a axei Z este stabilită în funcție de magnetometru și girometru (ca direcție busolă). Inclinometers furnizează date îmbunătățite cu privire la orientarea în mod ușor de înțeles. Dacă aveți nevoie de informații cu privire la poziția dispozitivului în spațiu, dar nu necesită prelucrarea datelor de la senzori, folosind inclinometers.
Inclinometri pot fi folosite de aplicații care modifică performanțele sale în funcție de orientarea dispozitivului. Aplicația este afișată pe planul ecranului dispozitivului, a căror formă variază în funcție de rotația pe trei axe ale dispozitivului se vor utiliza, de asemenea, citirile de înclinare.
senzor de lumină
Senzor de lumină poate determina gradul de lumină ambientală. Permite unei aplicații să monitorizeze schimbările în condiții de lumină, în care se află dispozitivul. De exemplu, utilizatorul poate obține tableta de la interior la aer liber pe o zi însorită. aplicație inteligentă poate utiliza valoarea obținută de la senzor pentru a mări contrastul dintre fundal și textul afișat. Datorită acestui fapt, conținutul ecranului în mod clar vizibile nu numai în cameră, dar la o lumina puternica.
Gabaritul poziției în spațiu
Poziția dispozitivului în spațiu, și exprimat în termeni de quaternion de conversie a matricei de rotație. Poziția senzorului în spațiu cu o precizie ridicată determină locația dispozitivului în spațiu în raport cu direcția absolută. senzor de date poziție în spațiul de date sunt derivate de la accelerometru si senzori girometru magnetometru. Valorile înclinometrului și senzorul de compas poate fi obținut din valorile quaternion. Quaternions și matricea de transformare de rotație este foarte potrivit pentru transformări matematice complexe și sunt adesea folosite în programarea grafică. Pentru aplicațiile care utilizează transformări complexe trebuie selectate senzori de poziție în spațiul respectiv, de transformare cât mai multe se bazează pe matrici de transformare și rotație quaternions.
Senzori de proximitate în spațiu sunt frecvent utilizate în aplicații de realitate augmentată, care realizează suprapunerea datelor digitale pe imaginea din jurul obiectului în direcția indicat de suprafața posterioară a dispozitivului.
Senzorul Pedometru urmărește numărul de pași luate de către utilizator pentru dispozitivul conectat. Senzorul urmărește numărul de pași pentru o anumită perioadă de timp. Unele aplicații pentru fitness urmări numărul de pași luate pentru a asista utilizatorul în stabilirea și atingerea diferitelor obiective. Aceste date pot fi apoi colectate și stocate în scopul de a arăta progresul în timp.
senzor de proximitate
Senzorul de proximitate poate fi utilizat pentru a determina proximitatea obiectelor. În plus față de determinarea poziției obiectului în zona de releu, un senzor de proximitate poate indica, de asemenea, distanța față de obiectul detectat. De exemplu, această caracteristică poate fi utilizată de aplicații care au nevoie pentru a ieși din modul de repaus atunci când un utilizator într-un anumit interval. Aparatul poate fi într-un modul de repaus de economisire a energiei până când senzorul de proximitate detectează un obiect. Dispozitivul poate intra într-o stare mai activă.
Senzorul de poziție simplă în spațiu
Senzorul SimpleOrientationSensor monitorizează poziția unui anumit dispozitiv (sau o suprafață frontală sau posterioară) în cadranul curent. El are șase stări posibile SimpleOrientation (NotRotated. Rotated90. Rotated180. Rotated270.) Cu fața în sus și cu fața în jos.
aplicație de citire care se schimbă imaginea de pe ecran, în funcție de modul în care utilizatorul deține dispozitivul - în paralel sau perpendicular pe suprafața pământului - să se utilizeze valorile obținute de la senzorul SimpleOrientationSensor pentru a determina modul în care utilizatorul deține dispozitivul.
Exemplele care demonstrează utilizarea mai multor senzori diferiți cm. În exemplele de senzori pentru Windows.