يصف هذا القسم محاور المستشعرات، وأجهزة الاستشعار الأساسية، وأجهزة الاستشعار المركبة (النشاط، والموقف، وغير المعايرة، والتفاعل).
محاور الاستشعار
يتم التعبير عن قيم حدث المستشعر من العديد من المستشعرات في إطار محدد يكون ثابتًا بالنسبة للجهاز.
محاور الأجهزة المحمولة
ترتبط واجهة برمجة تطبيقات الاستشعار فقط بالاتجاه الطبيعي للشاشة (لا يتم تبديل المحاور عندما يتغير اتجاه شاشة الجهاز.
![تنسيق نظام API الاستشعار للأجهزة المحمولة](https://developer.android.google.cn/images/axis_device.png?authuser=5&hl=ar)
الشكل 1. نظام الإحداثيات (بالنسبة لجهاز محمول) الذي تستخدمه واجهة برمجة تطبيقات الاستشعار
محاور السيارات
في تطبيقات Android Automotive، يتم تحديد المحاور فيما يتعلق بإطار جسم السيارة. أصل الإطار المرجعي للمركبة هو مركز المحور الخلفي. يتم توجيه الإطار المرجعي للمركبة بحيث:
- يشير المحور السيني إلى اليمين ويقع على مستوى أفقي، متعامد مع مستوى تماثل المركبة.
- يشير المحور Y إلى الأمام ويقع على مستوى أفقي.
![تنسيق نظام API الاستشعار لأجهزة السيارات](https://source.android.google.cn/static/docs/core/interaction/sensors/images/axis_auto.png?authuser=5&hl=ar)
الشكل 2. نظام الإحداثيات (بالنسبة لجهاز السيارات) الذي تستخدمه واجهة برمجة تطبيقات الاستشعار
الإطار المرجعي للمركبة هو نظام إحداثيات أيمن. لذلك، يشير المحور Z إلى الأعلى.
يتم محاذاة المحور Z للإطار المرجعي مع الجاذبية، مما يعني أن المحور X والمحور Y كلاهما أفقي. ونتيجة لذلك، قد لا يمر المحور Y دائمًا عبر المحور الأمامي.
أجهزة الاستشعار الأساسية
تتم تسمية أنواع المستشعرات الأساسية على اسم المستشعرات المادية التي تمثلها. تقوم هذه المستشعرات بنقل البيانات من مستشعر مادي واحد (على عكس المستشعرات المركبة التي تولد بيانات من أجهزة استشعار أخرى). تتضمن أمثلة أنواع المستشعرات الأساسية ما يلي:
-
SENSOR_TYPE_ACCELEROMETER
-
SENSOR_TYPE_GYROSCOPE
-
SENSOR_TYPE_MAGNETOMETER
ومع ذلك، فإن المستشعرات الأساسية لا تتساوى مع المستشعر الفعلي الأساسي الخاص بها ولا ينبغي الخلط بينها. البيانات الواردة من المستشعر الأساسي ليست ناتجًا أوليًا للمستشعر المادي لأنه يتم تطبيق التصحيحات (مثل تعويض التحيز وتعويض درجة الحرارة).
على سبيل المثال، قد تختلف خصائص المستشعر الأساسي عن خصائص المستشعر الفعلي الأساسي في حالات الاستخدام التالية:
- تم تصنيف شريحة الجيروسكوب على أنها تحتوي على نطاق انحياز قدره 1 درجة/ثانية.
- بعد معايرة المصنع، يتم تطبيق تعويض درجة الحرارة وتعويض التحيز، وسيتم تقليل التحيز الفعلي لمستشعر Android، وقد يصل إلى نقطة يتم فيها ضمان أن يكون التحيز أقل من 0.01 درجة / ثانية.
- في هذه الحالة، نقول أن مستشعر Android لديه انحياز أقل من 0.01 درجة/ثانية، على الرغم من أن ورقة بيانات المستشعر الأساسي تشير إلى 1 درجة/ثانية.
- مقياس بارومتر باستهلاك طاقة 100 uW.
- نظرًا لأن البيانات التي تم إنشاؤها يجب أن يتم نقلها من الشريحة إلى SoC، فإن تكلفة الطاقة الفعلية لجمع البيانات من مستشعر Android البارومتر قد تكون أعلى بكثير، على سبيل المثال 1000 uW.
- في هذه الحالة، نقول أن مستشعر Android لديه استهلاك طاقة يبلغ 1000 uW، على الرغم من أن استهلاك الطاقة المقاس عند أسلاك شريحة البارومتر هو 100uW.
- مقياس مغناطيسي يستهلك 100uW عند معايرته، ولكنه يستهلك أكثر عند معايرته.
- قد يتطلب روتين المعايرة الخاص به تفعيل الجيروسكوب، مما يستهلك 5000 وحدة وات، وتشغيل بعض الخوارزميات، بتكلفة 900 وحدة وات أخرى.
- في هذه الحالة نقول أن الحد الأقصى لاستهلاك الطاقة لمستشعر الأندرويد (مقياس المغناطيسية) هو 6000 uW.
- في هذه الحالة، يعد متوسط استهلاك الطاقة هو المقياس الأكثر فائدة، وهو ما يتم الإبلاغ عنه في خصائص المستشعر الثابتة من خلال HAL.
مقياس التسارع
وضع التقارير: مستمر
يقوم getDefaultSensor(SENSOR_TYPE_ACCELEROMETER)
بإرجاع مستشعر عدم الاستيقاظ
يقوم مستشعر التسارع بالإبلاغ عن تسارع الجهاز على طول محاور المستشعر الثلاثة. يشمل التسارع المُقاس كلا من التسارع الفيزيائي (تغير السرعة) والجاذبية. يتم الإبلاغ عن القياس في الحقول x وy وz الخاصة بـ Sensors_event_t.acceleration.
جميع القيم بوحدات النظام الدولي (م/ث^2) وتقيس تسارع الجهاز مطروحًا منه قوة الجاذبية على طول محاور المستشعر الثلاثة.
فيما يلي أمثلة:
- يجب أن يكون معيار (x، y، z) قريبًا من 0 عند السقوط الحر.
- عندما يكون الجهاز مسطحًا على طاولة ويتم دفعه من جانبه الأيسر نحو اليمين، تكون قيمة التسارع x موجبة.
- عندما يكون الجهاز مسطحًا على طاولة، تكون قيمة التسارع على طول z هي +9.81 alo، وهو ما يتوافق مع تسارع الجهاز (0 م/ث^2) مطروحًا منه قوة الجاذبية (-9.81 م/ث^2).
- عندما يكون الجهاز مسطحًا على طاولة ويتم دفعه نحو السماء، تكون قيمة التسارع أكبر من +9.81، وهو ما يتوافق مع تسارع الجهاز (+A م/ث^2) ناقص قوة الجاذبية (-9.81 م) / ق ^ 2).
تتم معايرة القراءات باستخدام:
- تعويض درجة الحرارة
- معايرة التحيز على الانترنت
- معايرة النطاق عبر الإنترنت
يجب تحديث معايرة الانحياز والمقياس فقط أثناء إلغاء تنشيط المستشعر، وذلك لتجنب التسبب في حدوث قفزات في القيم أثناء الدفق.
يُبلغ مقياس التسارع أيضًا عن مدى الدقة التي يتوقع أن تكون بها قراءاته من خلال sensors_event_t.acceleration.status
. راجع ثوابت SENSOR_STATUS_*
الخاصة بـ SensorManager
لمزيد من المعلومات حول القيم المحتملة لهذا الحقل.
درجة الحرارة المحيطة
وضع التقارير: عند التغيير
getDefaultSensor(SENSOR_TYPE_AMBIENT_TEMPERATURE)
يُرجع مستشعر عدم الاستيقاظ
يوفر هذا المستشعر درجة الحرارة المحيطة (الغرفة) بالدرجات المئوية.
مستشعر المجال المغناطيسي
وضع التقارير: مستمر
يقوم getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD)
بإرجاع مستشعر عدم الاستيقاظ
SENSOR_TYPE_GEOMAGNETIC_FIELD == SENSOR_TYPE_MAGNETIC_FIELD
يقوم مستشعر المجال المغناطيسي (المعروف أيضًا باسم مقياس المغناطيسية) بالإبلاغ عن المجال المغناطيسي المحيط، كما تم قياسه على طول محاور المستشعر الثلاثة.
يتم الإبلاغ عن القياس في الحقول x وy وz الخاصة بـ sensors_event_t.magnetic
وجميع القيم موجودة في Micro-Tesla (uT).
يُبلغ مقياس المغناطيسية أيضًا عن مدى الدقة التي يتوقع أن تكون بها قراءاته من خلال sensors_event_t.magnetic.status
. راجع ثوابت SENSOR_STATUS_*
الخاصة بـ SensorManager
لمزيد من المعلومات حول القيم المحتملة لهذا الحقل.
تتم معايرة القراءات باستخدام:
- تعويض درجة الحرارة
- معايرة الحديد الناعم في المصنع (أو عبر الإنترنت).
- معايرة الحديد الصلب عبر الإنترنت
جيروسكوب
وضع التقارير: مستمر
يقوم getDefaultSensor(SENSOR_TYPE_GYROSCOPE)
بإرجاع مستشعر عدم الاستيقاظ
يقوم مستشعر الجيروسكوب بإبلاغ معدل دوران الجهاز حول محاور المستشعر الثلاثة.
يكون الدوران إيجابيًا في اتجاه عكس عقارب الساعة (قاعدة اليد اليمنى). وهذا يعني أن المراقب الذي ينظر من موقع إيجابي على المحور x أو y أو z إلى جهاز متوضع على نقطة الأصل سيبلغ عن دوران إيجابي إذا بدا أن الجهاز يدور عكس اتجاه عقارب الساعة. لاحظ أن هذا هو التعريف الرياضي القياسي للدوران الإيجابي ولا يتفق مع تعريف الفضاء الجوي للفة.
يتم الإبلاغ عن القياس في الحقول x وy وz الخاصة بـ sensors_event_t.gyro
وجميع القيم بوحدة الراديان في الثانية (rad/s).
تتم معايرة القراءات باستخدام:
- تعويض درجة الحرارة
- التعويض على نطاق المصنع (أو عبر الإنترنت).
- معايرة التحيز عبر الإنترنت (لإزالة الانحراف)
يُبلغ الجيروسكوب أيضًا عن مدى الدقة التي يتوقع أن تكون بها قراءاته من خلال sensors_event_t.gyro.status
. راجع ثوابت SENSOR_STATUS_*
الخاصة بـ SensorManager
لمزيد من المعلومات حول القيم المحتملة لهذا الحقل.
لا يمكن محاكاة الجيروسكوب استنادًا إلى مقاييس المغناطيسية ومقاييس التسارع، حيث قد يؤدي ذلك إلى تقليل الاتساق والاستجابة المحلية. يجب أن يعتمد على شريحة جيروسكوب عادية.
معدل ضربات القلب
وضع التقارير: عند التغيير
يقوم getDefaultSensor(SENSOR_TYPE_HEART_RATE)
بإرجاع مستشعر عدم الاستيقاظ
يقوم مستشعر معدل ضربات القلب بالإبلاغ عن معدل ضربات القلب الحالي للشخص الذي يلمس الجهاز.
يتم الإبلاغ عن معدل ضربات القلب الحالي بعدد نبضات في الدقيقة (BPM) في sensors_event_t.heart_rate.bpm
ويتم الإبلاغ عن حالة المستشعر في sensors_event_t.heart_rate.status
. راجع ثوابت SENSOR_STATUS_*
الخاصة بـ SensorManager
لمزيد من المعلومات حول القيم المحتملة لهذا الحقل. على وجه الخصوص، عند التنشيط الأول، ما لم يكن الجهاز معروفًا بأنه غير موجود على الجسم، يجب تعيين حقل الحالة للحدث الأول على SENSOR_STATUS_UNRELIABLE
. نظرًا لأن هذا المستشعر قيد التغيير، يتم إنشاء الأحداث عندما وفقط عندما يتغير heart_rate.bpm
أو heart_rate.status
منذ الحدث الأخير. لا يتم إنشاء الأحداث بشكل أسرع من كل sampling_period
.
sensor_t.requiredPermission
هو دائما SENSOR_PERMISSION_BODY_SENSORS
.
ضوء
وضع التقارير: عند التغيير
يقوم getDefaultSensor(SENSOR_TYPE_LIGHT)
بإرجاع مستشعر عدم الاستيقاظ
يقوم مستشعر الضوء بإبلاغ الإضاءة الحالية بوحدات SI lux.
تم الإبلاغ عن القياس في sensors_event_t.light
.
القرب
وضع التقارير: عند التغيير
يتم تعريفه عادةً على أنه جهاز استشعار للاستيقاظ
يقوم getDefaultSensor(SENSOR_TYPE_PROXIMITY)
بإرجاع مستشعر التنبيه
يقوم مستشعر القرب بإبلاغ المسافة من المستشعر إلى أقرب سطح مرئي.
حتى Android 4.4، كانت مستشعرات القرب دائمًا عبارة عن مستشعرات تنبيه، حيث تقوم بإيقاظ SoC عند اكتشاف تغيير في القرب. بعد Android 4.4، ننصح بتطبيق إصدار التنبيه من هذا المستشعر أولاً، لأنه هو الذي يستخدم لتشغيل وإيقاف الشاشة أثناء إجراء المكالمات الهاتفية.
يتم تسجيل القياس بالسنتيمتر في sensors_event_t.distance
. لاحظ أن بعض أجهزة استشعار القرب تدعم فقط القياس الثنائي "القريب" أو "البعيد". في هذه الحالة، يقوم المستشعر بالإبلاغ عن قيمة sensor_t.maxRange
الخاصة به في الحالة "البعيدة" وقيمة أقل من قيمة sensor_t.maxRange
في الحالة "القريبة".
ضغط
وضع التقارير: مستمر
يقوم getDefaultSensor(SENSOR_TYPE_PRESSURE)
بإرجاع مستشعر عدم الاستيقاظ
يُبلغ مستشعر الضغط (المعروف أيضًا باسم البارومتر) عن الضغط الجوي بالهكتوباسكال (hPa).
تتم معايرة القراءات باستخدام
- تعويض درجة الحرارة
- معايرة تحيز المصنع
- معايرة مقياس المصنع
غالبًا ما يستخدم البارومتر لتقدير تغيرات الارتفاع. لتقدير الارتفاع المطلق، يجب استخدام ضغط مستوى سطح البحر (الذي يتغير حسب الطقس) كمرجع.
الرطوبة النسبية
وضع التقارير: عند التغيير
getDefaultSensor(SENSOR_TYPE_RELATIVE_HUMIDITY)
يُرجع مستشعر عدم الاستيقاظ
يقوم مستشعر الرطوبة النسبية بقياس رطوبة الهواء المحيط النسبية ويعيد قيمة بالنسبة المئوية.
أنواع أجهزة الاستشعار المركبة
يقوم المستشعر المركب بإنشاء البيانات عن طريق معالجة و/أو دمج البيانات من واحد أو أكثر من أجهزة الاستشعار المادية. (يسمى أي مستشعر ليس مستشعرًا أساسيًا بالمستشعر المركب.) تتضمن أمثلة المستشعرات المركبة ما يلي:
- كاشف الخطوات والحركة المهمة ، والتي تعتمد عادةً على مقياس التسارع، ولكن يمكن أن تعتمد على مستشعرات أخرى أيضًا، إذا كان استهلاك الطاقة والدقة مقبولين.
- ناقل دوران اللعبة ، استنادًا إلى مقياس التسارع والجيروسكوب.
- جيروسكوب غير معاير ، وهو مشابه لمستشعر قاعدة الجيروسكوب، ولكن مع الإبلاغ عن معايرة التحيز بشكل منفصل بدلاً من تصحيحها في القياس.
كما هو الحال مع أجهزة الاستشعار الأساسية، فإن خصائص أجهزة الاستشعار المركبة تأتي من خصائص بياناتها النهائية. على سبيل المثال، من المحتمل أن يكون استهلاك الطاقة لمتجه دوران اللعبة مساويًا لمجموع استهلاك الطاقة لشريحة مقياس التسارع، وشريحة الجيروسكوب، وشريحة معالجة البيانات، والحافلات التي تنقل البيانات. وكمثال آخر، يعتمد انجراف متجه دوران اللعبة على جودة خوارزمية المعايرة بقدر ما يعتمد على خصائص المستشعر المادي.
يسرد الجدول التالي أنواع أجهزة الاستشعار المركبة المتاحة. يعتمد كل مستشعر مركب على البيانات الواردة من واحد أو أكثر من أجهزة الاستشعار المادية. تجنب اختيار أجهزة الاستشعار المادية الأساسية الأخرى لتقريب النتائج لأنها توفر تجربة مستخدم سيئة.
نوع الاستشعار | فئة | أجهزة الاستشعار المادية الأساسية | وضع التقارير |
---|---|---|---|
سلوك | مقياس التسارع، الجيروسكوب، يجب عدم استخدام مقياس المغناطيسية | مستمر | |
سلوك | مقياس التسارع، مقياس المغناطيسية، يجب عدم استخدام الجيروسكوب | مستمر | |
لفتة نظرة خاطفة ![]() | تفاعل | غير معرف | ضربة واحدة |
سلوك | مقياس التسارع، الجيروسكوب | مستمر | |
غير معايرة | جيروسكوب | مستمر | |
نشاط | مقياس التسارع أو الجيروسكوب (إن وجد) أو مقياس المغناطيسية (إذا لم يكن الجيروسكوب موجودًا) | مستمر | |
غير معايرة | مقياس المغناطيسية | مستمر | |
الاتجاه (مهمل) | سلوك | مقياس التسارع، مقياس المغناطيسية، الجيروسكوب (إن وجد) | مستمر |
تفاعل | غير معرف | ضربة واحدة | |
سلوك | مقياس التسارع، مقياس المغناطيسية، الجيروسكوب | مستمر | |
نشاط | مقياس التسارع (أو أي جهاز آخر طالما أن الطاقة منخفضة جدًا) | ضربة واحدة | |
نشاط | مقياس التسارع | على التغيير | |
نشاط | مقياس التسارع | خاص | |
نشاط | مقياس التسارع | خاص | |
تفاعل | غير معرف | ضربة واحدة |
= مستشعر منخفض الطاقة
أجهزة استشعار النشاط المركبة
التسارع الخطي
المستشعرات المادية الأساسية: مقياس التسارع والجيروسكوب (إن وجد) (أو مقياس المغناطيسية في حالة عدم وجود الجيروسكوب)
وضع التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_LINEAR_ACCELERATION)
يُرجع مستشعر عدم الاستيقاظ
يقوم مستشعر التسارع الخطي بالإبلاغ عن التسارع الخطي للجهاز في إطار المستشعر، ولا يشمل الجاذبية.
الإخراج من الناحية النظرية: ناتج مقياس التسارع مطروحًا منه مخرج مستشعر الجاذبية . يتم الإبلاغ عنها بوحدة m/s^2 في الحقول x وy وz الخاصة بـ sensors_event_t.acceleration
.
يجب أن تكون القراءات على جميع المحاور قريبة من 0 عندما يكون الجهاز غير متحرك.
إذا كان الجهاز يحتوي على جيروسكوب، فيجب أن يستخدم مستشعر التسارع الخطي الجيروسكوب ومقياس التسارع كمدخل.
إذا لم يكن الجهاز يحتوي على جيروسكوب، فيجب على مستشعر التسارع الخطي استخدام مقياس التسارع ومقياس المغناطيسية كمدخل.
حركة كبيرة
المستشعر الفعلي الأساسي: مقياس التسارع (أو جهاز آخر طالما أن الطاقة منخفضة)
وضع التقرير: طلقة واحدة
طاقة منخفضة
قم بتنفيذ نسخة التنبيه من هذا المستشعر فقط.
getDefaultSensor(SENSOR_TYPE_SIGNIFICANT_MOTION)
يُرجع مستشعر التنبيه
يتم تشغيل كاشف الحركة المهمة عند اكتشاف حركة مهمة : حركة قد تؤدي إلى تغيير في موقع المستخدم.
ومن أمثلة هذه الحركات المهمة ما يلي:
- المشي أو ركوب الدراجة
- الجلوس في سيارة متحركة أو حافلة أو قطار
أمثلة على المواقف التي لا تؤدي إلى حركة كبيرة:
- الهاتف في الجيب والشخص لا يتحرك
- الهاتف على الطاولة واهتزت الطاولة قليلاً بسبب حركة المرور أو الغسالة القريبة
على المستوى العالي، يتم استخدام كاشف الحركة الهام لتقليل استهلاك الطاقة لتحديد الموقع. عندما تكتشف خوارزميات الترجمة أن الجهاز ثابت، يمكنها التبديل إلى وضع الطاقة المنخفضة، حيث تعتمد على حركة كبيرة لإيقاظ الجهاز عندما يقوم المستخدم بتغيير الموقع.
يجب أن يكون هذا المستشعر منخفض الطاقة. فهو يقوم بإجراء مقايضة لاستهلاك الطاقة مما قد يؤدي إلى كمية صغيرة من السلبيات الكاذبة. يتم ذلك لعدة أسباب:
- الهدف من هذا المستشعر هو توفير الطاقة.
- يعد إطلاق حدث عندما لا يتحرك المستخدم (إيجابي كاذب) أمرًا مكلفًا من حيث الطاقة، لذا يجب تجنبه.
- يعد عدم تشغيل حدث أثناء تحرك المستخدم (سلبي كاذب) أمرًا مقبولًا طالما لم يتم ذلك بشكل متكرر. إذا كان المستخدم يمشي لمدة 10 ثوانٍ، فمن غير المقبول عدم تشغيل حدث خلال تلك الثواني العشر.
يُبلغ كل حدث مستشعر 1
في sensors_event_t.data[0]
.
كاشف الخطوة
المستشعر المادي الأساسي: مقياس التسارع (+ ربما أجهزة أخرى طالما أن الطاقة منخفضة)
وضع التقارير: خاص (حدث واحد لكل خطوة يتم اتخاذها)
طاقة منخفضة
يقوم getDefaultSensor(SENSOR_TYPE_STEP_DETECTOR)
بإرجاع مستشعر عدم الاستيقاظ
يقوم كاشف الخطوات بإنشاء حدث في كل مرة يتخذ فيها المستخدم خطوة.
الطابع الزمني للحدث sensors_event_t.timestamp
يتوافق مع وقت اصطدام القدم بالأرض، مما يؤدي إلى حدوث تباين كبير في التسارع.
بالمقارنة مع عداد الخطوات، يجب أن يتمتع كاشف الخطوات بزمن وصول أقل (أقل من ثانيتين). يكتشف كل من كاشف الخطوات وعداد الخطوات عندما يمشي المستخدم ويجري ويصعد الدرج. ويجب ألا يتم تشغيلها عندما يقوم المستخدم بركوب الدراجة أو القيادة أو في مركبات أخرى.
يجب أن يكون هذا المستشعر منخفض الطاقة. أي أنه إذا تعذر إجراء اكتشاف الخطوة في الأجهزة، فلا ينبغي تعريف هذا المستشعر. على وجه الخصوص، عندما يتم تنشيط كاشف الخطوات ولا يتم تنشيط مقياس التسارع، فإن الخطوات فقط هي التي يجب أن تؤدي إلى المقاطعات (وليس كل قراءة لمقياس التسارع).
ليس لـ sampling_period_ns
أي تأثير على أجهزة كشف الخطوات.
يُبلغ كل حدث مستشعر 1
في sensors_event_t.data[0]
.
عداد الخطوات
المستشعر المادي الأساسي: مقياس التسارع (+ ربما أجهزة أخرى طالما أن الطاقة منخفضة)
وضع التقارير: عند التغيير
طاقة منخفضة
يقوم getDefaultSensor(SENSOR_TYPE_STEP_COUNTER)
بإرجاع مستشعر عدم الاستيقاظ
يُبلغ عداد الخطوات عن عدد الخطوات التي اتخذها المستخدم منذ آخر عملية إعادة تشغيل أثناء التنشيط.
يتم الإبلاغ عن القياس باعتباره uint64_t
في sensors_event_t.step_counter
ويتم إعادة تعيينه إلى الصفر فقط عند إعادة تشغيل النظام.
يتم تعيين الطابع الزمني للحدث على الوقت الذي تم فيه اتخاذ الخطوة الأخيرة لهذا الحدث.
راجع نوع مستشعر كاشف الخطوة للتعرف على وقت الخطوة.
بالمقارنة مع كاشف الخطوات، يمكن أن يتمتع عداد الخطوات بزمن وصول أعلى (يصل إلى 10 ثوانٍ). بفضل هذا الكمون، يتمتع هذا المستشعر بدقة عالية؛ يجب أن يكون عدد الخطوات بعد يوم كامل من التدابير في حدود 10% من عدد الخطوات الفعلي. يكتشف كل من كاشف الخطوات وعداد الخطوات عندما يمشي المستخدم ويجري ويصعد الدرج. ويجب ألا يتم تشغيلها عندما يقوم المستخدم بركوب الدراجة أو القيادة أو في مركبات أخرى.
يجب أن يضمن الجهاز عدم تجاوز عدد الخطوات الداخلية مطلقًا. يجب أن يكون الحد الأدنى لحجم العداد الداخلي للجهاز 16 بت. في حالة الفائض الوشيك (على الأكثر كل ~ 2 ^ 16 خطوة)، يمكن إيقاظ SoC حتى يتمكن السائق من إجراء صيانة العداد.
كما هو مذكور في التفاعل ، أثناء عمل هذا المستشعر، يجب ألا يعطل أي مستشعرات أخرى، على وجه الخصوص، مقياس التسارع، الذي قد يكون قيد الاستخدام.
إذا كان جهاز معين لا يمكنه دعم أوضاع التشغيل هذه، فيجب ألا يتم الإبلاغ عن نوع المستشعر هذا بواسطة HAL. أي أنه من غير المقبول "محاكاة" هذا المستشعر في HAL.
يجب أن يكون هذا المستشعر منخفض الطاقة. أي أنه إذا تعذر إجراء اكتشاف الخطوة في الأجهزة، فلا ينبغي تعريف هذا المستشعر. على وجه الخصوص، عندما يتم تنشيط عداد الخطوات ولا يتم تنشيط مقياس التسارع، يجب أن تؤدي الخطوات فقط إلى تشغيل المقاطعات (وليس بيانات مقياس التسارع).
كاشف الميل
المستشعر المادي الأساسي: مقياس التسارع (+ ربما أجهزة أخرى طالما أن الطاقة منخفضة)
وضع التقارير: خاص
طاقة منخفضة
قم بتنفيذ نسخة التنبيه من هذا المستشعر فقط.
يقوم getDefaultSensor(SENSOR_TYPE_TILT_DETECTOR)
بإرجاع مستشعر التنبيه
يقوم كاشف الإمالة بإنشاء حدث في كل مرة يتم فيها اكتشاف حدث إمالة.
يتم تحديد حدث الإمالة من خلال تغيير اتجاه متوسط الجاذبية للنافذة لمدة ثانيتين بمقدار 35 درجة على الأقل منذ التنشيط أو آخر حدث تم إنشاؤه بواسطة المستشعر. هنا الخوارزمية:
-
reference_estimated_gravity
= متوسط قياسات مقياس التسارع خلال الثانية الأولى بعد التنشيط أو الجاذبية المقدرة عند إنشاء حدث الميل الأخير. -
current_estimated_gravity
= متوسط قياسات مقياس التسارع خلال آخر ثانيتين. - يتم التشغيل عندما
angle(reference_estimated_gravity, current_estimated_gravity) > 35 degrees
لا ينبغي أن تؤدي عمليات التسارع الكبيرة بدون تغيير في اتجاه الهاتف إلى حدوث حدث إمالة. على سبيل المثال، لا ينبغي أن يؤدي الانعطاف الحاد أو التسارع القوي أثناء قيادة السيارة إلى حدوث ميل، على الرغم من أن زاوية متوسط التسارع قد تختلف بأكثر من 35 درجة. عادةً ما يتم تنفيذ هذا المستشعر باستخدام مقياس التسارع فقط. يمكن استخدام أجهزة استشعار أخرى أيضًا إذا لم تزيد من استهلاك الطاقة بشكل كبير. هذا مستشعر منخفض الطاقة من شأنه أن يسمح لـ SoC بالانتقال إلى وضع التوقف المرحلي. لا تقم بمحاكاة هذا المستشعر في HAL. يُبلغ كل حدث مستشعر 1
في sensors_event_t.data[0]
.
أجهزة الاستشعار المركبة الموقف
ناقل الدوران
أجهزة الاستشعار المادية الأساسية: مقياس التسارع، ومقياس المغناطيسية، والجيروسكوب
وضع التقارير: مستمر
يقوم 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)
أين:
- حقول x وy وz لمحور
rot_axis
هي إحداثيات الشرق والشمال لأعلى لمتجه طول الوحدة الذي يمثل محور الدوران -
theta
هي زاوية الدوران
الرباعي هو وحدة رباعية: يجب أن يكون من القاعدة 1
. سيؤدي الفشل في التأكد من ذلك إلى سلوك العميل غير المنتظم.
بالإضافة إلى ذلك، يُبلغ هذا المستشعر عن دقة توجيه مقدرة:
sensors_event_t.data[4] = estimated_accuracy
(بالراديان)
يجب أن يكون خطأ العنوان أقل من estimated_accuracy
95% من الوقت. يجب أن يستخدم هذا المستشعر الجيروسكوب كمدخل تغيير الاتجاه الرئيسي.
يستخدم هذا المستشعر أيضًا مدخلات مقياس التسارع ومقياس المغناطيسية لتعويض انحراف الجيروسكوب، ولا يمكن تنفيذه باستخدام مقياس التسارع ومقياس المغنطيسية فقط.
ناقل دوران اللعبة
المستشعرات المادية الأساسية: مقياس التسارع والجيروسكوب (لا يوجد مقياس مغناطيسي)
وضع التقارير: مستمر
يقوم getDefaultSensor(SENSOR_TYPE_GAME_ROTATION_VECTOR)
بإرجاع مستشعر عدم الاستيقاظ
يشبه مستشعر متجه دوران اللعبة مستشعر متجه الدوران ولكنه لا يستخدم المجال المغنطيسي الأرضي. وبالتالي فإن المحور Y لا يشير إلى الشمال بل إلى مرجع آخر. يُسمح لهذا المرجع بالانجراف بنفس الترتيب الذي ينجرف به الجيروسكوب حول المحور Z.
راجع مستشعر متجه الدوران للحصول على تفاصيل حول كيفية ضبط sensors_event_t.data[0-3]
. لا يُبلغ هذا المستشعر عن دقة العنوان المقدرة: تم حجز sensors_event_t.data[4]
ويجب ضبطه على 0
.
في الحالة المثالية، يجب أن يُبلغ الهاتف الذي تم تدويره وإعادته إلى نفس اتجاه العالم الحقيقي عن نفس اتجاه دوران اللعبة.
يجب أن يعتمد هذا المستشعر على الجيروسكوب ومقياس التسارع. ولا يمكن استخدام مقياس المغناطيسية كمدخل، بالإضافة إلى ذلك، بشكل غير مباشر، من خلال تقدير انحياز الجيروسكوب.
جاذبية
المستشعرات المادية الأساسية: مقياس التسارع والجيروسكوب (إن وجد) (أو مقياس المغناطيسية في حالة عدم وجود الجيروسكوب)
وضع التقارير: مستمر
يقوم getDefaultSensor(SENSOR_TYPE_GRAVITY)
بإرجاع مستشعر عدم الاستيقاظ
يقوم مستشعر الجاذبية بالإبلاغ عن اتجاه وحجم الجاذبية في إحداثيات الجهاز.
يتم الإبلاغ عن مكونات متجه الجاذبية بوحدة m/s^2 في الحقول x وy وz الخاصة بـ sensors_event_t.acceleration
.
عندما يكون الجهاز في وضع الراحة، يجب أن يكون خرج مستشعر الجاذبية مطابقًا لإخراج مقياس التسارع. على الأرض، يبلغ القدر حوالي 9.8 م/ث^2.
إذا كان الجهاز يحتوي على جيروسكوب، فيجب أن يستخدم مستشعر الجاذبية الجيروسكوب ومقياس التسارع كمدخل.
إذا لم يكن الجهاز يحتوي على جيروسكوب، فيجب أن يستخدم مستشعر الجاذبية مقياس التسارع ومقياس المغناطيسية كمدخل.
ناقل الدوران المغنطيسي الأرضي
المستشعرات المادية الأساسية: مقياس التسارع ومقياس المغناطيسية (بدون جيروسكوب)
وضع التقارير: مستمر
طاقة منخفضة
يقوم getDefaultSensor(SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR)
بإرجاع مستشعر عدم الاستيقاظ
يشبه ناقل الدوران المغنطيسي الأرضي مستشعر ناقل الدوران ولكنه يستخدم مقياس المغناطيسية ولا يستخدم جيروسكوب.
يجب أن يعتمد هذا المستشعر على مقياس المغناطيسية. لا يمكن تنفيذه باستخدام الجيروسكوب، ولا يمكن استخدام مدخلات الجيروسكوب بواسطة هذا المستشعر.
راجع مستشعر متجه الدوران للحصول على تفاصيل حول كيفية ضبط sensors_event_t.data[0-4]
.
تمامًا كما هو الحال بالنسبة لمستشعر متجه الدوران، يجب أن يكون خطأ الاتجاه أقل من الدقة المقدرة ( sensors_event_t.data[4]
) بنسبة 95% من الوقت.
يجب أن يكون هذا المستشعر منخفض الطاقة، لذلك يجب تنفيذه في الأجهزة.
الاتجاه (مهمل)
أجهزة الاستشعار المادية الأساسية: مقياس التسارع ومقياس المغناطيسية والجيروسكوب (إن وجد).
وضع التقارير: مستمر
يقوم getDefaultSensor(SENSOR_TYPE_ORIENTATION)
بإرجاع مستشعر عدم الاستيقاظ
ملاحظة: هذا نوع مستشعر قديم تم إهماله في Android SDK. تم استبداله بمستشعر ناقل الدوران، والذي تم تعريفه بشكل أكثر وضوحًا. استخدم مستشعر ناقل الدوران فوق مستشعر التوجيه كلما أمكن ذلك.
يقوم مستشعر الاتجاه بالإبلاغ عن موقف الجهاز. يتم الإبلاغ عن القياسات بالدرجات في مجالات x وy وz الخاصة بـ sensors_event_t.orientation
:
-
sensors_event_t.orientation.x
: السمت، الزاوية بين اتجاه الشمال المغناطيسي والمحور Y، حول المحور Z (0<=azimuth<360
). 0=الشمال، 90=الشرق، 180=الجنوب، 270=الغرب. -
sensors_event_t.orientation.y
: درجة الدوران، الدوران حول المحور X (-180<=pitch<=180
)، مع قيم موجبة عندما يتحرك المحور Z نحو المحور Y. -
sensors_event_t.orientation.z
: لفة، دوران حول المحور Y (-90<=roll<=90
)، مع قيم موجبة عندما يتحرك المحور X نحو المحور Z.
يرجى ملاحظة أنه لأسباب تاريخية، تكون زاوية الالتفاف إيجابية في اتجاه عقارب الساعة. (من الناحية الرياضية، يجب أن يكون موجبًا في عكس اتجاه عقارب الساعة):
![تصوير الاتجاه بالنسبة للجهاز](https://source.android.google.cn/static/docs/core/interaction/sensors/images/axis_positive_roll.png?authuser=5&hl=ar)
الشكل 3. التوجه بالنسبة للجهاز
يختلف هذا التعريف عن الانعراج والميل والالتفاف المستخدم في الطيران حيث يكون المحور X على طول الجانب الطويل من الطائرة (الذيل إلى الأنف).
يقوم مستشعر الاتجاه أيضًا بالإبلاغ عن مدى الدقة التي يتوقع أن تكون بها قراءاته من خلال sensors_event_t.orientation.status
. راجع ثوابت SENSOR_STATUS_*
الخاصة بـ SensorManager
لمزيد من المعلومات حول القيم المحتملة لهذا الحقل.
أجهزة استشعار غير معايرة
توفر أجهزة الاستشعار غير المعايرة المزيد من النتائج الأولية وقد تتضمن بعض التحيز ولكنها تحتوي أيضًا على عدد أقل من "القفزات" من التصحيحات المطبقة من خلال المعايرة. قد تفضل بعض التطبيقات هذه النتائج غير المعايرة باعتبارها أكثر سلاسة وموثوقية. على سبيل المثال، إذا كان أحد التطبيقات يحاول إجراء دمج أجهزة الاستشعار الخاصة به، فإن إدخال المعايرة يمكن أن يؤدي في الواقع إلى تشويه النتائج.
مقياس التسارع غير معاير
المستشعر المادي الأساسي: مقياس التسارع
وضع التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED)
يُرجع مستشعر عدم الاستيقاظ
يُبلغ مستشعر مقياس التسارع غير المعاير عن تسارع الجهاز على طول محاور المستشعر الثلاثة دون أي تصحيح للتحيز (يتم تطبيق تحيز المصنع وتعويض درجة الحرارة على قياسات غير معايرة)، إلى جانب تقدير التحيز. جميع القيم بوحدات النظام الدولي للوحدات (m/s^2) ويتم الإبلاغ عنها في مجالات sensors_event_t.uncalibrated_accelerometer
:
-
x_uncalib
: التسارع (بدون تعويض التحيز) على طول المحور X -
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)
بإرجاع مستشعر عدم الاستيقاظ
يقوم مستشعر المجال المغناطيسي غير المعاير بالإبلاغ عن المجال المغناطيسي المحيط مع تقدير معايرة الحديد الصلب. جميع القيم موجودة في Micro-Tesla (uT) ويتم الإبلاغ عنها في مجالات sensors_event_t.uncalibrated_magnetic
:
-
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_HINGE_ANGLE)
بإرجاع مستشعر التنبيه
يقوم مستشعر زاوية المفصلة بقياس الزاوية بالدرجات بين جزأين متكاملين من الجهاز. ومن المتوقع أن تؤدي حركة المفصلة التي يتم قياسها بواسطة هذا النوع من أجهزة الاستشعار إلى تغيير الطرق التي يمكن للمستخدم من خلالها التفاعل مع الجهاز، على سبيل المثال، عن طريق فتح الشاشة أو الكشف عنها.
أجهزة الاستشعار المركبة التفاعل
تُستخدم بعض أجهزة الاستشعار في الغالب لاكتشاف التفاعلات مع المستخدم. نحن لا نحدد كيفية تنفيذ هذه المستشعرات، ولكن يجب أن تكون منخفضة الطاقة وتقع على عاتق الشركة المصنعة للجهاز التحقق من جودتها من حيث تجربة المستخدم.
لفتة الاستيقاظ
المستشعرات المادية الأساسية: غير محدد (أي شيء منخفض الطاقة)
وضع التقرير: طلقة واحدة
طاقة منخفضة
قم بتنفيذ نسخة التنبيه من هذا المستشعر فقط.
getDefaultSensor(SENSOR_TYPE_WAKE_GESTURE)
يُرجع مستشعر التنبيه
يتيح مستشعر إيماءات الاستيقاظ إيقاظ الجهاز بناءً على حركة معينة بالجهاز. عندما يتم تشغيل هذا المستشعر، يتصرف الجهاز كما لو تم الضغط على زر الطاقة، مما يؤدي إلى تشغيل الشاشة. قد يتم إلغاء تنشيط هذا السلوك (تشغيل الشاشة عند تشغيل هذا المستشعر) بواسطة المستخدم في إعدادات الجهاز. لا تؤثر التغييرات في الإعدادات على سلوك المستشعر: فقط ما إذا كان الإطار يقوم بتشغيل الشاشة عند تشغيلها. لم يتم تحديد الإيماءة الفعلية التي سيتم اكتشافها ، ويمكن اختيارها من قبل الشركة المصنعة للجهاز.
يجب أن يكون هذا المستشعر منخفض القوة ، حيث من المحتمل أن يتم تنشيطه على مدار الساعة طوال أيام الأسبوع.
تقارير كل حدث مستشعر 1
في sensors_event_t.data[0]
.
التقط لفتة
أجهزة الاستشعار المادية الأساسية: غير محددة (أي شيء منخفضة)
وضع التقارير: طلقة واحدة
طاقة منخفضة
قم بتنفيذ إصدار الاستيقاظ فقط من هذا المستشعر.
getDefaultSensor(SENSOR_TYPE_PICK_UP_GESTURE)
إرجاع مستشعر الاستيقاظ
يتم تشغيل مستشعر لفتة البيك اب عندما يتم التقاط الجهاز بغض النظر عن أي مكان كان من قبل (المكتب ، الجيب ، الحقيبة).
تقارير كل حدث مستشعر 1
في sensors_event_t.data[0]
.
إيماءة لمحة
أجهزة الاستشعار المادية الأساسية: غير محددة (أي شيء منخفضة)
وضع التقارير: طلقة واحدة
طاقة منخفضة
قم بتنفيذ إصدار الاستيقاظ فقط من هذا المستشعر.
getDefaultSensor(SENSOR_TYPE_GLANCE_GESTURE)
إرجاع مستشعر الاستيقاظ
يمكّن مستشعر الإيماءات لمحة لفترة وجيزة من تشغيل الشاشة لفترة وجيزة لتمكين المستخدم من إلقاء نظرة على المحتوى على الشاشة بناءً على حركة محددة. عندما يتم تشغيل هذا المستشعر ، سيقوم الجهاز بتشغيل الشاشة لحظات للسماح للمستخدم بإلقاء نظرة على الإخطارات أو محتوى آخر بينما يظل الجهاز مغلقًا في حالة غير تفاعلية (الغفظة) ، ثم ستنتهي الشاشة مرة أخرى. قد يتم إلغاء تنشيط هذا السلوك (تشغيل الشاشة لفترة وجيزة عندما يتم تشغيل هذا المستشعر) من قبل المستخدم في إعدادات الجهاز. لا تؤثر التغييرات في الإعدادات على سلوك المستشعر: فقط ما إذا كان الإطار يعمل لفترة وجيزة على تشغيل الشاشة عند تشغيله. لم يتم تحديد الإيماءة الفعلية التي سيتم اكتشافها ، ويمكن اختيارها من قبل الشركة المصنعة للجهاز.
يجب أن يكون هذا المستشعر منخفض القوة ، حيث من المحتمل أن يتم تنشيطه على مدار الساعة طوال أيام الأسبوع. تقارير كل حدث مستشعر 1
في sensors_event_t.data[0]
.
مستشعرات محدودة محاور IMU
متوفر من Android 13 ، مستشعرات IMU محدودة المحاور هي أجهزة استشعار تدعم حالات استخدام حيث لا تتوفر جميع المحاور الثلاثة (x ، y ، z). تفترض أنواع IMU القياسية في Android (مثل SENSOR_TYPE_ACCELEROMETER
و SENSOR_TYPE_GYROSCOPE
) أن المحاور الثلاثة مدعومة. ومع ذلك ، لا تدعم جميع العوامل والأجهزة 3 مقاييس تسارع 3 محاور وجيروسكوبات 3 محاور.
محاور التسارع المحدودة
المستشعرات الفيزيائية الأساسية: مقياس التسارع
وضع التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES)
إرجاع مستشعر غير مستخدم
يستشعر مستشعر محاور التسارع المحدودة معايير TYPE_ACCELEROMETER
، ولكنه يدعم الحالات التي لا يتم فيها دعم واحد أو محورين.
تمثل قيم حدث المستشعر الثلاثة الأخيرة التي أبلغ عنها المستشعر ما إذا كانت قيمة التسارع لمحاور X و Y و Z مدعومة. تشير قيمة 1.0
إلى أن المحور مدعوم ، وتشير قيمة 0
إلى أنه غير مدعوم. يحدد مصنعو الأجهزة المحاور المدعومة في وقت الإنشاء ولا تتغير القيم أثناء وقت التشغيل.
يجب على الشركات المصنعة للأجهزة تعيين قيم التسارع للمحاور غير المستخدمة إلى 0
، بدلاً من وجود قيم غير محددة.
محاور جيروسكوب محدودة
أجهزة الاستشعار الجسدية الأساسية: الجيروسكوب
وضع التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES)
إرجاع مستشعر غير مستخدم
يعادل مستشعر محاور الجيروسكوب المحدودة محوراً من TYPE_GYROSCOPE
ولكنه يدعم الحالات التي لا يتم فيها دعم واحد أو محورين.
تمثل قيم حدث المستشعر الثلاثة الأخيرة التي أبلغ عنها المستشعر ما إذا كانت قيمة السرعة الزاوية لمحاور X و Y و Z مدعومة. تشير قيمة 1.0
إلى أن المحور مدعوم ، وتشير قيمة 0
إلى أنه غير مدعوم. يحدد مصنعو الأجهزة المحاور المدعومة في وقت الإنشاء ولا تتغير القيم أثناء وقت التشغيل.
يجب على الشركات المصنعة للأجهزة تعيين قيم السرعة الزاوية للمحاور غير المستخدمة إلى 0
.
محاور التسارع المحدودة غير المعايرة
المستشعرات الفيزيائية الأساسية: مقياس التسارع
وضع التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED)
إرجاع مستشعر غير مستخدم
إن مستشعر محاور التسارع المحدودة غير المعايرة يعادل نوعًا ما في TYPE_ACCELEROMETER_UNCALIBRATED
ولكنه يدعم الحالات التي لا يتم فيها دعم واحد أو محورين.
تمثل قيم حدث المستشعر الثلاثة الأخيرة التي أبلغ عنها المستشعر ما إذا كانت قيم التسارع والتحيز لمحاور X و Y و Z مدعومة. تشير قيمة 1.0
إلى أن المحور مدعوم ، وتشير قيمة 0
إلى أنه غير مدعوم. يحدد مصنعو الأجهزة المحاور المدعومة في وقت الإنشاء ولا تتغير القيم أثناء وقت التشغيل.
يجب على الشركات المصنعة للأجهزة تعيين قيم التسارع والتحيز للمحاور غير المستخدمة إلى 0
.
محاور الجيروسكوب محدودة غير معايرة
أجهزة الاستشعار الجسدية الأساسية: الجيروسكوب
وضع التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED)
إرجاع مستشعر غير مستخدم
مستشعر جيروسكوب المحدود المحدود غير المعياري يعادل TYPE_GYROSCOPE_UNCALIBRATED
ولكنه يدعم الحالات التي لا يتم فيها دعم واحد أو محورين.
تمثل قيم حدث المستشعر الثلاثة الأخيرة التي أبلغ عنها المستشعر ما إذا كانت قيم السرعة والانجراف لمحاور X و Y و Z مدعومة. تشير قيمة 1.0
إلى أن المحور مدعوم ، وتشير قيمة 0
إلى أنه غير مدعوم. يحدد مصنعو الأجهزة المحاور المدعومة في وقت الإنشاء ولا تتغير القيم أثناء وقت التشغيل.
يجب على الشركات المصنعة للأجهزة ضبط السرعة الزاوية والقيم الانجراف للمحاور غير المستخدمة إلى 0
.
محاور محدودة مركب IMU
المستشعرات الفيزيائية الأساسية: أي مزيج من مقياس تسارع 3 محاور ، جيروسكوب 3 محاور ، مقياس تسريع 3 محاور غير معاير ، وأجهزة استشعار غير معايرة 3 محاور.
وضع التقارير: مستمر
يعادل مستشعر IMU محاور محدودة مركبة مستشعر IMU محدود محاور ، ولكن بدلاً من دعمه في HAL ، فإنه يحول بيانات مستشعر 3 محاور إلى المتغيرات المحدودة المحدودة. يتم تمكين هذه المستشعرات المركبة فقط لأجهزة السيارات.
يوضح الجدول التالي تحويل مثال من مقياس تسارع قياسي 3 محاور إلى مقياس تسارع محاور محدودة مركب.
قيم Sensorevent لـ Sensor_type_accelerometer | مثال SENSOR_TYPE_ACCELEREMEROTER SESSOREVENT | composite sensor_type_accelerometer_limited_axes sensorevent |
---|---|---|
القيم [0] | -0.065 | -0.065 |
القيم[1] | 0.078 | 0.078 |
القيم [2] | 9.808 | 9.808 |
القيم [3] | لا يوجد | 1.0 |
القيم [4] | لا يوجد | 1.0 |
القيم [5] | لا يوجد | 1.0 |
أجهزة استشعار السيارات
أجهزة استشعار لدعم حالات استخدام السيارات.
عنوان
المستشعرات الفيزيائية الأساسية: أي مزيج من GPS ، مقياس المغناطيسي ، مقياس التسارع ، والجروسبول.
وضع التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_HEADING)
إرجاع مستشعر غير مستمر
متوفر من Android 13 ، يقيس مستشعر العنوان الاتجاه الذي يشير فيه الجهاز إلى الشمال الحقيقي بالدرجات. يتضمن مستشعر العنوان قيمتين SensorEvent
. واحد لعلامة الجهاز المقاسة وواحد لدقة قيمة العنوان المقدمة.
يجب أن تتراوح قيم العنوان التي أبلغ عنها هذا المستشعر بين 0.0
(شامل) و 360.0
(حصريًا) ، مع 0
تشير إلى الشمال ، 90
شرقًا ، 180
جنوبًا ، و 270
غربًا.
يتم تعريف دقة هذا المستشعر بثقة 68 في المائة. في الحالة التي يكون فيها التوزيع الأساسي هو Gaussian Normal ، فإن الدقة هي أحد الانحرافات المعيارية. على سبيل المثال ، إذا قام مستشعر العنوان بإرجاع قيمة عنوان 60 درجة وقيمة دقة تبلغ 10 درجات ، فهناك احتمال بنسبة 68 في المائة من العنوان الحقيقي بين 50 درجة و 70 درجة.