सेंसर प्रकार

यह खंड सेंसर अक्षों, बेस सेंसर और समग्र सेंसर (गतिविधि, रवैया, अनकैलिब्रेटेड और इंटरैक्शन) का वर्णन करता है।

सेंसर अक्ष

कई सेंसरों से सेंसर घटना मान एक विशिष्ट फ्रेम में व्यक्त किए जाते हैं जो डिवाइस के सापेक्ष स्थिर होता है।

मोबाइल डिवाइस अक्ष

सेंसर एपीआई केवल स्क्रीन के प्राकृतिक ओरिएंटेशन से संबंधित है (डिवाइस की स्क्रीन ओरिएंटेशन बदलने पर अक्षों की अदला-बदली नहीं की जाती है।

मोबाइल उपकरणों के लिए सेंसर एपीआई की समन्वय प्रणाली

चित्र 1. सेंसर एपीआई द्वारा उपयोग की जाने वाली समन्वय प्रणाली (मोबाइल डिवाइस के सापेक्ष)।

मोटर वाहन कुल्हाड़ियाँ

एंड्रॉइड ऑटोमोटिव कार्यान्वयन में, अक्षों को वाहन बॉडी फ्रेम के संबंध में परिभाषित किया गया है। वाहन संदर्भ फ्रेम का मूल रियर एक्सल का केंद्र है। वाहन संदर्भ फ़्रेम इस प्रकार उन्मुख है कि:

  • एक्स-अक्ष दाईं ओर इंगित करता है और एक क्षैतिज तल पर है, जो समरूपता के वाहन तल के लंबवत है।
  • Y-अक्ष आगे की ओर इंगित करता है और क्षैतिज तल पर है।
ऑटोमोटिव उपकरणों के लिए सेंसर एपीआई की समन्वय प्रणाली

चित्र 2. सेंसर एपीआई द्वारा उपयोग की जाने वाली समन्वय प्रणाली (ऑटोमोटिव डिवाइस के सापेक्ष)।

वाहन संदर्भ फ़्रेम एक दाएं हाथ की समन्वय प्रणाली है। इसलिए, Z-अक्ष ऊपर की ओर इंगित करता है।

संदर्भ फ़्रेम का Z-अक्ष गुरुत्वाकर्षण से संरेखित है, जिसका अर्थ है कि X-अक्ष और Y-अक्ष दोनों क्षैतिज हैं। परिणामस्वरूप, Y-अक्ष हमेशा सामने वाले धुरा से नहीं गुजर सकता है।

बेस सेंसर

बेस सेंसर प्रकारों का नाम उन भौतिक सेंसरों के नाम पर रखा गया है जिनका वे प्रतिनिधित्व करते हैं। ये सेंसर एकल भौतिक सेंसर से डेटा रिले करते हैं (संयुक्त सेंसर के विपरीत जो अन्य सेंसर से डेटा उत्पन्न करते हैं)। बेस सेंसर प्रकारों के उदाहरणों में शामिल हैं:

  • SENSOR_TYPE_ACCELEROMETER
  • SENSOR_TYPE_GYROSCOPE
  • SENSOR_TYPE_MAGNETOMETER

हालाँकि, बेस सेंसर समान नहीं हैं और उन्हें उनके अंतर्निहित भौतिक सेंसर के साथ भ्रमित नहीं किया जाना चाहिए। बेस सेंसर का डेटा भौतिक सेंसर का कच्चा आउटपुट नहीं है क्योंकि सुधार (जैसे पूर्वाग्रह मुआवजा और तापमान मुआवजा) लागू होते हैं।

उदाहरण के लिए, निम्नलिखित उपयोग के मामलों में बेस सेंसर की विशेषताएं उसके अंतर्निहित भौतिक सेंसर की विशेषताओं से भिन्न हो सकती हैं:

  • एक जाइरोस्कोप चिप को 1 डिग्री/सेकंड की पूर्वाग्रह सीमा के लिए रेट किया गया है।
    • फ़ैक्टरी अंशांकन के बाद, तापमान क्षतिपूर्ति और पूर्वाग्रह क्षतिपूर्ति लागू की जाती है, एंड्रॉइड सेंसर का वास्तविक पूर्वाग्रह कम हो जाएगा, एक बिंदु तक हो सकता है जहां पूर्वाग्रह 0.01 डिग्री/सेकंड से नीचे होने की गारंटी है।
    • इस स्थिति में, हम कहते हैं कि एंड्रॉइड सेंसर का पूर्वाग्रह 0.01 डिग्री/सेकंड से कम है, भले ही अंतर्निहित सेंसर की डेटा शीट में 1 डिग्री/सेकंड कहा गया हो।
  • 100 uW की बिजली खपत वाला बैरोमीटर।
    • क्योंकि उत्पन्न डेटा को चिप से SoC तक ले जाने की आवश्यकता होती है, बैरोमीटर एंड्रॉइड सेंसर से डेटा इकट्ठा करने की वास्तविक बिजली लागत बहुत अधिक हो सकती है, उदाहरण के लिए 1000 uW।
    • इस स्थिति में, हम कहते हैं कि एंड्रॉइड सेंसर की बिजली खपत 1000 uW है, भले ही बैरोमीटर चिप लीड पर मापी गई बिजली खपत 100uW है।
  • एक मैग्नेटोमीटर जो कैलिब्रेट करने पर 100uW की खपत करता है, लेकिन कैलिब्रेट करने पर अधिक खपत करता है।
    • इसके अंशांकन रूटीन में जाइरोस्कोप को सक्रिय करने, 5000 यूडब्ल्यू की खपत करने और कुछ एल्गोरिदम चलाने की आवश्यकता हो सकती है, जिसकी लागत अन्य 900 यूडब्ल्यू होगी।
    • इस स्थिति में, हम कहते हैं कि (मैग्नेटोमीटर) एंड्रॉइड सेंसर की अधिकतम बिजली खपत 6000 uW है।
    • इस मामले में, औसत बिजली खपत अधिक उपयोगी उपाय है, और यह एचएएल के माध्यम से सेंसर की स्थिर विशेषताओं में रिपोर्ट किया गया है।

accelerometer

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER) एक नॉन-वेक-अप सेंसर लौटाता है

एक्सेलेरोमीटर सेंसर तीन सेंसर अक्षों के साथ डिवाइस के त्वरण की रिपोर्ट करता है। मापे गए त्वरण में भौतिक त्वरण (वेग में परिवर्तन) और गुरुत्वाकर्षण दोनों शामिल हैं। माप Sensors_event_t.acceleration के x, y, और z फ़ील्ड में रिपोर्ट किया गया है।

सभी मान एसआई इकाइयों (एम/एस^2) में हैं और तीन सेंसर अक्षों के साथ डिवाइस के त्वरण को घटाकर गुरुत्वाकर्षण बल को मापते हैं।

यहाँ उदाहरण हैं:

  • मुक्त गिरावट में (x, y, z) का मान 0 के करीब होना चाहिए।
  • जब उपकरण एक मेज पर सपाट पड़ा होता है और इसे बाईं ओर दाईं ओर धकेला जाता है, तो x त्वरण मान सकारात्मक होता है।
  • जब उपकरण एक मेज पर सपाट होता है, तो z के अनुदिश त्वरण मान +9.81 alo होता है, जो उपकरण के त्वरण (0 m/s^2) शून्य से गुरुत्वाकर्षण बल (-9.81 m/s^2) के अनुरूप होता है।
  • जब उपकरण एक मेज पर सपाट होता है और आकाश की ओर धकेला जाता है, तो त्वरण मान +9.81 से अधिक होता है, जो उपकरण के त्वरण (+A m/s^2) शून्य से गुरुत्वाकर्षण बल (-9.81 मीटर) के अनुरूप होता है। /एस^2).

रीडिंग का उपयोग करके अंशांकित किया जाता है:

  • तापमान प्रतिकरण
  • ऑनलाइन पूर्वाग्रह अंशांकन
  • ऑनलाइन स्केल अंशांकन

बायस और स्केल कैलिब्रेशन को केवल तभी अपडेट किया जाना चाहिए जब सेंसर निष्क्रिय हो, ताकि स्ट्रीमिंग के दौरान मूल्यों में उछाल से बचा जा सके।

एक्सेलेरोमीटर यह भी रिपोर्ट करता है कि वह sensors_event_t.acceleration.status के माध्यम से अपनी रीडिंग कितनी सटीक होने की उम्मीद करता है। इस फ़ील्ड के संभावित मानों पर अधिक जानकारी के लिए SensorManager के SENSOR_STATUS_* स्थिरांक देखें।

परिवेश का तापमान

रिपोर्टिंग-मोड: ऑन-चेंज

getDefaultSensor(SENSOR_TYPE_AMBIENT_TEMPERATURE) एक नॉन-वेक-अप सेंसर लौटाता है

यह सेंसर परिवेश (कमरे) का तापमान डिग्री सेल्सियस में प्रदान करता है।

चुंबकीय क्षेत्र सेंसर

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD) एक नॉन-वेक-अप सेंसर लौटाता है

SENSOR_TYPE_GEOMAGNETIC_FIELD == SENSOR_TYPE_MAGNETIC_FIELD

एक चुंबकीय क्षेत्र सेंसर (जिसे मैग्नेटोमीटर के रूप में भी जाना जाता है) परिवेश चुंबकीय क्षेत्र की रिपोर्ट करता है, जैसा कि तीन सेंसर अक्षों के साथ मापा जाता है।

माप sensors_event_t.magnetic के x, y, और z फ़ील्ड में रिपोर्ट किया गया है और सभी मान माइक्रो-टेस्ला (uT) में हैं।

मैग्नेटोमीटर यह भी रिपोर्ट करता है कि वह sensors_event_t.magnetic.status के माध्यम से अपनी रीडिंग कितनी सटीक होने की उम्मीद करता है। इस फ़ील्ड के संभावित मानों पर अधिक जानकारी के लिए SensorManager के SENSOR_STATUS_* स्थिरांक देखें।

रीडिंग का उपयोग करके अंशांकित किया जाता है:

  • तापमान प्रतिकरण
  • फ़ैक्टरी (या ऑनलाइन) नरम-लोहे का अंशांकन
  • ऑनलाइन हार्ड-आयरन अंशांकन

जाइरोस्कोप

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_GYROSCOPE) एक नॉन-वेक-अप सेंसर लौटाता है

जाइरोस्कोप सेंसर तीन सेंसर अक्षों के आसपास डिवाइस के घूमने की दर की रिपोर्ट करता है।

वामावर्त दिशा (दाएँ हाथ का नियम) में घूर्णन धनात्मक है। अर्थात्, मूल बिंदु पर स्थित डिवाइस पर x, y, या z अक्ष पर कुछ सकारात्मक स्थान से देखने वाला एक पर्यवेक्षक सकारात्मक रोटेशन की रिपोर्ट करेगा यदि डिवाइस वामावर्त घूमता हुआ प्रतीत होता है। ध्यान दें कि यह सकारात्मक घूर्णन की मानक गणितीय परिभाषा है और रोल की एयरोस्पेस परिभाषा से सहमत नहीं है।

माप sensors_event_t.gyro के x, y और z फ़ील्ड में रिपोर्ट किया गया है और सभी मान रेडियन प्रति सेकंड (रेड/एस) में हैं।

रीडिंग का उपयोग करके अंशांकित किया जाता है:

  • तापमान प्रतिकरण
  • फ़ैक्टरी (या ऑनलाइन) पैमाने पर मुआवज़ा
  • ऑनलाइन पूर्वाग्रह अंशांकन (बहाव को दूर करने के लिए)

जाइरोस्कोप यह भी रिपोर्ट करता है कि वह sensors_event_t.gyro.status के माध्यम से अपनी रीडिंग कितनी सटीक होने की उम्मीद करता है। इस फ़ील्ड के संभावित मानों पर अधिक जानकारी के लिए SensorManager के SENSOR_STATUS_* स्थिरांक देखें।

जाइरोस्कोप को मैग्नेटोमीटर और एक्सेलेरोमीटर के आधार पर अनुकरण नहीं किया जा सकता है, क्योंकि इससे स्थानीय स्थिरता और प्रतिक्रिया कम हो जाएगी। यह सामान्य जाइरोस्कोप चिप पर आधारित होना चाहिए।

हृदय दर

रिपोर्टिंग-मोड: ऑन-चेंज

getDefaultSensor(SENSOR_TYPE_HEART_RATE) एक नॉन-वेक-अप सेंसर लौटाता है

हृदय गति सेंसर डिवाइस को छूने वाले व्यक्ति की वर्तमान हृदय गति की रिपोर्ट देता है।

प्रति मिनट बीट्स (बीपीएम) में वर्तमान हृदय गति sensors_event_t.heart_rate.bpm में रिपोर्ट की जाती है और सेंसर की स्थिति sensors_event_t.heart_rate.status में रिपोर्ट की जाती है। इस फ़ील्ड के संभावित मानों पर अधिक जानकारी के लिए SensorManager के SENSOR_STATUS_* स्थिरांक देखें। विशेष रूप से, पहले सक्रियण पर, जब तक यह ज्ञात न हो कि डिवाइस बॉडी पर नहीं है, पहले इवेंट की स्थिति फ़ील्ड को SENSOR_STATUS_UNRELIABLE पर सेट किया जाना चाहिए। क्योंकि यह सेंसर ऑन-चेंज है, इवेंट तब उत्पन्न होते हैं जब और केवल तभी जब heart_rate.bpm या heart_rate.status पिछले इवेंट के बाद से बदल गया हो। घटनाएँ प्रत्येक sampling_period से अधिक तेजी से उत्पन्न नहीं होती हैं।

sensor_t.requiredPermission हमेशा SENSOR_PERMISSION_BODY_SENSORS है।

रोशनी

रिपोर्टिंग-मोड: ऑन-चेंज

getDefaultSensor(SENSOR_TYPE_LIGHT) एक नॉन-वेक-अप सेंसर लौटाता है

एक प्रकाश संवेदक एसआई लक्स इकाइयों में वर्तमान रोशनी की रिपोर्ट करता है।

माप sensors_event_t.light में रिपोर्ट किया गया है।

निकटता

रिपोर्टिंग-मोड: ऑन-चेंज

आमतौर पर इसे वेक-अप सेंसर के रूप में परिभाषित किया जाता है

getDefaultSensor(SENSOR_TYPE_PROXIMITY) एक वेक-अप सेंसर लौटाता है

एक निकटता सेंसर सेंसर से निकटतम दृश्य सतह तक की दूरी की रिपोर्ट करता है।

एंड्रॉइड 4.4 तक, प्रॉक्सिमिटी सेंसर हमेशा वेक-अप सेंसर होते थे, जो निकटता में बदलाव का पता लगाने पर SoC को जगाते थे। एंड्रॉइड 4.4 के बाद, हम पहले इस सेंसर के वेक-अप संस्करण को लागू करने की सलाह देते हैं, क्योंकि यह वह है जिसका उपयोग फोन कॉल करते समय स्क्रीन को चालू और बंद करने के लिए किया जाता है।

माप sensors_event_t.distance में सेंटीमीटर में रिपोर्ट किया गया है। ध्यान दें कि कुछ निकटता सेंसर केवल बाइनरी "निकट" या "दूर" माप का समर्थन करते हैं। इस मामले में, सेंसर "दूर" स्थिति में अपने sensor_t.maxRange मान की रिपोर्ट करता है और "निकट" स्थिति में sensor_t.maxRange से कम मान की रिपोर्ट करता है।

दबाव

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_PRESSURE) एक नॉन-वेक-अप सेंसर लौटाता है

एक दबाव सेंसर (बैरोमीटर के रूप में भी जाना जाता है) हेक्टोपास्कल (hPa) में वायुमंडलीय दबाव की रिपोर्ट करता है।

रीडिंग का उपयोग करके अंशांकन किया जाता है

  • तापमान प्रतिकरण
  • फैक्टरी पूर्वाग्रह अंशांकन
  • फ़ैक्टरी स्केल अंशांकन

बैरोमीटर का उपयोग अक्सर ऊंचाई परिवर्तन का अनुमान लगाने के लिए किया जाता है। पूर्ण ऊंचाई का अनुमान लगाने के लिए, समुद्र-स्तर के दबाव (मौसम के आधार पर परिवर्तन) को संदर्भ के रूप में उपयोग किया जाना चाहिए।

सापेक्षिक आर्द्रता

रिपोर्टिंग-मोड: ऑन-चेंज

getDefaultSensor(SENSOR_TYPE_RELATIVE_HUMIDITY) एक नॉन-वेक-अप सेंसर लौटाता है

एक सापेक्ष आर्द्रता सेंसर सापेक्ष परिवेशीय वायु आर्द्रता को मापता है और प्रतिशत में मान लौटाता है।

समग्र सेंसर प्रकार

एक मिश्रित सेंसर एक या कई भौतिक सेंसर से डेटा को संसाधित और/या फ़्यूज़ करके डेटा उत्पन्न करता है। (कोई भी सेंसर जो बेस सेंसर नहीं है उसे कंपोजिट सेंसर कहा जाता है।) कंपोजिट सेंसर के उदाहरणों में शामिल हैं:

  • स्टेप डिटेक्टर और महत्वपूर्ण गति , जो आमतौर पर एक्सेलेरोमीटर पर आधारित होते हैं, लेकिन यदि बिजली की खपत और सटीकता स्वीकार्य थी, तो अन्य सेंसर पर भी आधारित हो सकते हैं।
  • एक्सेलेरोमीटर और जाइरोस्कोप पर आधारित गेम रोटेशन वेक्टर
  • अनकैलिब्रेटेड जाइरोस्कोप , जो जाइरोस्कोप बेस सेंसर के समान है, लेकिन माप में सुधार किए जाने के बजाय पूर्वाग्रह अंशांकन को अलग से रिपोर्ट किया जाता है।

बेस सेंसर की तरह, मिश्रित सेंसर की विशेषताएं उनके अंतिम डेटा की विशेषताओं से आती हैं। उदाहरण के लिए, गेम रोटेशन वेक्टर की बिजली खपत संभवतः एक्सेलेरोमीटर चिप, जाइरोस्कोप चिप, डेटा प्रोसेसिंग करने वाली चिप और डेटा ट्रांसपोर्ट करने वाली बसों की बिजली खपत के योग के बराबर है। एक अन्य उदाहरण के रूप में, गेम रोटेशन वेक्टर का बहाव अंशांकन एल्गोरिदम की गुणवत्ता के साथ-साथ भौतिक सेंसर विशेषताओं पर भी निर्भर करता है।

निम्न तालिका उपलब्ध समग्र सेंसर प्रकारों को सूचीबद्ध करती है। प्रत्येक मिश्रित सेंसर एक या कई भौतिक सेंसर के डेटा पर निर्भर करता है। अनुमानित परिणामों के लिए अन्य अंतर्निहित भौतिक सेंसर चुनने से बचें क्योंकि वे खराब उपयोगकर्ता अनुभव प्रदान करते हैं।

सेंसर प्रकार वर्ग अंतर्निहित भौतिक सेंसर रिपोर्टिंग मोड

गेम रोटेशन वेक्टर

नज़रिया

एक्सेलेरोमीटर, जायरोस्कोप, मैग्नेटोमीटर का उपयोग नहीं करना चाहिए

निरंतर

भू-चुंबकीय घूर्णन वेक्टर कम पावर सेंसर

नज़रिया

एक्सेलेरोमीटर, मैग्नेटोमीटर, जाइरोस्कोप का उपयोग नहीं करना चाहिए

निरंतर

नज़र का इशारा कम पावर सेंसर

इंटरैक्शन

अपरिभाषित

एक शॉट

गुरुत्वाकर्षण

नज़रिया

एक्सेलेरोमीटर, जाइरोस्कोप

निरंतर

जाइरोस्कोप अनकैलिब्रेटेड

अनकैलिब्रेटेड

जाइरोस्कोप

निरंतर

रैखिक त्वरण

गतिविधि

एक्सेलेरोमीटर, जाइरोस्कोप (यदि मौजूद है), या मैग्नेटोमीटर (यदि जाइरो मौजूद नहीं है)

निरंतर

चुंबकीय क्षेत्र असंशोधित

अनकैलिब्रेटेड

मैग्नेटोमीटर

निरंतर

अभिमुखीकरण (बहिष्कृत)

नज़रिया

एक्सेलेरोमीटर, मैग्नेटोमीटर, जाइरोस्कोप (यदि मौजूद हो)

निरंतर

इशारा उठाओ कम पावर सेंसर

इंटरैक्शन

अपरिभाषित

एक शॉट

घूर्णन सदिश

नज़रिया

एक्सेलेरोमीटर, मैग्नेटोमीटर, जाइरोस्कोप

निरंतर

महत्वपूर्ण गति कम पावर सेंसर

गतिविधि

एक्सेलेरोमीटर (या बहुत कम शक्ति वाला कोई अन्य)

एक शॉट

कदम काउंटर कम पावर सेंसर

गतिविधि

accelerometer

परिवर्तन पर

स्टेप डिटेक्टर कम पावर सेंसर

गतिविधि

accelerometer

विशेष

झुकाव डिटेक्टर कम पावर सेंसर

गतिविधि

accelerometer

विशेष

जागो इशारा कम पावर सेंसर

इंटरैक्शन

अपरिभाषित

एक शॉट

कम पावर सेंसर = कम पावर सेंसर

गतिविधि समग्र सेंसर

रैखिक त्वरण

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर और (यदि मौजूद है) जाइरोस्कोप (या मैग्नेटोमीटर यदि जाइरोस्कोप मौजूद नहीं है)

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_LINEAR_ACCELERATION) एक नॉन-वेक-अप सेंसर लौटाता है

एक रैखिक त्वरण सेंसर सेंसर फ्रेम में डिवाइस के रैखिक त्वरण की रिपोर्ट करता है, जिसमें गुरुत्वाकर्षण शामिल नहीं है।

आउटपुट वैचारिक रूप से है: एक्सेलेरोमीटर का आउटपुट शून्य से गुरुत्वाकर्षण सेंसर का आउटपुट। यह sensors_event_t.acceleration के x, y, और z फ़ील्ड में m/s^2 में रिपोर्ट किया गया है।

जब डिवाइस स्थिर हो तो सभी अक्षों पर रीडिंग 0 के करीब होनी चाहिए।

यदि डिवाइस में जाइरोस्कोप है, तो रैखिक त्वरण सेंसर को इनपुट के रूप में जाइरोस्कोप और एक्सेलेरोमीटर का उपयोग करना चाहिए।

यदि डिवाइस में जाइरोस्कोप नहीं है, तो रैखिक त्वरण सेंसर को इनपुट के रूप में एक्सेलेरोमीटर और मैग्नेटोमीटर का उपयोग करना चाहिए।

महत्वपूर्ण गति

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर (या कम शक्ति वाला कोई अन्य)

रिपोर्टिंग-मोड: एक-शॉट

कम बिजली

इस सेंसर का केवल वेक-अप संस्करण ही लागू करें।

getDefaultSensor(SENSOR_TYPE_SIGNIFICANT_MOTION) एक वेक-अप सेंसर लौटाता है

एक महत्वपूर्ण गति डिटेक्टर एक महत्वपूर्ण गति का पता लगाते समय ट्रिगर होता है: एक ऐसी गति जिसके कारण उपयोगकर्ता के स्थान में परिवर्तन हो सकता है।

ऐसे महत्वपूर्ण गतियों के उदाहरण हैं:

  • पैदल चलना या बाइक चलाना
  • चलती कार, कोच या ट्रेन में बैठना

उन स्थितियों के उदाहरण जो महत्वपूर्ण गति उत्पन्न नहीं करते:

  • फ़ोन जेब में है और व्यक्ति हिल नहीं रहा है
  • फ़ोन एक मेज़ पर है और पास में ट्रैफ़िक या वॉशिंग मशीन के कारण मेज़ थोड़ी हिलती है

उच्च स्तर पर, स्थान निर्धारण की बिजली खपत को कम करने के लिए महत्वपूर्ण गति डिटेक्टर का उपयोग किया जाता है। जब स्थानीयकरण एल्गोरिदम पता लगाते हैं कि डिवाइस स्थिर है, तो वे कम-पावर मोड पर स्विच कर सकते हैं, जहां वे उपयोगकर्ता द्वारा स्थान बदलने पर डिवाइस को जगाने के लिए महत्वपूर्ण गति पर भरोसा करते हैं।

यह सेंसर कम पावर वाला होना चाहिए. यह बिजली की खपत के लिए एक समझौता करता है जिसके परिणामस्वरूप थोड़ी मात्रा में गलत नकारात्मक परिणाम हो सकते हैं। ऐसा कुछ कारणों से किया जाता है:

  • इस सेंसर का लक्ष्य बिजली बचाना है।
  • जब उपयोगकर्ता नहीं चल रहा हो तो किसी ईवेंट को ट्रिगर करना (गलत सकारात्मक) शक्ति के मामले में महंगा है, इसलिए इसे टाला जाना चाहिए।
  • जब उपयोगकर्ता चल रहा हो तो किसी ईवेंट को ट्रिगर न करना (झूठा नकारात्मक) तब तक स्वीकार्य है जब तक ऐसा बार-बार नहीं किया जाता है। यदि उपयोगकर्ता 10 सेकंड से चल रहा है, तो उन 10 सेकंड के भीतर किसी घटना को ट्रिगर न करना स्वीकार्य नहीं है।

प्रत्येक सेंसर इवेंट sensors_event_t.data[0] में 1 रिपोर्ट करता है।

स्टेप डिटेक्टर

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर (+ संभवतः अन्य जब तक कम शक्ति)

रिपोर्टिंग-मोड: विशेष (प्रति चरण एक घटना)

कम बिजली

getDefaultSensor(SENSOR_TYPE_STEP_DETECTOR) एक नॉन-वेक-अप सेंसर लौटाता है

हर बार जब उपयोगकर्ता कोई कदम उठाता है तो एक स्टेप डिटेक्टर एक इवेंट उत्पन्न करता है।

इवेंट sensors_event_t.timestamp का टाइमस्टैम्प उस समय से मेल खाता है जब पैर जमीन से टकराता है, जिससे त्वरण में उच्च भिन्नता उत्पन्न होती है।

स्टेप काउंटर की तुलना में, स्टेप डिटेक्टर में कम विलंबता (दो सेकंड से कम) होनी चाहिए। स्टेप डिटेक्टर और स्टेप काउंटर दोनों यह पता लगाते हैं कि उपयोगकर्ता कब चल रहा है, दौड़ रहा है और सीढ़ियाँ चढ़ रहा है। जब उपयोगकर्ता बाइक चला रहा हो, गाड़ी चला रहा हो या अन्य वाहनों में हो तो उन्हें ट्रिगर नहीं करना चाहिए।

यह सेंसर कम पावर वाला होना चाहिए. अर्थात्, यदि हार्डवेयर में चरण का पता नहीं लगाया जा सकता है, तो इस सेंसर को परिभाषित नहीं किया जाना चाहिए। विशेष रूप से, जब स्टेप डिटेक्टर सक्रिय होता है और एक्सेलेरोमीटर सक्रिय नहीं होता है, तो केवल स्टेप्स में व्यवधान उत्पन्न होना चाहिए (प्रत्येक एक्सेलेरोमीटर रीडिंग नहीं)।

sampling_period_ns स्टेप डिटेक्टरों पर कोई प्रभाव नहीं पड़ता है।

प्रत्येक सेंसर इवेंट sensors_event_t.data[0] में 1 रिपोर्ट करता है।

कदम काउंटर

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर (+ संभवतः अन्य जब तक कम शक्ति)

रिपोर्टिंग-मोड: ऑन-चेंज

कम बिजली

getDefaultSensor(SENSOR_TYPE_STEP_COUNTER) एक नॉन-वेक-अप सेंसर लौटाता है

एक चरण काउंटर सक्रिय होने के दौरान अंतिम रीबूट के बाद से उपयोगकर्ता द्वारा उठाए गए कदमों की संख्या की रिपोर्ट करता है।

माप को sensors_event_t.step_counter में uint64_t के रूप में रिपोर्ट किया जाता है और केवल सिस्टम रीबूट पर शून्य पर रीसेट किया जाता है।

इवेंट का टाइमस्टैम्प उस समय पर सेट होता है जब उस इवेंट के लिए अंतिम चरण उठाया गया था।

किसी चरण के समय के संकेत के लिए स्टेप डिटेक्टर सेंसर प्रकार देखें।

स्टेप डिटेक्टर की तुलना में, स्टेप काउंटर में अधिक विलंबता (10 सेकंड तक) हो सकती है। इस विलंबता के कारण, इस सेंसर में उच्च सटीकता है; पूरे दिन के उपायों के बाद कदमों की गिनती वास्तविक कदमों की गिनती के 10% के भीतर होनी चाहिए। स्टेप डिटेक्टर और स्टेप काउंटर दोनों यह पता लगाते हैं कि उपयोगकर्ता कब चल रहा है, दौड़ रहा है और सीढ़ियाँ चढ़ रहा है। जब उपयोगकर्ता बाइक चला रहा हो, गाड़ी चला रहा हो या अन्य वाहनों में हो तो उन्हें ट्रिगर नहीं करना चाहिए।

हार्डवेयर को यह सुनिश्चित करना चाहिए कि आंतरिक चरण गणना कभी भी ओवरफ्लो न हो। हार्डवेयर के आंतरिक काउंटर का न्यूनतम आकार 16 बिट होगा। आसन्न अतिप्रवाह के मामले में (अधिकतम प्रत्येक ~2^16 चरणों में), SoC को जगाया जा सकता है ताकि ड्राइवर काउंटर रखरखाव कर सके।

जैसा कि इंटरेक्शन में कहा गया है, जब यह सेंसर संचालित होता है, तो यह किसी भी अन्य सेंसर को बाधित नहीं करेगा, विशेष रूप से एक्सेलेरोमीटर, जो बहुत अच्छी तरह से उपयोग में हो सकता है।

यदि कोई विशेष उपकरण संचालन के इन तरीकों का समर्थन नहीं कर सकता है, तो इस सेंसर प्रकार को एचएएल द्वारा रिपोर्ट नहीं किया जाना चाहिए। यानी, एचएएल में इस सेंसर का "अनुकरण" करना स्वीकार्य नहीं है।

यह सेंसर कम पावर वाला होना चाहिए. अर्थात्, यदि हार्डवेयर में चरण का पता नहीं लगाया जा सकता है, तो इस सेंसर को परिभाषित नहीं किया जाना चाहिए। विशेष रूप से, जब स्टेप काउंटर सक्रिय होता है और एक्सेलेरोमीटर सक्रिय नहीं होता है, तो केवल स्टेप्स को ही व्यवधान उत्पन्न करना चाहिए (एक्सेलेरोमीटर डेटा नहीं)।

झुकाव डिटेक्टर

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर (+ संभवतः अन्य जब तक कम शक्ति)

रिपोर्टिंग-मोड: विशेष

कम बिजली

इस सेंसर का केवल वेक-अप संस्करण ही लागू करें।

getDefaultSensor(SENSOR_TYPE_TILT_DETECTOR) एक वेक-अप सेंसर लौटाता है

हर बार झुकाव घटना का पता चलने पर झुकाव डिटेक्टर एक घटना उत्पन्न करता है।

एक झुकाव घटना को सक्रियण या सेंसर द्वारा उत्पन्न अंतिम घटना के बाद से 2-सेकंड विंडो औसत गुरुत्वाकर्षण की दिशा में कम से कम 35 डिग्री तक बदलने से परिभाषित किया जाता है। यहाँ एल्गोरिथ्म है:

  • reference_estimated_gravity = सक्रियण के बाद पहले सेकंड में एक्सेलेरोमीटर माप का औसत या अंतिम झुकाव घटना उत्पन्न होने पर अनुमानित गुरुत्वाकर्षण।
  • current_estimated_gravity = पिछले 2 सेकंड में एक्सेलेरोमीटर माप का औसत।
  • ट्रिगर जब angle(reference_estimated_gravity, current_estimated_gravity) > 35 degrees

फ़ोन ओरिएंटेशन में बदलाव के बिना बड़ी तेजी से झुकाव की घटना को ट्रिगर नहीं किया जाना चाहिए। उदाहरण के लिए, कार चलाते समय तेज मोड़ या तेज त्वरण से झुकाव की घटना नहीं होनी चाहिए, भले ही औसत त्वरण का कोण 35 डिग्री से अधिक भिन्न हो सकता है। आमतौर पर, यह सेंसर केवल एक्सेलेरोमीटर की मदद से कार्यान्वित किया जाता है। यदि वे बिजली की खपत में उल्लेखनीय वृद्धि नहीं करते हैं तो अन्य सेंसर का भी उपयोग किया जा सकता है। यह एक कम-शक्ति वाला सेंसर है जो SoC को सस्पेंड मोड में जाने की अनुमति देता है। एचएएल में इस सेंसर का अनुकरण न करें। प्रत्येक सेंसर इवेंट sensors_event_t.data[0] में 1 रिपोर्ट करता है।

एटीट्यूड कम्पोजिट सेंसर

घूर्णन सदिश

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर, मैग्नेटोमीटर और जायरोस्कोप

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_ROTATION_VECTOR) एक नॉन-वेक-अप सेंसर लौटाता है

एक रोटेशन वेक्टर सेंसर पूर्व-उत्तर-ऊपर निर्देशांक फ्रेम के सापेक्ष डिवाइस के अभिविन्यास की रिपोर्ट करता है। यह आमतौर पर एक्सेलेरोमीटर, जायरोस्कोप और मैग्नेटोमीटर रीडिंग के एकीकरण द्वारा प्राप्त किया जाता है। पूर्व-उत्तर-ऊपर समन्वय प्रणाली को प्रत्यक्ष ऑर्थोनॉर्मल आधार के रूप में परिभाषित किया गया है जहां:

  • X पूर्व की ओर इंगित करता है और ज़मीन से स्पर्शरेखीय है।
  • Y उत्तर की ओर इंगित करता है और ज़मीन से स्पर्शरेखीय है।
  • Z आकाश की ओर इंगित करता है और जमीन से लंबवत है।

फ़ोन के निर्देशांक को फ़ोन के निर्देशांक के साथ पूर्व-उत्तर-ऊपर निर्देशांक को संरेखित करने के लिए आवश्यक रोटेशन द्वारा दर्शाया जाता है। अर्थात्, विश्व फ़्रेम (X,Y,Z) पर रोटेशन लागू करने से वे फ़ोन निर्देशांक (x,y,z) के साथ संरेखित हो जाएंगे।

रोटेशन को संदर्भ (पूर्व-उत्तर-ऊपर संरेखित) डिवाइस ओरिएंटेशन से वर्तमान डिवाइस ओरिएंटेशन तक जाने के लिए rot_axis अक्ष के चारों ओर एक कोण थीटा द्वारा फोन को घुमाने के रूप में देखा जा सकता है। रोटेशन को एक इकाई चतुर्भुज के चार इकाई-रहित x, y, z, w घटकों के रूप में एन्कोड किया गया है:

  • sensors_event_t.data[0] = rot_axis.x*sin(theta/2)
  • sensors_event_t.data[1] = rot_axis.y*sin(theta/2)
  • sensors_event_t.data[2] = rot_axis.z*sin(theta/2)
  • sensors_event_t.data[3] = cos(theta/2)

कहाँ:

  • rot_axis के x, y, और z फ़ील्ड रोटेशन अक्ष का प्रतिनिधित्व करने वाली इकाई लंबाई वेक्टर के पूर्व-उत्तर-ऊपर निर्देशांक हैं
  • theta घूर्णन कोण है

चतुर्भुज एक इकाई चतुर्भुज है: यह मानक 1 का होना चाहिए। यह सुनिश्चित करने में विफलता के कारण ग्राहक का व्यवहार अनियमित हो जाएगा।

इसके अलावा, यह सेंसर अनुमानित शीर्षक सटीकता की रिपोर्ट करता है:

sensors_event_t.data[4] = estimated_accuracy (रेडियन में)

शीर्षक त्रुटि 95% समय estimated_accuracy से कम होनी चाहिए। इस सेंसर को मुख्य अभिविन्यास परिवर्तन इनपुट के रूप में जाइरोस्कोप का उपयोग करना चाहिए।

यह सेंसर जाइरोस्कोप ड्रिफ्ट की भरपाई के लिए एक्सेलेरोमीटर और मैग्नेटोमीटर इनपुट का भी उपयोग करता है, और इसे केवल एक्सेलेरोमीटर और मैग्नेटोमीटर का उपयोग करके कार्यान्वित नहीं किया जा सकता है।

गेम रोटेशन वेक्टर

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर और जाइरोस्कोप (कोई मैग्नेटोमीटर नहीं)

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_GAME_ROTATION_VECTOR) एक नॉन-वेक-अप सेंसर लौटाता है

गेम रोटेशन वेक्टर सेंसर रोटेशन वेक्टर सेंसर के समान है लेकिन भू-चुंबकीय क्षेत्र का उपयोग नहीं करता है। इसलिए Y अक्ष उत्तर की ओर नहीं, बल्कि किसी अन्य संदर्भ की ओर इंगित करता है। उस संदर्भ को परिमाण के उसी क्रम से बहने की अनुमति है जैसे जाइरोस्कोप Z अक्ष के चारों ओर घूमता है।

sensors_event_t.data[0-3] कैसे सेट करें, इसके विवरण के लिए रोटेशन वेक्टर सेंसर देखें। यह सेंसर अनुमानित शीर्षक सटीकता की रिपोर्ट नहीं करता है: sensors_event_t.data[4] आरक्षित है और इसे 0 पर सेट किया जाना चाहिए।

आदर्श स्थिति में, एक फ़ोन घुमाया गया और उसी वास्तविक-विश्व अभिविन्यास पर लौटाया गया तो उसी गेम रोटेशन वेक्टर की रिपोर्ट करनी चाहिए।

यह सेंसर जाइरोस्कोप और एक्सेलेरोमीटर पर आधारित होना चाहिए। यह जाइरोस्कोप पूर्वाग्रह के आकलन के माध्यम से, अप्रत्यक्ष रूप से, इनपुट के रूप में मैग्नेटोमीटर का उपयोग नहीं कर सकता है।

गुरुत्वाकर्षण

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर और (यदि मौजूद है) जाइरोस्कोप (या मैग्नेटोमीटर यदि जाइरोस्कोप मौजूद नहीं है)

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_GRAVITY) एक नॉन-वेक-अप सेंसर लौटाता है

एक गुरुत्वाकर्षण सेंसर डिवाइस के निर्देशांक में गुरुत्वाकर्षण की दिशा और परिमाण की रिपोर्ट करता है।

गुरुत्वाकर्षण वेक्टर घटकों को sensors_event_t.acceleration के x, y और z फ़ील्ड में m/s^2 में रिपोर्ट किया जाता है।

जब डिवाइस आराम पर हो, तो गुरुत्वाकर्षण सेंसर का आउटपुट एक्सेलेरोमीटर के समान होना चाहिए। पृथ्वी पर, परिमाण लगभग 9.8 m/s^2 है।

यदि डिवाइस में जाइरोस्कोप है, तो गुरुत्वाकर्षण सेंसर को इनपुट के रूप में जाइरोस्कोप और एक्सेलेरोमीटर का उपयोग करना चाहिए।

यदि डिवाइस में जाइरोस्कोप नहीं है, तो गुरुत्वाकर्षण सेंसर को इनपुट के रूप में एक्सेलेरोमीटर और मैग्नेटोमीटर का उपयोग करना होगा।

भू-चुंबकीय घूर्णन वेक्टर

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर और मैग्नेटोमीटर (कोई जाइरोस्कोप नहीं)

रिपोर्टिंग-मोड: सतत

कम बिजली

getDefaultSensor(SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR) एक नॉन-वेक-अप सेंसर लौटाता है

एक जियोमैग्नेटिक रोटेशन वेक्टर एक रोटेशन वेक्टर सेंसर के समान होता है लेकिन इसमें मैग्नेटोमीटर और जाइरोस्कोप का उपयोग नहीं किया जाता है।

यह सेंसर मैग्नेटोमीटर पर आधारित होना चाहिए। इसे जाइरोस्कोप का उपयोग करके कार्यान्वित नहीं किया जा सकता है, और इस सेंसर द्वारा जाइरोस्कोप इनपुट का उपयोग नहीं किया जा सकता है।

sensors_event_t.data[0-4] कैसे सेट करें, इसके विवरण के लिए रोटेशन वेक्टर सेंसर देखें।

रोटेशन वेक्टर सेंसर की तरह, हेडिंग त्रुटि 95% समय अनुमानित सटीकता ( sensors_event_t.data[4] ) से कम होनी चाहिए।

यह सेंसर कम पावर वाला होना चाहिए, इसलिए इसे हार्डवेयर में लागू करना होगा।

अभिमुखीकरण (बहिष्कृत)

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर, मैग्नेटोमीटर और (यदि मौजूद हो) जाइरोस्कोप

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_ORIENTATION) एक नॉन-वेक-अप सेंसर लौटाता है

नोट: यह एक पुराना सेंसर प्रकार है जिसे एंड्रॉइड एसडीके में हटा दिया गया है। इसे रोटेशन वेक्टर सेंसर द्वारा प्रतिस्थापित किया गया है, जो अधिक स्पष्ट रूप से परिभाषित है। जब भी संभव हो ओरिएंटेशन सेंसर के ऊपर रोटेशन वेक्टर सेंसर का उपयोग करें।

एक ओरिएंटेशन सेंसर डिवाइस के रुख की रिपोर्ट करता है। माप sensors_event_t.orientation के x, y, और z फ़ील्ड में डिग्री में रिपोर्ट किए जाते हैं:

  • sensors_event_t.orientation.x : अज़ीमुथ, चुंबकीय उत्तर दिशा और Y अक्ष के बीच का कोण, Z अक्ष के चारों ओर ( 0<=azimuth<360 )। 0=उत्तर, 90=पूर्व, 180=दक्षिण, 270=पश्चिम।
  • sensors_event_t.orientation.y : पिच, एक्स अक्ष के चारों ओर घूमना ( -180<=pitch<=180 ), सकारात्मक मूल्यों के साथ जब Z अक्ष Y अक्ष की ओर बढ़ता है।
  • sensors_event_t.orientation.z : रोल, Y अक्ष के चारों ओर घूमना ( -90<=roll<=90 ), सकारात्मक मान के साथ जब X अक्ष Z अक्ष की ओर बढ़ता है।

कृपया ध्यान दें, ऐतिहासिक कारणों से रोल कोण दक्षिणावर्त दिशा में सकारात्मक है। (गणितीय रूप से कहें तो, यह वामावर्त दिशा में सकारात्मक होना चाहिए):

किसी उपकरण के सापेक्ष अभिविन्यास का चित्रण

चित्र 3. किसी उपकरण के सापेक्ष अभिविन्यास

यह परिभाषा विमानन में उपयोग किए जाने वाले यॉ, पिच और रोल से भिन्न है जहां एक्स अक्ष विमान के लंबे किनारे (पूंछ से नाक तक) के साथ होता है।

ओरिएंटेशन सेंसर यह भी रिपोर्ट करता है कि वह sensors_event_t.orientation.status के माध्यम से अपनी रीडिंग कितनी सटीक होने की उम्मीद करता है। इस फ़ील्ड के संभावित मानों पर अधिक जानकारी के लिए SensorManager के SENSOR_STATUS_* स्थिरांक देखें।

अनकैलिब्रेटेड सेंसर

अनकैलिब्रेटेड सेंसर अधिक कच्चे परिणाम प्रदान करते हैं और इसमें कुछ पूर्वाग्रह शामिल हो सकते हैं लेकिन अंशांकन के माध्यम से लागू सुधारों से कम "छलांग" भी होती है। कुछ ऐप्स इन अनकैलिब्रेटेड परिणामों को सहज और अधिक विश्वसनीय मान सकते हैं। उदाहरण के लिए, यदि कोई ऐप अपने स्वयं के सेंसर फ़्यूज़न का संचालन करने का प्रयास कर रहा है, तो अंशांकन शुरू करने से वास्तव में परिणाम विकृत हो सकते हैं।

एक्सेलेरोमीटर अनकैलिब्रेटेड

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED) एक नॉन-वेक-अप सेंसर लौटाता है

एक अनकैलिब्रेटेड एक्सेलेरोमीटर सेंसर बिना किसी पूर्वाग्रह सुधार के तीन सेंसर अक्षों के साथ डिवाइस के त्वरण की रिपोर्ट करता है (फैक्ट्री पूर्वाग्रह और तापमान मुआवजा अनकैलिब्रेटेड माप पर लागू होता है), एक पूर्वाग्रह अनुमान के साथ। सभी मान एसआई इकाइयों (एम/एस^2) में हैं और sensors_event_t.uncalibrated_accelerometer के क्षेत्रों में रिपोर्ट किए गए हैं:

  • x_uncalib : एक्स अक्ष के अनुदिश त्वरण (पूर्वाग्रह मुआवजे के बिना)।
  • y_uncalib : Y अक्ष के अनुदिश त्वरण (पूर्वाग्रह मुआवजे के बिना)।
  • z_uncalib : Z अक्ष के अनुदिश त्वरण (पूर्वाग्रह मुआवजे के बिना)।
  • x_bias : X अक्ष के अनुदिश अनुमानित पूर्वाग्रह
  • y_bias : Y अक्ष के साथ अनुमानित पूर्वाग्रह
  • z_bias : Z अक्ष के अनुदिश अनुमानित पूर्वाग्रह

जाइरोस्कोप अनकैलिब्रेटेड

अंतर्निहित भौतिक सेंसर: जाइरोस्कोप

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_UNCALIBRATED) एक नॉन-वेक-अप सेंसर लौटाता है

एक अनकैलिब्रेटेड जाइरोस्कोप पूर्वाग्रह अनुमान के साथ, सेंसर अक्षों पर पूर्वाग्रह क्षतिपूर्ति लागू किए बिना उनके चारों ओर घूमने की दर की रिपोर्ट करता है। सभी मान रेडियन/सेकंड में हैं और sensors_event_t.uncalibrated_gyro के क्षेत्रों में रिपोर्ट किए गए हैं:

  • x_uncalib : X अक्ष के चारों ओर कोणीय गति (बहाव मुआवजे के बिना)।
  • y_uncalib : Y अक्ष के चारों ओर कोणीय गति (बहाव मुआवजे के बिना)।
  • z_uncalib : Z अक्ष के चारों ओर कोणीय गति (बहाव मुआवजे के बिना)।
  • x_bias : X अक्ष के चारों ओर अनुमानित बहाव
  • y_bias : Y अक्ष के चारों ओर अनुमानित बहाव
  • z_bias : Z अक्ष के चारों ओर अनुमानित बहाव

संकल्पनात्मक रूप से, अनकैलिब्रेटेड माप कैलिब्रेटेड माप और पूर्वाग्रह अनुमान का योग है: _uncalibrated = _calibrated + _bias

पूर्वाग्रह का अनुमान बदलते ही x_bias , y_bias और z_bias मानों में उछाल आने की उम्मीद है, और उन्हें बाकी समय स्थिर रहना चाहिए।

प्रयुक्त समन्वय प्रणाली के विवरण के लिए जाइरोस्कोप सेंसर की परिभाषा देखें।

फ़ैक्टरी अंशांकन और तापमान क्षतिपूर्ति को माप पर लागू किया जाना चाहिए। इसके अलावा, जाइरोस्कोप बहाव अनुमान को लागू किया जाना चाहिए ताकि उचित अनुमान x_bias , y_bias और z_bias में रिपोर्ट किया जा सके। यदि कार्यान्वयन बहाव का अनुमान लगाने में सक्षम नहीं है, तो इस सेंसर को लागू नहीं किया जाना चाहिए।

यदि यह सेंसर मौजूद है, तो संबंधित जाइरोस्कोप सेंसर भी मौजूद होना चाहिए और दोनों सेंसर को समान sensor_t.name और sensor_t.vendor मान साझा करना होगा।

चुंबकीय क्षेत्र असंशोधित

अंतर्निहित भौतिक सेंसर: मैग्नेटोमीटर

रिपोर्टिंग-मोड: सतत

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED) एक नॉन-वेक-अप सेंसर लौटाता है

एक अनकैलिब्रेटेड चुंबकीय क्षेत्र सेंसर कठोर लौह अंशांकन अनुमान के साथ परिवेश चुंबकीय क्षेत्र की रिपोर्ट करता है। सभी मान माइक्रो-टेस्ला (यूटी) में हैं और sensors_event_t.uncalibrated_magnetic के क्षेत्रों में रिपोर्ट किए गए हैं:

  • x_uncalib : X अक्ष के अनुदिश चुंबकीय क्षेत्र (हार्ड-आयरन क्षतिपूर्ति के बिना)।
  • y_uncalib : Y अक्ष के अनुदिश चुंबकीय क्षेत्र (हार्ड-आयरन क्षतिपूर्ति के बिना)।
  • z_uncalib : Z अक्ष के अनुदिश चुंबकीय क्षेत्र (हार्ड-आयरन क्षतिपूर्ति के बिना)।
  • x_bias : एक्स अक्ष के साथ अनुमानित कठोर-लोहे का पूर्वाग्रह
  • y_bias : Y अक्ष के साथ अनुमानित कठोर-लोहे का पूर्वाग्रह
  • z_bias : Z अक्ष के साथ अनुमानित कठोर-लोहे का पूर्वाग्रह

संकल्पनात्मक रूप से, अनकैलिब्रेटेड माप कैलिब्रेटेड माप और पूर्वाग्रह अनुमान का योग है: _uncalibrated = _calibrated + _bias

अनकैलिब्रेटेड मैग्नेटोमीटर उच्च स्तरीय एल्गोरिदम को खराब कठोर लोहे के आकलन को संभालने की अनुमति देता है। हार्ड-आयरन का अनुमान बदलते ही x_bias , y_bias और z_bias मानों में उछाल आने की उम्मीद है, और उन्हें बाकी समय स्थिर रहना चाहिए।

माप में नरम-लोहे का अंशांकन और तापमान मुआवजा लागू किया जाना चाहिए। साथ ही, हार्ड-आयरन अनुमान को लागू किया जाना चाहिए ताकि उचित अनुमान x_bias , y_bias और z_bias में रिपोर्ट किया जा सके। यदि कार्यान्वयन पूर्वाग्रह का अनुमान लगाने में सक्षम नहीं है, तो इस सेंसर को लागू नहीं किया जाना चाहिए।

यदि यह सेंसर मौजूद है, तो संबंधित चुंबकीय क्षेत्र सेंसर मौजूद होना चाहिए और दोनों सेंसर को समान sensor_t.name और sensor_t.vendor मान साझा करना होगा।

काज कोण

रिपोर्टिंग-मोड: ऑन-चेंज

getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE) एक वेक-अप सेंसर लौटाता है

एक हिंज एंगल सेंसर डिवाइस के दो अभिन्न हिस्सों के बीच के कोण को डिग्री में मापता है। इस सेंसर प्रकार द्वारा मापी गई काज की गति से उपयोगकर्ता द्वारा डिवाइस के साथ इंटरैक्ट करने के तरीकों में बदलाव की उम्मीद की जाती है, उदाहरण के लिए, डिस्प्ले को खोलकर या प्रकट करके।

इंटरेक्शन कम्पोजिट सेंसर

कुछ सेंसर का उपयोग अधिकतर उपयोगकर्ता के साथ बातचीत का पता लगाने के लिए किया जाता है। हम यह परिभाषित नहीं करते हैं कि उन सेंसरों को कैसे लागू किया जाना चाहिए, लेकिन वे कम शक्ति वाले होने चाहिए और उपयोगकर्ता अनुभव के संदर्भ में उनकी गुणवत्ता को सत्यापित करना डिवाइस निर्माता की जिम्मेदारी है।

जागो इशारा

अंतर्निहित भौतिक सेंसर: अपरिभाषित (कुछ भी कम शक्ति)

रिपोर्टिंग-मोड: एक-शॉट

कम बिजली

इस सेंसर का केवल वेक-अप संस्करण ही लागू करें।

getDefaultSensor(SENSOR_TYPE_WAKE_GESTURE) एक वेक-अप सेंसर लौटाता है

वेक-अप जेस्चर सेंसर डिवाइस की विशिष्ट गति के आधार पर डिवाइस को जगाने में सक्षम बनाता है। जब यह सेंसर चालू होता है, तो डिवाइस ऐसा व्यवहार करता है मानो पावर बटन दबाया गया हो, जिससे स्क्रीन चालू हो गई हो। यह व्यवहार (जब यह सेंसर ट्रिगर होता है तो स्क्रीन चालू करना) उपयोगकर्ता द्वारा डिवाइस सेटिंग्स में निष्क्रिय किया जा सकता है। सेटिंग्स में परिवर्तन सेंसर के व्यवहार को प्रभावित नहीं करता है: केवल यह कि फ्रेमवर्क ट्रिगर होने पर स्क्रीन को चालू करता है या नहीं। पता लगाया जाने वाला वास्तविक इशारा निर्दिष्ट नहीं है, और डिवाइस के निर्माता द्वारा चुना जा सकता है।

यह सेंसर कम पावर वाला होना चाहिए, क्योंकि इसके 24/7 सक्रिय रहने की संभावना है।

प्रत्येक सेंसर ईवेंट 1 sensors_event_t.data[0] में रिपोर्ट करता है।

इशारा उठाना

अंतर्निहित भौतिक सेंसर: अपरिभाषित (कुछ भी कम शक्ति)

रिपोर्टिंग-मोड: एक-शॉट

कम बिजली

इस सेंसर के केवल वेक-अप संस्करण को लागू करें।

getDefaultSensor(SENSOR_TYPE_PICK_UP_GESTURE) एक वेक-अप सेंसर देता है

एक पिक-अप जेस्चर सेंसर ट्रिगर तब होता है जब डिवाइस को पहले से ही उठाया जाता है, जहां भी वह (डेस्क, पॉकेट, बैग) हो।

प्रत्येक सेंसर ईवेंट 1 sensors_event_t.data[0] में रिपोर्ट करता है।

झलक

अंतर्निहित भौतिक सेंसर: अपरिभाषित (कुछ भी कम शक्ति)

रिपोर्टिंग-मोड: एक-शॉट

कम बिजली

इस सेंसर के केवल वेक-अप संस्करण को लागू करें।

getDefaultSensor(SENSOR_TYPE_GLANCE_GESTURE) एक वेक-अप सेंसर लौटाता है

एक नज़र जेस्चर सेंसर स्क्रीन को संक्षेप में चालू करने में सक्षम बनाता है ताकि उपयोगकर्ता को एक विशिष्ट गति के आधार पर स्क्रीन पर सामग्री को देखने में सक्षम बनाया जा सके। जब यह सेंसर ट्रिगर करता है, तो डिवाइस स्क्रीन को पल भर में चालू कर देगा ताकि उपयोगकर्ता को नोटिफिकेशन या अन्य सामग्री की अनुमति मिल सके, जबकि डिवाइस एक गैर-इंटरैक्टिव स्थिति (दर्जनों) में लॉक रहता है, फिर स्क्रीन फिर से बंद हो जाएगी। यह व्यवहार (संक्षेप में स्क्रीन को चालू करना जब यह सेंसर ट्रिगर करता है) डिवाइस सेटिंग्स में उपयोगकर्ता द्वारा निष्क्रिय किया जा सकता है। सेटिंग्स में परिवर्तन सेंसर के व्यवहार को प्रभावित नहीं करते हैं: केवल क्या फ्रेमवर्क संक्षेप में स्क्रीन को चालू करता है जब यह ट्रिगर होता है। पता लगाया जाने वाला वास्तविक इशारा निर्दिष्ट नहीं है, और डिवाइस के निर्माता द्वारा चुना जा सकता है।

यह सेंसर कम शक्ति होनी चाहिए, क्योंकि यह 24/7 सक्रिय होने की संभावना है। प्रत्येक सेंसर ईवेंट 1 sensors_event_t.data[0] में रिपोर्ट करता है।

सीमित कुल्हाड़ी imu सेंसर

Android 13 से उपलब्ध, सीमित कुल्हाड़ियों IMU सेंसर सेंसर हैं जो उपयोग का समर्थन करते हैं जहां सभी तीन अक्ष (x, y, z) उपलब्ध नहीं हैं। Android में मानक IMU प्रकार (जैसे कि SENSOR_TYPE_ACCELEROMETER और SENSOR_TYPE_GYROSCOPE ) मान लें कि सभी तीन अक्ष समर्थित हैं। हालांकि, सभी फॉर्म कारक और डिवाइस 3-एक्सिस एक्सेलेरोमीटर और 3-एक्सिस गायरोस्कोप का समर्थन नहीं करते हैं।

एक्सेलेरोमीटर सीमित अक्ष

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर

रिपोर्टिंग-मोड: निरंतर

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES) एक गैर-वेक-अप सेंसर लौटाता है

एक एक्सेलेरोमीटर लिमिटेड एक्सिस सेंसर TYPE_ACCELEROMETER के बराबर है, लेकिन उन मामलों का समर्थन करता है जहां एक या दो कुल्हाड़ियों का समर्थन नहीं किया जाता है।

सेंसर द्वारा रिपोर्ट किए गए अंतिम तीन सेंसर इवेंट मानों का प्रतिनिधित्व करता है कि क्या एक्स, वाई और जेड कुल्हाड़ियों के लिए त्वरण मूल्य समर्थित है। 1.0 का मान इंगित करता है कि अक्ष समर्थित है, और 0 का मान इंगित करता है कि यह समर्थित नहीं है। डिवाइस निर्माता बिल्ड टाइम में समर्थित कुल्हाड़ियों की पहचान करते हैं और रनटाइम के दौरान मान नहीं बदलते हैं।

डिवाइस निर्माताओं को अपरिभाषित मान होने के बजाय अप्रयुक्त अक्षों के लिए त्वरण मानों को 0 पर सेट करना होगा।

गायरोस्कोप सीमित अक्ष

अंतर्निहित भौतिक सेंसर: जाइरोस्कोप

रिपोर्टिंग-मोड: निरंतर

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES) एक गैर-वेक-अप सेंसर लौटाता है

एक जाइरोस्कोप लिमिटेड एक्सिस सेंसर TYPE_GYROSCOPE के बराबर है, लेकिन उन मामलों का समर्थन करता है जहां एक या दो कुल्हाड़ियों का समर्थन नहीं किया जाता है।

सेंसर द्वारा रिपोर्ट किए गए अंतिम तीन सेंसर इवेंट मानों का प्रतिनिधित्व करता है कि क्या एक्स, वाई और जेड एक्स के लिए कोणीय गति मूल्य समर्थित है। 1.0 का मान इंगित करता है कि अक्ष समर्थित है, और 0 का मान इंगित करता है कि यह समर्थित नहीं है। डिवाइस निर्माता बिल्ड टाइम में समर्थित कुल्हाड़ियों की पहचान करते हैं और रनटाइम के दौरान मान नहीं बदलते हैं।

डिवाइस निर्माताओं को अप्रयुक्त कुल्हाड़ियों के लिए 0 पर कोणीय गति मान सेट करना होगा।

एक्सेलेरोमीटर लिमिटेड अक्षों को अनलिब्रेटेड

अंतर्निहित भौतिक सेंसर: एक्सेलेरोमीटर

रिपोर्टिंग-मोड: निरंतर

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED) एक गैर-वेक-अप सेंसर लौटाता है

एक एक्सेलेरोमीटर सीमित कुल्हाड़ियों को अनलिब्रेटेड सेंसर TYPE_ACCELEROMETER_UNCALIBRATED के बराबर है, लेकिन उन मामलों का समर्थन करता है जहां एक या दो कुल्हाड़ियों का समर्थन नहीं किया जाता है।

सेंसर द्वारा रिपोर्ट किए गए अंतिम तीन सेंसर इवेंट मानों का प्रतिनिधित्व करता है कि एक्स, वाई और जेड एक्स के लिए त्वरण और पूर्वाग्रह मूल्यों का समर्थन किया जाता है या नहीं। 1.0 का मान इंगित करता है कि अक्ष समर्थित है, और 0 का मान इंगित करता है कि यह समर्थित नहीं है। डिवाइस निर्माता बिल्ड टाइम में समर्थित कुल्हाड़ियों की पहचान करते हैं और रनटाइम के दौरान मान नहीं बदलते हैं।

डिवाइस निर्माताओं को अप्रयुक्त कुल्हाड़ियों के लिए त्वरण और पूर्वाग्रह मूल्यों को 0 पर सेट करना होगा।

जाइरोस्कोप लिमिटेड कुल्हाड़ियों को अनलिब्रेटेड

अंतर्निहित भौतिक सेंसर: जाइरोस्कोप

रिपोर्टिंग-मोड: निरंतर

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED) एक गैर-वेक-अप सेंसर देता है

एक जाइरोस्कोप लिमिटेड एक्सिस अनलिब्रेटेड सेंसर TYPE_GYROSCOPE_UNCALIBRATED के बराबर है, लेकिन उन मामलों का समर्थन करता है जहां एक या दो कुल्हाड़ियों का समर्थन नहीं किया जाता है।

सेंसर द्वारा रिपोर्ट किए गए अंतिम तीन सेंसर इवेंट मानों का प्रतिनिधित्व करता है कि क्या एक्स, वाई और जेड एक्स के लिए कोणीय गति और बहाव मान समर्थित हैं। 1.0 का मान इंगित करता है कि अक्ष समर्थित है, और 0 का मान इंगित करता है कि यह समर्थित नहीं है। डिवाइस निर्माता बिल्ड टाइम में समर्थित कुल्हाड़ियों की पहचान करते हैं और रनटाइम के दौरान मान नहीं बदलते हैं।

डिवाइस निर्माताओं को अप्रयुक्त कुल्हाड़ियों के लिए 0 पर कोणीय गति और बहाव मान सेट करना होगा।

कम्पोजिट लिमिटेड कुल्हाड़ी IMU

अंतर्निहित भौतिक सेंसर: 3-एक्सिस एक्सेलेरोमीटर, 3-एक्सिस गायरोस्कोप, 3-एक्सिस एक्सेलेरोमीटर अनलिब्रेटेड, और 3-एक्सिस गायरोस्कोप अनलिब्रेटेड सेंसर का कोई भी संयोजन।

रिपोर्टिंग-मोड: निरंतर

एक समग्र सीमित कुल्हाड़ी IMU सेंसर एक सीमित कुल्हाड़ियों IMU सेंसर के बराबर है, लेकिन HAL में समर्थित होने के बजाय, यह 3-अक्ष सेंसर डेटा को समतुल्य सीमित कुल्हाड़ियों वेरिएंट में परिवर्तित करता है। ये समग्र सेंसर केवल मोटर वाहन उपकरणों के लिए सक्षम हैं।

निम्न तालिका एक मानक 3-अक्ष एक्सेलेरोमीटर से एक समग्र सीमित कुल्हाड़ियों एक्सेलेरोमीटर के लिए एक उदाहरण रूपांतरण दिखाती है।

Sensor_type_accelerometer के लिए Sensorevent मान उदाहरण Sensor_type_accelerometer Sensorevent समग्र Sensor_type_accelerometer_limited_axes sensorevent
मान [0]

-0.065

-0.065

मान [1]

0.078

0.078

मान [२]

9.808

9.808

मान [3]

एन/ए

1.0

मान [४]

एन/ए

1.0

मान [५]

एन/ए

1.0

मोटर वाहन संवेदक

ऑटोमोटिव उपयोग के मामलों का समर्थन करने के लिए सेंसर।

शीर्षक

अंतर्निहित भौतिक सेंसर: जीपीएस, मैग्नेटोमीटर, एक्सेलेरोमीटर और गायरोस्कोप का कोई भी संयोजन।

रिपोर्टिंग-मोड: निरंतर

getDefaultSensor(SENSOR_TYPE_HEADING) एक गैर-वेक-अप सेंसर देता है

Android 13 से उपलब्ध, एक हेडिंग सेंसर उस दिशा को मापता है जिसमें डिवाइस डिग्री में सच उत्तर के सापेक्ष इंगित कर रहा है। हेडिंग सेंसर में दो SensorEvent मान शामिल हैं। मापा डिवाइस शीर्षक के लिए एक और प्रदान किए गए हेडिंग मूल्य की सटीकता के लिए एक।

इस सेंसर द्वारा रिपोर्ट किए गए हेडिंग मान 0.0 (समावेशी) और 360.0 (अनन्य) के बीच होने चाहिए, जिसमें 0 उत्तर, 90 पूर्व, 180 दक्षिण और 270 पश्चिम का संकेत है।

इस सेंसर के लिए सटीकता को 68 प्रतिशत आत्मविश्वास पर परिभाषित किया गया है। उस मामले में जहां अंतर्निहित वितरण गाऊसी सामान्य है, सटीकता एक मानक विचलन है। उदाहरण के लिए, यदि हेडिंग सेंसर 60 डिग्री का हेडिंग मान और 10 डिग्री की सटीकता मूल्य देता है, तो 50 डिग्री और 70 डिग्री के बीच वास्तविक शीर्षक की 68 प्रतिशत संभावना है।