ম্যাগনেটোমিটার হল একটি সেন্সর যা মূল দিকনির্দেশ নির্ধারণের জন্য পৃথিবীর চৌম্বক ক্ষেত্রের শক্তি পরিমাপ করে। মোবাইল ডিভাইসে, এটি একটি ডিজিটাল কম্পাস হিসাবে কাজ করে, সঠিক ক্যালিব্রেশনের সাথে 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
)
}
ডেভেলপার ডিভাইস চলাকালীন ডেটা সংগ্রহ করে নিজস্ব ম্যাগনেটোমিটার ক্যালিব্রেশন প্রয়োগ করতে পারেন। উপবৃত্তাকার ফিটিং অ্যালগরিদম গোলক থেকে বর্গ বিচ্যুতির সমষ্টি কমিয়ে হার্ড আয়রন এবং সফট আয়রন প্যারামিটার খুঁজে পায়। 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 স্ক্রিন অক্ষ মোডে সুইচ করে — ওরিয়েন্টেশন শুধুমাত্র গাইরোস্কোপ দ্বারা নির্ধারিত হয়, যা নির্ভুলতা হ্রাস করে।
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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন