المغناطيسية هي جهاز استشعار يقيس شدة المجال المغناطيسي للأرض لتحديد الاتجاهات الأساسية. في الأجهزة المحمولة، يعمل كبوصلة رقمية، مما يوفر دقة تصل إلى 1–2 درجة مع المعايرة المناسبة. وفقًا لـ Bosch Sensortec Application Note, 2024، تستهلك مغناطيسيات MEMS الحديثة 0.5–2 مللي أمبير فقط وتتناسب مع حزمة بحجم 1.5×1.5×0.7 مم.
النقاط الرئيسية
المغناطيسية في الجهاز المحمول هي مستشعر مجال مغناطيسي ثلاثي المحاور يعتمد على تأثير هول. يقيس إسقاطات متجه الحث المغناطيسي على المحاور X و Y و Z. بالاقتران مع مقياس التسارع، تحدد المغناطيسية السمت — الزاوية بين اتجاه الشمال ومحور الهاتف.
تستخدم الهواتف الذكية الحديثة مغناطيسيات MEMS القائمة على تأثير المقاومة المغناطيسية اللاإنحرافية (AMR) وتأثير هول. توفر مستشعرات AMR (سلسلة AKM من Asahi Kasei Microdevices) حساسية 0.15 ميكروتسلا/LSB ونطاق ±1200 ميكروتسلا — وهو كافٍ لقياس مجال الأرض (25–65 ميكروتسلا).
| المعلمة | القيمة |
|---|---|
| التقنية | AMR / تأثير هول |
| النطاق | ±1200 — ±1300 ميكروتسلا |
| الاستهلاك | 0.5–2 مللي أمبير |
| الحجم | 1.5×1.5×0.7 مم |
| الحساسية | 0.15 ميكروتسلا/LSB |
بدون بوصلة رقمية، لا تستطيع تطبيقات الملاحة تحديد اتجاه الحركة. يستخدم Google Maps المغناطيسية لعرض اتجاه الخريطة بالنسبة لنظرة المستخدم. عندما يتعطل المستشعر، يعرض التطبيق الموقع فقط على الخريطة بدون السهم الأزرق للاتجاه.
تأثير هول هو ظاهرة فيزيائية لنشوء فرق جهد على حواف لوح موصل عند تعرضه لمجال مغناطيسي. تستخدم مغناطيسيات MEMS هياكل أغشية رقيقة من البرمالوي (NiFe)، التي تتغير مقاومتها تحت تأثير مجال مغناطيسي خارجي (تأثير AMR).
تتكون كل قناة من القنوات الثلاث (X, Y, Z) من أربع مقاومات مغناطيسية موصولة في جسر ويتستون. يغير المجال المغناطيسي مقاومة المقاومات بنسبة 2–3%، ويتم تحويل ذلك إلى جهد بواسطة مضخم تفاضلي. يقوم محول تماثلي رقمي مدمج 16 بت برقمنة الإشارة بتردد يصل إلى 100 هرتز.
لقياس المركبة الرأسية للمجال، يُستخدم مركز مغناطيسي مدمج (IMC). وهو هيكل غشاء رقيق من NiFe يقوم بانحراف المجال الأفقي إلى المستوى الرأسي، مما يسمح لجسر AMR واحد بقياس المحاور الثلاثة.
المغناطيسية تحدد الاتجاه بالنسبة للمجال المغناطيسي للأرض (مرجع مطلق)، بينما الجيروسكوب يقيس فقط التغير الزاوي (بيانات نسبية). يعطي الجيروسكوب بيانات دقيقة على فترات قصيرة ولكنه يراكم خطأ الانجراف. المغناطيسية لا تنحرف ولكنها عرضة للتداخل المغناطيسي.
يجمع Android بيانات من ثلاثة مستشعرات عبر SensorManager.getRotationMatrix. تُستخدم المغناطيسية لتصحيح انجراف الجيروسكوب على فترات طويلة. بدون مغناطيسية، يراكم الجيروسكوب خطأ 10–20 درجة في 5 دقائق. وفقًا لـ Google ARCore (2024)، يحقق خوارزمية الدمج دقة 1–3 درجة مع وجود مغناطيسية.
val accelerometerReading = FloatArray(3)
val magnetometerReading = FloatArray(3)
val rotationMatrix = FloatArray(9)
val orientationAngles = FloatArray(3)
SensorManager.getRotationMatrix(
rotationMatrix, null,
accelerometerReading,
magnetometerReading
)
SensorManager.getOrientation(
rotationMatrix, orientationAngles
)
// orientationAngles[0] — السمت بالراديان
Hard Iron — مجال مغناطيسي دائم ناتج عن المواد المغناطيسية الحديدية داخل الهاتف: مغناطيس مكبرات الصوت، محرك الاهتزاز، الإطار المعدني. يظهر تشوه Hard Iron كإزاحة ثابتة (bias) على كل محور. Soft Iron — تغير في اتجاه المجال ناتج عن مواد قابلة للنفاذية المغناطيسية تشوه خطوط المجال.
إجراء المعايرة القياسي للمغناطيسية هو تدوير الهاتف بشكل الرقم 8. أثناء العملية، يسجل المستشعر نقاطًا في الفضاء ثلاثي الأبعاد. بدون تشوهات، تقع النقاط على كرة نصف قطرها 25–65 ميكروتسلا. يقوم Hard Iron بإزاحة مركز الكرة، بينما يحولها Soft Iron إلى شكل إهليلجي. تحسب خوارزمية المعايرة معلمات الإزاحة والقياس.
data class CalibrationParams(
val biasX: Float,
val biasY: Float,
val biasZ: Float,
val scaleX: Float,
val scaleY: Float,
val scaleZ: Float
)
fun applySoftIronCorrection(
raw: FloatArray, p: CalibrationParams
): FloatArray {
return floatArrayOf(
(raw[0] - p.biasX) * p.scaleX,
(raw[1] - p.biasY) * p.scaleY,
(raw[2] - p.biasZ) * p.scaleZ
)
}
يمكن للمطور تنفيذ المعايرة الخاصة به للمغناطيسية عن طريق جمع البيانات أثناء تحرك الجهاز. تجد خوارزمية التوفيق الإهليلجي (ellipsoid fitting) معلمات Hard Iron و Soft Iron عن طريق تقليل مجموع مربعات الانحرافات عن الكرة. توفر مكتبة Apache Commons Math تطبيق المربعات الصغرى غير الخطية (Levenberg-Marquardt) لهذه المهمة — تصل الدقة بعد المعايرة البرمجية إلى 0.5 درجة.
لـ تقليل Hard Iron، يضع المصنعون المغناطيسية في الجزء العلوي من الهاتف، بعيدًا عن مكبر الصوت ومحرك الاهتزاز. استخدم مهندسو Apple في iPhone 16 Pro Max (2024) درعًا من رقائق البرمالوي للمغناطيسية، مما قلل تأثير مكبر الصوت بمقدار 4 مرات. يستخدم Samsung Galaxy S24 Ultra دائرة تعويض إضافية تقيس تيار مكبر الصوت في الوقت الفعلي لطرح المجال المستحث. تخلق الأغطية ذات الحوامل المغناطيسية (مثل حوامل السيارة) تشوهات قوية — بعد الاستخدام، قد تظهر المغناطيسية اتجاهًا خاطئًا حتى المعايرة التالية.
يوفر Android مستشعرين: TYPE_MAGNETIC_FIELD (بيانات معايرة بالميكروتسلا) و TYPE_MAGNETIC_FIELD_UNCALIBRATED (بيانات خام مع تقدير التشوه). لتطبيقات الملاحة، يُنصح باستخدام المستشعر المعاير — يطبق النظام تلقائيًا المعايرة المدمجة بناءً على آخر حركة بشكل الرقم 8.
SENSOR_DELAY_NORMAL (200 مللي ثانية) كافٍ للبوصلة، SENSOR_DELAY_FASTEST (0 مللي ثانية) — فقط للتطبيقات البحثية المتخصصة. بعد استلام القيم، يمكن تحويلها إلى سمت عبر getRotationMatrix + getOrientation. من المهم التحقق من دقة المستشعر عبر event.accuracy — SENSOR_STATUS_UNRELIABLE تعني الحاجة إلى المعايرة.
override fun onSensorChanged(event: SensorEvent) {
if (event.sensor.type == Sensor.TYPE_MAGNETIC_FIELD) {
val accuracy = event.accuracy
if (accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE) {
showCalibrationHint()
return
}
System.arraycopy(event.values, 0,
magnetometerReading, 0, 3)
}
}
لا تُستخدم المغناطيسية فقط للبوصلة. تطبيقات الواقع المعزز، بما في ذلك Pokemon GO، تستخدم المغناطيسية لتحديد اتجاه الكاميرا بالنسبة للعالم الحقيقي. بدون مغناطيسية، يتحول ARCore إلى وضع Screen Axis — يتم تحديد الاتجاه بواسطة الجيروسكوب فقط، مما يقلل الدقة.
في أنظمة الملاحة汽车ية القائمة على Android Auto، تُستخدم المغناطيسية لتحديد اتجاه الحركة عند فقدان إشارة GPS في الأنفاق والمناطق الحضرية الكثيفة. بالاقتران مع بيانات عجلة القياس من عجلات السيارة (التي يتم الحصول عليها عبر OBD-II)، تسمح المغناطيسية بمواصلة الملاحة لمدة تصل إلى 5 دقائق بدون GPS بدقة تحديد موقع 10–20 متر. وفقًا لـ Google Maps Engineering Blog (2024)، يقلل الخوارزمية الهجين فقدان المسار في الممرات الحضرية بنسبة 40%.
تستخدم تطبيقات الملاحة المغناطيسية لـ تحديد سمت الحركة — الزاوية بين الشمال والاتجاه الحالي للمستخدم. في Google Maps، يتم دمج بيانات المغناطيسية مع مسار GPS وتاريخ الحركة لعرض السهم الأزرق للاتجاه. عند فقدان إشارة GPS (في الأنفاق، الممرات تحت الأرض)، تبقى المغناطيسية المصدر الوحيد لمعلومات الاتجاه.
الجيل الجديد من المغناطيسيات ثلاثية المحاور مع ASIC مدمج (BMM350 من Bosch، 2024) يستهلك فقط 0.35 مللي أمبير ويدعم ترددًا يصل إلى 200 هرتز. لم يخرج تطوير المغناطيسيات الكمومية ومراكز NV في الماس للأجهزة المحمولة بعد من مرحلة التجارب المخبرية. من المتوقع أنه بحلول عام 2028، ستصل دقة المغناطيسيات المحمولة إلى 0.01 ميكروتسلا.
الأسئلة الشائعة
ارسم الرقم 8 بالهاتف في الهواء — هذه هي الإيماءة القياسية لمعايرة البوصلة الرقمية. إذا كانت البوصلة لا تزال تظهر بشكل غير صحيح، تحقق من الغطاء: الحوامل المغناطيسية والعناصر المعدنية تخلق تشوهات قوية من نوع Hard Iron.
الأسباب الرئيسية: التداخل المغناطيسي من مكبرات الصوت ومحرك الاهتزاز في الهاتف، عدم المعايرة بعد تغيير الغطاء، تأثير الأجسام المعدنية القريبة. في الأماكن المغلقة ذات الهياكل الخرسانية المسلحة، يتشوه المجال المغناطيسي بشكل خاص.
نعم، تستخدم تطبيقات كاشف المعادن المغناطيسية المدمجة لـ اكتشاف شذوذ المجال المغناطيسي. ومع ذلك، لا يتجاوز عمق الكشف 10–20 سم، ولا يميز الجهاز بين أنواع المعادن — إنها أداة تعليمية أكثر.
يعيد TYPE_MAGNETIC_FIELD البيانات بعد المعايرة التي يطبقها النظام. يوفر TYPE_MAGNETIC_FIELD_UNCALIBRATED القيم الخام بالإضافة إلى تقدير الإزاحة (bias)، مما يسمح للمطور بتطبيق المعايرة الخاصة به.
استخدم SensorManager.getRotationMatrix مع بيانات مقياس التسارع والمغناطيسية، ثم getOrientation — سيكون العنصر الأول من المصفوفة (السمت) بالراديان. لعرض البوصلة، قم بالتحويل إلى درجات: Math.toDegrees(azimuth).
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا