میگنیٹومیٹر ایک سینسر ہے جو بنیادی سمتوں کا تعین کرنے کے لیے زمین کی مقناطیسی فیلڈ کی شدت کو ناپتا ہے۔ موبائل آلات میں، یہ ڈیجیٹل کمپاس کے طور پر کام کرتا ہے، مناسب کیلیبریشن کے ساتھ 1–2 ڈگری تک درستگی فراہم کرتا ہے۔ Bosch Sensortec Application Note, 2024 کے مطابق، جدید MEMS میگنیٹومیٹر صرف 0.5–2 mA استعمال کرتے ہیں اور 1.5×1.5×0.7 ملی میٹر کے پیکیج میں فٹ ہوتے ہیں۔
اہم نکات
موبائل ڈیوائس میں میگنیٹومیٹر ہال اثر پر مبنی تین محوری مقناطیسی فیلڈ سینسر ہے۔ یہ X، Y اور Z محوروں پر مقناطیسی انڈکشن ویکٹر کے تخمینوں کو ناپتا ہے۔ ایکسلیرومیٹر کے ساتھ مل کر، میگنیٹومیٹر ایزیمتھ — شمال کی سمت اور فون کے محور کے درمیان زاویہ — کا تعین کرتا ہے۔
جدید اسمارٹ فونز انیسوٹروپک میگنیٹوریزسٹیو اثر (AMR) اور ہال اثر پر مبنی MEMS میگنیٹومیٹر استعمال کرتے ہیں۔ AMR سینسر (Asahi Kasei Microdevices کی AKM سیریز) 0.15 µT/LSB کی حساسیت اور ±1200 µT کی رینج فراہم کرتے ہیں — جو زمین کی فیلڈ (25–65 µT) ناپنے کے لیے کافی ہے۔
| پیرامیٹر | قیمت |
|---|---|
| ٹیکنالوجی | AMR / ہال اثر |
| رینج | ±1200 — ±1300 µT |
| استعمال | 0.5–2 mA |
| سائز | 1.5×1.5×0.7 ملی میٹر |
| حساسیت | 0.15 µT/LSB |
ڈیجیٹل کمپاس کے بغیر، نیویگیشن ایپس حرکت کی سمت کا تعین نہیں کر سکتیں۔ Google Maps صارف کی نظر کی سمت کے نسبت نقشے کی سمت بندی دکھانے کے لیے میگنیٹومیٹر استعمال کرتا ہے۔ جب سینسر ناکام ہو جاتا ہے، تو ایپ نیلے سمت والے تیر کے بغیر صرف نقشے پر مقام دکھاتی ہے۔
ہال اثر ایک طبعی مظہر ہے جس میں مقناطیسی فیلڈ کے سامنے آنے پر ایک کنڈکٹیو پلیٹ کے کناروں پر پوٹینشل فرق پیدا ہوتا ہے۔ MEMS میگنیٹومیٹر پرمالائے (NiFe) سے بنی پتلی فلم ساختوں کا استعمال کرتے ہیں، جن کی مزاحمت بیرونی مقناطیسی فیلڈ (AMR اثر) کے زیر اثر تبدیل ہوتی ہے۔
تین چینلز (X, Y, Z) میں سے ہر ایک وہیٹسٹون برج میں جڑے چار میگنیٹوریزسٹرز پر مشتمل ہے۔ مقناطیسی فیلڈ ریزسٹرز کی مزاحمت کو 2–3% تک تبدیل کرتا ہے، جسے ایک ڈیفرینشل ایمپلیفائر وولٹیج میں تبدیل کرتا ہے۔ ایک بلٹ ان 16 بٹ ADC 100 Hz تک کی فریکوئنسی پر سگنل کو ڈیجیٹائز کرتا ہے۔
فیلڈ کے عمودی جزو کو ناپنے کے لیے، ایک انٹیگریٹڈ میگنیٹک کنسنٹریٹر (IMC) استعمال کیا جاتا ہے۔ یہ NiFe کی پتلی فلم ساخت ہے جو افقی فیلڈ کو عمودی جہاز میں موڑ دیتی ہے، جس سے ایک واحد AMR برج تینوں محوروں کو ناپ سکتا ہے۔
میگنیٹومیٹر زمین کے مقناطیسی فیلڈ (مطلق حوالہ) کے نسبت سمت بندی کا تعین کرتا ہے، جبکہ جائروسکوپ صرف زاویاتی تبدیلی (نسبتی ڈیٹا) ناپتا ہے۔ جائروسکوپ مختصر وقفوں پر درست ڈیٹا فراہم کرتا ہے لیکن ڈرفٹ غلطی جمع کرتا ہے۔ میگنیٹومیٹر ڈرفٹ نہیں کرتا لیکن مقناطیسی مداخلت کا شکار ہے۔
Android SensorManager.getRotationMatrix کے ذریعے تین سینسرز سے ڈیٹا کو یکجا کرتا ہے۔ میگنیٹومیٹر طویل وقفوں پر جائروسکوپ ڈرفٹ کو درست کرنے کے لیے استعمال ہوتا ہے۔ میگنیٹومیٹر کے بغیر، جائروسکوپ 5 منٹ میں 10–20 ڈگری کی غلطی جمع کرتا ہے۔ 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] — ریڈینز میں ایزیمتھ
ہارڈ آئرن — فون کے اندر فیرو میگنیٹک مواد (اسپیکر میگنیٹ، وائبریشن موٹر، دھاتی فریم) سے پیدا ہونے والا مستقل مقناطیسی فیلڈ۔ ہارڈ آئرن بگاڑ ہر محور پر ایک مستقل آفسیٹ (بایس) کے طور پر ظاہر ہوتا ہے۔ سافٹ آئرن — مقناطیسی طور پر قابل گزر مواد کی وجہ سے فیلڈ کی سمت میں تبدیلی جو فیلڈ لائنوں کو بگاڑ دیتی ہے۔
میگنیٹومیٹر کیلیبریشن کا معیاری طریقہ کار فون کو آٹھ کی شکل میں گھمانا ہے۔ عمل کے دوران، سینسر تین جہتی خلا میں پوائنٹس ریکارڈ کرتا ہے۔ بگاڑ کے بغیر، پوائنٹس 25–65 µT رداس والے کرہ پر واقع ہوتے ہیں۔ ہارڈ آئرن کرہ کے مرکز کو منتقل کرتا ہے، سافٹ آئرن اسے بیضوی شکل میں بدل دیتا ہے۔ کیلیبریشن الگورتھم آفسیٹ اور اسکیلنگ پیرامیٹرز کا حساب لگاتا ہے۔
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) الگورتھم کرہ سے انحراف کے مربعات کے مجموعے کو کم سے کم کرکے ہارڈ آئرن اور سافٹ آئرن پیرامیٹرز تلاش کرتا ہے۔ Apache Commons Math لائبریری اس کام کے لیے نان لائنیر کم سے کم مربعوں کا نفاذ (Levenberg-Marquardt) فراہم کرتی ہے — سافٹ ویئر کیلیبریشن کے بعد درستگی 0.5 ڈگری تک پہنچ جاتی ہے۔
ہارڈ آئرن کو کم سے کم کرنے کے لیے، مینوفیکچررز میگنیٹومیٹر کو فون کے اوپری حصے میں، اسپیکر اور وائبریشن موٹر سے دور رکھتے ہیں۔ Apple کے انجینئرز نے iPhone 16 Pro Max (2024) میں میگنیٹومیٹر کے لیے پرمالائے فوائل شیلڈنگ کا استعمال کیا، جس سے اسپیکر کا اثر 4 گنا کم ہوا۔ Samsung Galaxy S24 Ultra ایک اضافی معاوضہ سرکٹ استعمال کرتا ہے جو انڈسڈ فیلڈ کو کم کرنے کے لیے اسپیکر کرنٹ کو ریئل ٹائم میں ناپتا ہے۔ مقناطیسی ماؤنٹ والے کیسز (مثلاً کار ہولڈر میں) مضبوط بگاڑ پیدا کرتے ہیں — استعمال کے بعد، میگنیٹومیٹر دوبارہ کیلیبریشن تک غلط سمت دکھا سکتا ہے۔
Android دو سینسر فراہم کرتا ہے: TYPE_MAGNETIC_FIELD (µT میں کیلیبریٹڈ ڈیٹا) اور TYPE_MAGNETIC_FIELD_UNCALIBRATED (بگاڑ کے تخمینے کے ساتھ خام ڈیٹا)۔ نیویگیشن ایپس کے لیے، کیلیبریٹڈ سینسر استعمال کرنے کی سفارش کی جاتی ہے — سسٹم خود بخود آخری آٹھ کی شکل کی حرکت پر مبنی بلٹ ان کیلیبریشن لاگو کرتا ہے۔
SENSOR_DELAY_NORMAL (200 ms) کمپاس کے لیے کافی ہے، SENSOR_DELAY_FASTEST (0 ms) — صرف خصوصی تحقیقی ایپلیکیشنز کے لیے۔ قدریں حاصل کرنے کے بعد، آپ 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)
}
}
میگنیٹومیٹر صرف کمپاس کے لیے نہیں استعمال ہوتا۔ AR ایپلیکیشنز، بشمول Pokemon GO، حقیقی دنیا کے نسبت کیمرے کی سمت بندی کا تعین کرنے کے لیے میگنیٹومیٹر استعمال کرتی ہیں۔ میگنیٹومیٹر کے بغیر، ARCore Screen Axis موڈ میں چلا جاتا ہے — سمت بندی صرف جائروسکوپ سے طے ہوتی ہے، جو درستگی کم کر دیتی ہے۔
Android Auto پر مبنی آٹوموٹیو نیویگیشن سسٹمز میں، سرنگوں اور گنجان شہری علاقوں میں GPS سگنل کھونے پر حرکت کی سمت کا تعین کرنے کے لیے میگنیٹومیٹر استعمال ہوتا ہے۔ کار کے پہیوں سے اوڈومیٹری ڈیٹا (OBD-II کے ذریعے حاصل کردہ) کے ساتھ مل کر، میگنیٹومیٹر 10–20 میٹر کی پوزیشننگ درستگی کے ساتھ GPS کے بغیر 5 منٹ تک نیویگیشن جاری رکھنے کی اجازت دیتا ہے۔ Google Maps Engineering Blog (2024) کے مطابق، ہائبرڈ الگورتھم شہری کینیئنز میں راستے کے نقصان کو 40% تک کم کرتا ہے۔
نیویگیشن ایپس حرکت کا ایزیمتھ تعین کرنے کے لیے میگنیٹومیٹر استعمال کرتی ہیں — شمال اور صارف کے موجودہ ہیڈنگ کے درمیان زاویہ۔ Google Maps میں، میگنیٹومیٹر ڈیٹا GPS ٹریک اور حرکت کی تاریخ کے ساتھ مل کر نیلا سمت والا تیر دکھاتا ہے۔ جب GPS سگنل کھو جاتا ہے (سرنگوں، زیر زمین راستوں میں)، میگنیٹومیٹر سمت بندی کی معلومات کا واحد ذریعہ رہتا ہے۔
انٹیگریٹڈ ASIC (Bosch سے BMM350، 2024) کے ساتھ 3 محوری میگنیٹومیٹر کی نئی نسل صرف 0.35 mA استعمال کرتی ہے اور 200 Hz تک سپورٹ کرتی ہے۔ موبائل آلات کے لیے کوانٹم میگنیٹومیٹر اور ہیرے میں NV مراکز کی ترقی ابھی تک لیبارٹری تجربات کے مرحلے سے باہر نہیں آئی ہے۔ توقع ہے کہ 2028 تک، موبائل میگنیٹومیٹرز کی درستگی 0.01 µT تک پہنچ جائے گی۔
اکثر پوچھے گئے سوالات
فون سے ہوا میں آٹھ کا عدد بنائیں — یہ ڈیجیٹل کمپاس کیلیبریٹ کرنے کا معیاری اشارہ ہے۔ اگر کمپاس پھر بھی غلط دکھائے تو کیس چیک کریں: مقناطیسی ماؤنٹ اور دھاتی عناصر مضبوط ہارڈ آئرن بگاڑ پیدا کرتے ہیں۔
بنیادی وجوہات: فون کے اسپیکرز اور وائبریشن موٹر سے مقناطیسی مداخلت، کیس تبدیل کرنے کے بعد کیلیبریشن کی کمی، قریبی دھاتی اشیاء کا اثر۔ مضبوط کنکریٹ ڈھانچوں والی اندرونی جگہوں میں، مقناطیسی فیلڈ خاص طور پر بگڑ جاتا ہے۔
ہاں، میٹل ڈیٹیکٹر ایپس مقناطیسی فیلڈ کی بے ضابطگیوں کا پتہ لگانے کے لیے بلٹ ان میگنیٹومیٹر استعمال کرتی ہیں۔ تاہم، پتہ لگانے کی گہرائی 10–20 سینٹی میٹر سے زیادہ نہیں ہوتی، اور آلہ دھات کی اقسام میں فرق نہیں کرتا — یہ زیادہ تعلیمی ٹول ہے۔
TYPE_MAGNETIC_FIELD سسٹم کے ذریعے لاگو کردہ کیلیبریشن کے بعد ڈیٹا واپس کرتا ہے۔ TYPE_MAGNETIC_FIELD_UNCALIBRATED بایس تخمینے کے ساتھ خام قدریں فراہم کرتا ہے، جس سے ڈویلپر اپنی کیلیبریشن لاگو کر سکتا ہے۔
ایکسلیرومیٹر اور میگنیٹومیٹر ڈیٹا کے ساتھ SensorManager.getRotationMatrix استعمال کریں، پھر getOrientation — پہلا ایرے عنصر (ایزیمتھ) ریڈینز میں ہوگا۔ کمپاس دکھانے کے لیے، ڈگری میں تبدیل کریں: Math.toDegrees(azimuth).
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں