يصف هذا القسم محاور الاستشعار وأدوات الاستشعار الأساسية وأدوات الاستشعار المركبة (النشاط والوضع والتفاعل غير المعاد معايرة).
محاور المستشعر
يتم التعبير عن قيم أحداث أجهزة الاستشعار من العديد من أجهزة الاستشعار في إطار محدّد يكون ثابتًا بالنسبة إلى الجهاز.
محاور الأجهزة الجوّالة
لا ترتبط Sensor API إلا بالاتجاه الطبيعي للشاشة (لا يتم تبديل المحاور عند تغيير اتجاه شاشة الجهاز).
محاور السيارات
في تطبيقات Android Automotive، يتم تحديد المحاور وفقًا لإطار هيكل المركبة. يقع أصل الإطار المرجعي للمركبة في منتصف المحور الخلفي. يتم توجيه إطار مرجع المركبة بحيث:
- يشير محور X إلى اليمين ويقع على مستوى أفقي، عمودي على مستوى التماثل للمركبة.
- يشير المحور ص إلى الأمام ويقع على مستوى أفقي.
إطار مرجع المركبة هو نظام إحداثيات يعتمد على اليد اليمنى. لذلك، يشير محور 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 لمقياس الضغط الجوي أعلى بكثير، على سبيل المثال 1,000 واط.
- في هذه الحالة، نقول أنّ مستشعر Android يستهلك طاقة تبلغ 1000 uW، على الرغم من أنّ استهلاك الطاقة الذي تم قياسه عند أطراف شريحة مقياس الضغط هو 100uW.
- مقياس مغناطيسي يستهلك 100 ميكروواط عند المعايرة، ولكنه يستهلك طاقة أكبر عند
المعايرة
- قد تتطلّب عملية المعايرة الروتينية تفعيل أداة التسوية، ما يستهلك 5000 uW، وتشغيل بعض الخوارزميات، ما يستهلك بدوره 900 uW.
- في هذه الحالة، نقول أنّ الحد الأقصى لاستهلاك الطاقة في ملف (مقياس المغناطيسية) أداة استشعار Android هو 6000 uW.
- في هذه الحالة، يكون متوسط استهلاك الطاقة هو المقياس الأكثر فائدة، وهو ما يتم تسجيله في الخصائص الثابتة لجهاز الاستشعار من خلال HAL.
مقياس التسارع
وضع إعداد التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER)
يعرض أداة استشعار غير قابلة للاستيقاظ
تعرض أداة استشعار مقياس التسارع تسارع الجهاز على طول محاور الاستشعار الثلاثة. يتضمّن التسارع المقاس كلّ من التسارع المادي (تغيير السرعة) وقوة الجاذبية. وتظهر عملية القياس في الحقول x وy وz ضمن filter_event_t.acceleration.
يتم تمثيل جميع القيم بوحدات النظام الدولي (م/ث^2) وتقيس تسارع الجهاز مطروحًا منه قوة الجاذبية على طول محاور الاستشعار الثلاثة.
في ما يلي بعض الأمثلة:
- يجب أن تكون قيمة (x, y, z) قريبة من 0 عند السقوط الحر.
- عندما يكون الجهاز مسطّحًا على طاولة ويتم دفعه على جانبه الأيسر باتجاه اليمين، تكون قيمة تسارع x موجبة.
- عندما يكون الجهاز مسطّحًا على سطح طاولة، تكون قيمة التسارع على طول محور z هي +9.81 alo، ما يتوافق مع تسارع الجهاز (0 م/ث²) مطروحًا منه قوة الجاذبية (-9.81 م/ث²).
- عندما يكون الجهاز مسطّحًا على سطح طاولة ويتم دفعه نحو السماء، تكون قيمة القصور الذاتي أكبر من 9.81، ما يتوافق مع القصور الذاتي للجهاز (+A m/s^2) مطروحًا منه قوة الجاذبية (-9.81 m/s^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
وتكون جميع القيم بالملي ثانية (uT).
يعرض مقياس المغناطيسية أيضًا مدى الدقة التي يُتوقّع أن تصل إليها قراءاته
حتى sensors_event_t.magnetic.status
. راجِع ثوابت
SensorManager
SENSOR_STATUS_*
للحصول على مزيد من المعلومات عن القيم المحتملة لهذا الحقل.
يتم معايرة القراءات باستخدام:
- مُعدِّل الحرارة
- معايرة الحديد اللين في المصنع (أو على الإنترنت)
- معايرة الأجهزة الصلبة على الإنترنت
الجيروسكوب
وضع إعداد التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_GYROSCOPE)
يعرض مستشعرًا غير مخصّص للتنشيط
تُبلغ أداة استشعار الجيروسكوب معدّل دوران الجهاز حول محاور الاستشعار الثلاثة.
الدوران موجب في عكس عقارب الساعة (قاعدة اليد اليمنى). وهذا يعني أنّ مراقبًا ينظر من موقع إيجابي على محور x أو y أو z إلى جهاز في موضع الأصل سيُبلغ عن دوران موجب إذا بدا الجهاز يدور بعكس عقارب الساعة. يُرجى العِلم أنّ هذا هو التعريف الرياضي المعتاد للدوران الموجب ولا يتوافق مع تعريف الطيران والفضاء للدوران.
يتم تسجيل القياس في حقول x وy وz من
sensors_event_t.gyro
وتكون جميع القيم بالراديان في الثانية (rad/s).
يتم معايرة القراءات باستخدام:
- مُعدِّل الحرارة
- التعويض على نطاق المصنع (أو على الإنترنت)
- معايرة الانحياز على الإنترنت (لإزالة الانحراف)
يُبلغ جهاز الجيروسكوب أيضًا عن مدى دقة توقعاته لقراءاته من خلال
sensors_event_t.gyro.status
. راجِع ثوابت
SensorManager
SENSOR_STATUS_*
للحصول على مزيد من المعلومات عن القيم المحتملة لهذا الحقل.
لا يمكن محاكاة أداة التسوية الدورانية استنادًا إلى مقاييس المغناطيسية ومقياسات التسارع، لأنّه سيؤدي ذلك إلى تقليل اتساقها المحلي وسرعة استجابتها. يجب أن يستند إلى شريحة جيروسكوب عادية.
معدل نبضات القلب
وضع إعداد التقارير: عند التغيير
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)
يعرض جهاز استشعار لتشغيل الكاميرا
تُبلِغ أداة استشعار التقارب عن المسافة من أداة الاستشعار إلى أقرب سطح مرئي.
في الإصدار 4.4 من نظام التشغيل Android، كانت أدوات استشعار التقارب دائمًا عبارة عن أدوات استشعار للتنبيه تعمل على تنشيط المنظومة على الرقاقة (SoC) عند رصد أي تغيُّر في التقارب. بعد الإصدار 4.4 من نظام التشغيل Android، ننصحك بتطبيق إصدار التنشيط من جهاز الاستشعار هذا أولاً، لأنّه الإصدار الذي يُستخدم لتشغيل الشاشة وإيقافها أثناء إجراء المكالمات الهاتفية.
يتم تسجيل القياس بالسنتيمترات في
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 ثوانٍ، لا يُقبل عدم بدء حدث خلال تلك 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)
عرض أداة استشعار للاستيقاظ
تُنشئ أداة رصد الإمالة حدثًا كلّما تم رصد حدث إمالة.
يتم تحديد حدث الميل من خلال اتجاه متوسط مدّة 2 ثانية لتغيير الجاذبية بمقدار 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 إلى الشرق بشكل عرضي للأرض.
- يشير الحرف ص إلى الشمال ويكون عرضيًا للأرض.
- يشير الحرف 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 م/ث².
إذا كان الجهاز مزوّدًا بجيروسكوب، يجب أن يستخدم جهاز استشعار الجاذبية الجيروسكوب ومقياس التسارع كإدخال.
إذا لم يكن الجهاز مزوّدًا بجيروسكوب، يجب أن يستخدم أداة استشعار الجاذبية مقياس التسارع ومقياس المغناطيسية كمدخلات.
متجه الدوران الجيومغناطيسي
أدوات الاستشعار الأساسية: مقياس التسارع ومقياس المغناطيسية (بدون جيروسكوب)
وضع إعداد التقارير: مستمر
طاقة منخفضة
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
: للف أو تدوير حول المحور ص (-90<=roll<=90
)، مع قيم موجبة عندما يتحرك المحور س باتجاه المحور "ع".
يُرجى العِلم أنّه لأسباب سابقة، تكون زاوية الدوران موجبة في اتجاه عقارب الساعة. (من الناحية الرياضية، يجب أن تكون النتيجة موجبة في عكس اتجاه عقارب الساعة):
يختلف هذا التعريف عن الانحراف والانحناء والدوران المستخدَمين في مجال الطيران حيث يكون محور X على طول الجانب الطويل من الطائرة (من الذيل إلى الأنف).
يُبلغ أيضًا جهاز استشعار الاتجاه عن مدى دقة قراءاته
من خلال sensors_event_t.orientation.status
. راجِع
SENSOR_STATUS_*
ثوابت
SensorManager
للحصول على مزيد من المعلومات عن
القيم المحتمَلة لهذا الحقل.
أجهزة الاستشعار غير المعايرة
توفّر أجهزة الاستشعار غير المعايرة نتائج أولية أكثر وقد تتضمّن بعض الانحياز، ولكنها تحتوي أيضًا على عدد أقل من "القفزات" الناتجة عن التصحيحات التي يتم تطبيقها من خلال المعايرة. قد تفضِّل بعض التطبيقات هذه النتائج غير المعادلة لأنها أكثر سلاسة وأكثر موثوقية. على سبيل المثال، إذا كان التطبيق يحاول إجراء عملية دمج لبيانات أجهزة الاستشعار الخاصة به، يمكن أن يؤدي إدخال عمليات المعايرة إلى تشويه النتائج.
لم تتم معايرة مقياس التسارع.
أداة الاستشعار المادية: مقياس التسارع
وضع إعداد التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED)
يعرض أداة استشعار غير قابلة للاستيقاظ
تسجّل أداة استشعار مقياس التسارع التي لم تتم معايرتها تسارع الجهاز
على طول محاور الاستشعار الثلاثة بدون أي تصحيح للانحياز (يتم تطبيق انحياز في إعدادات المصنع
وتعويض درجة الحرارة على القياسات التي لم تتم معايرتها)، إلى جانب
تقدير الانحياز.
يتم التعبير عن جميع القيم بوحدات النظام الدولي (m/s^2)، ويتم تسجيلها في حقول
sensors_event_t.uncalibrated_accelerometer
:
x_uncalib
: التسارع (بدون تعويض الانحياز) على طول محور Xy_uncalib
: التسارع (بدون تعويض الانحياز) على طول محور Yz_uncalib
: التسارع (بدون تعويض الانحياز) على طول محور Zx_bias
: التحيز المقدر على المحور سy_bias
: الانحياز المقدَّر على طول محور Yz_bias
: التحيز المقدر على طول المحور "ع"
عدم معايرة الجيروسكوب
أداة الاستشعار الأساسية: الجيروسكوب
وضع إعداد التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_UNCALIBRATED)
يعرض مستشعرًا غير مخصّص للتنشيط
يُسجِّل الجيروسكوب غير المحكَّم معدّل الدوران حول محاور أداة الاستشعار
بدون تطبيق تعويض الانحياز عليها، بالإضافة إلى تقدير الانحياز. تكون جميع
القيم بوحدات راديان/الثانية ويتم الإبلاغ عنها في حقول
sensors_event_t.uncalibrated_gyro
:
x_uncalib
: السرعة الزاوية (بدون تعويض الانحراف) حول محور Xy_uncalib
: السرعة الزاوية (بدون تعويض الانحراف) حول المحور صz_uncalib
: السرعة الزاويّة (بدون تعويض الانحراف) حول المحور Zx_bias
: تقدير الانجراف حول المحور "س"y_bias
: الانحراف المقدَّر حول المحور صz_bias
: الانحراف المقدَّر حول محور ع
من الناحية النظرية، إنّ القياس الذي لم تتم معايرته هو مجموع
القياس الذي تمت معايرته وتقدير الانحياز: _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)
يعرض مستشعرًا غير مخصّص للتنشيط
يُبلِغ جهاز استشعار المجال المغناطيسي الذي لم تتم معايرته عن المجال المغناطيسي المحيط
بالإضافة إلى تقدير معايرة الحديد الصلب. يتم التعبير عن جميع القيم بوحدة الميكرو تسلا
(uT) ويتم تسجيلها في حقول
sensors_event_t.uncalibrated_magnetic
:
x_uncalib
: المجال المغناطيسي (بدون تعويض مصنوع من الحديد الصلب) على طول المحور "س"y_uncalib
: الحقل المغناطيسي (بدون تعويض الحديد الصلب) على طول محور Yz_uncalib
: الحقل المغناطيسي (بدون تعويض الحديد الصلب) على طول محور Zx_bias
: الانحراف المقدَّر للحديد الصلب على طول محور Xy_bias
: تحيز الحديد الصلب على المحور "ص"z_bias
: الانحراف المقدَّر للحديد الصلب على محور Z
من الناحية النظرية، فإنّ القياس غير المحسوب هو مجموع القياس
المحسوب وتقدير الانحياز: _uncalibrated = _calibrated + _bias
.
يسمح مقياس المغناطيسية غير المعاير للخوارزميات ذات المستوى الأعلى بالتعامل مع
تقدير الحديد الصلب السيئ. ومن المتوقّع أن يرتفع عدد القيم
x_bias
وy_bias
وz_bias
فور
التغييرات المقدَّرة للتأثير المحدود، ويجب أن تكون هذه القيم مستقرة بقية
الوقت.
يجب تطبيق معايرة الحديد الخفيف وتعويض درجة الحرارة على القياسات. يجب أيضًا تنفيذ عملية تقدير الأجهزة الثابتة لكي تتمكّن من الإبلاغ عن
تقديرات معقولة في x_bias
و
y_bias
و
z_bias
. إذا لم يتمكّن التنفيذ من تقدير الانحياز،
يجب عدم تنفيذ هذا المستشعر.
إذا كان هذا المستشعر متوفّرًا، يجب أن يكون sensor_t.name
متوفّرًا أيضًا، ويجب أن يتشارك كلا المستشعرَين قيمتَي 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 ذات محاور محدودة
تتوفّر أدوات استشعار IMU ذات المحاور المحدودة
في الإصدار 13 من Android، وهي أدوات استشعار تتوافق مع حالات الاستخدام التي لا تتوفّر فيها كل المحاور الثلاثة (x وy وz).
أنواع وحدات IMU العادية في Android (مثل
SENSOR_TYPE_ACCELEROMETER
و
SENSOR_TYPE_GYROSCOPE
)
تفترض أنّ المحاور الثلاثة متوافقة. ومع ذلك، لا تتوفّر أدوات التسارع وأدوات الانحراف الدوراني بثلاثة محاور في بعض أشكال الأجهزة.
محاور مقياس التسارع المحدودة
أجهزة الاستشعار الأساسية: مقياس التسارع
وضع إعداد التقارير: مستمر
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
، ولكنها تتيح الحالات التي لا تتوفّر فيها محوران أو محور واحد.
إنّ القيم الثلاثة الأخيرة التي رصدتها أداة الاستشعار ورصدها عند رصدهما هي ما إذا كانت السرعة الزاويّة وقيم الاتجاه للمحاور "س" و"ص" و"ع" متوافقة. تشير القيمة 1.0
إلى أنّ المحور متوافق، وتشير القيمة 0
إلى أنّه غير متوافق. يحدِّد مصنعو الأجهزة محوري الالتفاف المسموح بهما أثناء مرحلة التصميم، ولا تتغيّر القيم أثناء مرحلة التشغيل.
على الشركات المصنّعة للأجهزة ضبط قيم السرعة الزاوية والانحراف للمحورين
غير المستخدَمين على 0
.
وحدة قياس تسارع مكوّنة من محاور محدودة
أجهزة الاستشعار الأساسية: أي مجموعة من أجهزة استشعار التسارع وجهاز استشعار التسارع وجهاز استشعار الجيروسكوب الثلاثي المحاور غير المُعتمَدة
وضع إعداد التقارير: مستمر
إنّ أداة استشعار IMU المركبة ذات المحاور المحدودة هي ما يعادل أداة استشعار IMU ذات المحاور المحدودة، ولكن بدلاً من أن تكون متوافقة مع HAL، فإنّها تحوّل بيانات أداة استشعار المحاور الثلاثة إلى الصيغ المكافئ ذات المحاور المحدودة. لا يتم تفعيل أدوات الاستشعار المركبة هذه إلا للأجهزة المخصّصة للسيارات.
يعرض الجدول التالي مثالاً على عملية تحويل من مقياس تسارع عادي مكوَّن من 3 محاور إلى مقياس تسارع مركب محاور.
قيم SensorEvent لـ SENSOR_TYPE_ACCELEROMETER | مثال على SensorEvent من النوع SENSOR_TYPE_ACCELEROMETER | حدث SensorEvent مركّب من النوع SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES |
---|---|---|
القيم[0] | -0.065 |
-0.065 |
values[1] | 0.078 |
0.078 |
القيم[2] | 9.808 |
9.808 |
values[3] | لا ينطبق |
1 |
values[4] | لا ينطبق |
1 |
values[5] | لا ينطبق |
1 |
أجهزة الاستشعار في السيارات
أدوات الاستشعار لتلبية حالات الاستخدام في السيارات
العنوان
أدوات الاستشعار المادية: أي مجموعة من نظام تحديد المواقع العالمي (GPS) ومقياس المغناطيسية ومقياس التسارع والجيروسكوب.
وضع إعداد التقارير: مستمر
getDefaultSensor(SENSOR_TYPE_HEADING)
يعرض مستشعرًا غير مخصّص للتنشيط
يتوفّر جهاز استشعار الاتجاه
في نظام التشغيل Android 13، وهو يقيس الاتجاه الذي يشير إليه الجهاز بالنسبة إلى الشمال الجغرافي
بالدرجات. يتضمّن أداة استشعار الاتجاه قيمتَي SensorEvent
.
أحدهما لعنوان الجهاز المقاس والآخر لدقة قيمة العنوان المقدَّمة.
يجب أن تتراوح قيم الاتجاه التي يبلِغ عنها هذا المستشعر بين
0.0
(شاملة) و360.0
(حصرية)، مع اختلاف 0
للإشارة إلى الشمال و90
للشرق و180
للجنوب
و270
للغرب.
يتم تحديد دقة أداة الاستشعار هذه عند مستوى ثقة يبلغ %68. وفي الحالة التي يكون فيها التوزيع الأساسي عبارة عن غاوس عادي، تكون الدقة انحرافًا معياريًا واحدًا. على سبيل المثال، إذا كان جهاز استشعار الاتجاه يعرض قيمة اتجاه تبلغ 60 درجة وقيمة دقة تبلغ 10 درجات، هناك احتمال بنسبة 68% أن يكون الاتجاه الفعلي بين 50 درجة و70 درجة.