แมกนีโตมิเตอร์ในสมาร์ทโฟน — มันคืออะไร ชนิดและหลักการทำงาน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-03-22 เวลาอ่าน: 10 นาที

แมกนีโตมิเตอร์คือเซนเซอร์ที่วัดความแรงของสนามแม่เหล็กโลกเพื่อกำหนดทิศทางหลัก ในอุปกรณ์มือถือ มันทำงานเป็นเข็มทิศดิจิทัล ให้ความแม่นยำถึง 1–2 องศาเมื่อปรับเทียบอย่างถูกต้อง ตามข้อมูลจาก Bosch Sensortec Application Note, 2024 MEMS แมกนีโตมิเตอร์ สมัยใหม่กินไฟเพียง 0.5–2 mA และบรรจุในแพ็กเกจขนาด 1.5×1.5×0.7 มม.

ประเด็นสำคัญ

  • แมกนีโตมิเตอร์ — เซนเซอร์ฮอลล์ที่วัดสนามแม่เหล็กตามสามแกนด้วยช่วง ±1300 µT
  • เข็มทิศดิจิทัลที่ใช้แมกนีโตมิเตอร์ต้องการการปรับเทียบ — หากไม่ปรับ ค่าคลาดเคลื่อนถึง 30–40 องศา
  • Android API ใช้ Sensor.TYPE_MAGNETIC_FIELD เพื่อเข้าถึงข้อมูลในหน่วยไมโครเทสลา (µT)
  • Sensor Fusion รวมแมกนีโตมิเตอร์กับไจโรสโคปและมาตรความเร่งเพื่อการจัดทิศทางที่แม่นยำ
  • ฮาร์ดไอรอนและซอฟต์ไอรอน — การบิดเบือนสนามแม่เหล็กชนิดต่างๆ ที่เกิดจากโครงโลหะและลำโพงของโทรศัพท์

แมกนีโตมิเตอร์ในสมาร์ทโฟนคืออะไร

แมกนีโตมิเตอร์ในอุปกรณ์มือถือคือเซนเซอร์สนามแม่เหล็กสามแกนที่อาศัยปรากฏการณ์ฮอลล์ มันวัดเส้นโครงของเวกเตอร์เหนี่ยวนำแม่เหล็กบนแกน X, Y และ Z เมื่อรวมกับมาตรความเร่ง แมกนีโตมิเตอร์จะกำหนดอาซิมุท — มุมระหว่างทิศเหนือกับแกนของโทรศัพท์

ชนิดของแมกนีโตมิเตอร์ในอุปกรณ์มือถือ

สมาร์ทโฟนสมัยใหม่ใช้ MEMS แมกนีโตมิเตอร์ที่อาศัยปรากฏการณ์แมกนีโตรีซิสทีฟแบบแอนไอโซทรอปิก (AMR) และปรากฏการณ์ฮอลล์ เซนเซอร์ AMR (ซีรีส์ AKM จาก Asahi Kasei Microdevices) ให้ความไว 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)

โครงสร้างเซนเซอร์ AMR

แต่ละช่องสัญญาณในสามช่อง (X, Y, Z) ประกอบด้วย แมกนีโตรีซิสเตอร์สี่ตัวที่ต่ออยู่ในวงจรสะพานวีตสโตน สนามแม่เหล็กเปลี่ยนความต้านทานของรีซิสเตอร์ 2–3% ซึ่งถูกแปลงเป็นแรงดันโดยแอมพลิฟายเออร์ดิฟเฟอเรนเชียล ADC ในตัว 16 บิตแปลงสัญญาณเป็นดิจิทัลที่ความถี่สูงถึง 100 Hz

การวัดแกน Z

ในการวัดส่วนประกอบแนวตั้งของสนาม จะใช้ ตัวรวมสนามแม่เหล็กในตัว (IMC) ซึ่งเป็นโครงสร้างฟิล์มบาง NiFe ที่เบี่ยงเบนสนามแนวนอนไปยังระนาบแนวตั้ง ทำให้สะพาน AMR เดียวสามารถวัดทั้งสามแกนได้

แมกนีโตมิเตอร์แตกต่างจากไจโรสโคปอย่างไร

แมกนีโตมิเตอร์กำหนดทิศทางสัมพันธ์กับสนามแม่เหล็กโลก (ค่าอ้างอิงสัมบูรณ์) ในขณะที่ ไจโรสโคปวัดเฉพาะการเปลี่ยนแปลงเชิงมุม (ข้อมูลสัมพัทธ์) ไจโรสโคปให้ข้อมูลที่แม่นยำในช่วงสั้นๆ แต่สะสมค่าคลาดเคลื่อนดริฟต์ แมกนีโตมิเตอร์ไม่ดริฟต์แต่อ่อนไหวต่อการรบกวนทางแม่เหล็ก

Sensor Fusion กับแมกนีโตมิเตอร์

Android รวมข้อมูลจากเซนเซอร์สามตัวผ่าน SensorManager.getRotationMatrix แมกนีโตมิเตอร์ใช้เพื่อแก้ไขการดริฟต์ของไจโรสโคปในช่วงยาว หากไม่มีแมกนีโตมิเตอร์ ไจโรสโคปจะสะสมค่าคลาดเคลื่อน 10–20 องศาใน 5 นาที ตามข้อมูลของ Google ARCore (2024) อัลกอริทึมฟิวชันบรรลุความแม่นยำ 1–3 องศาเมื่อมีแมกนีโตมิเตอร์

kotlin
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 ฮาร์ดไอรอนเลื่อนศูนย์กลางทรงกลม ซอฟต์ไอรอนเปลี่ยนเป็นทรงรี อัลกอริทึมการปรับเทียบคำนวณพารามิเตอร์การเลื่อนและการปรับขนาด

kotlin
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 ด้วยโปรแกรม

Android มีเซนเซอร์สองตัว: TYPE_MAGNETIC_FIELD (ข้อมูลที่ปรับเทียบแล้วในหน่วย µT) และ TYPE_MAGNETIC_FIELD_UNCALIBRATED (ข้อมูลดิบพร้อมค่าประมาณการบิดเบือน) สำหรับแอปนำทาง แนะนำให้ใช้เซนเซอร์ที่ปรับเทียบแล้ว — ระบบจะใช้การปรับเทียบในตัวโดยอัตโนมัติตามการเคลื่อนที่รูปเลขแปดครั้งล่าสุด

การลงทะเบียนและประมวลผล

SENSOR_DELAY_NORMAL (200 มิลลิวินาที) เพียงพอสำหรับเข็มทิศ SENSOR_DELAY_FASTEST (0 มิลลิวินาที) — สำหรับแอปพลิเคชันวิจัยพิเศษเท่านั้น หลังจากรับค่าแล้ว คุณสามารถแปลงเป็นอาซิมุทผ่าน getRotationMatrix + getOrientation สิ่งสำคัญคือต้องตรวจสอบความแม่นยำของเซนเซอร์ผ่าน event.accuracy — SENSOR_STATUS_UNRELIABLE หมายถึงจำเป็นต้องปรับเทียบ

kotlin
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 — ทิศทางจะถูกกำหนดโดยไจโรสโคปเท่านั้น ซึ่งลดความแม่นยำ

  • การนำทาง — การกำหนดอาซิมุทการเคลื่อนที่ใน Google Maps, Yandex.Maps, MAPS.ME ความแม่นยำของเข็มทิศส่งผลโดยตรงต่อคุณภาพเส้นทาง
  • เครื่องตรวจจับโลหะ — แอปค้นหาวัตถุโลหะใช้แมกนีโตมิเตอร์เพื่อตรวจจับความผิดปกติของสนามแม่เหล็ก
  • ธรณีฟิสิกส์และการศึกษา — การวัดสนามแม่เหล็กสำหรับโครงการการศึกษา เซนเซอร์ช่วยให้ศึกษา�สนามแม่เหล็กโลกในโรงเรียน
  • VR และวิดีโอ 360 — ทิศทางศีรษะในชุดหูฟัง VR ได้รับการแก้ไขโดยแมกนีโตมิเตอร์เพื่อชดเชยการดริฟต์ของไจโรสโคป

แมกนีโตมิเตอร์ในการนำทางยานยนต์

ใน ระบบนำทางยานยนต์ที่ใช้ Android Auto แมกนีโตมิเตอร์ใช้กำหนดทิศทางการเคลื่อนที่เมื่อสัญญาณ GPS หายไปในอุโมงค์และพื้นที่เมืองหนาแน่น เมื่อรวมกับข้อมูลการวัดระยะจากล้อรถ (ที่ได้ผ่าน OBD-II) แมกนีโตมิเตอร์ช่วยให้นำทางต่อไปได้นานถึง 5 นาทีโดยไม่มี GPS ด้วยความแม่นยำตำแหน่ง 10–20 เมตร ตามข้อมูลของ Google Maps Engineering Blog (2024) อัลกอริทึมแบบไฮบริดลดการสูญเสียเส้นทางในหุบเขาเมืองลง 40%

แมกนีโตมิเตอร์ในแอปนำทาง

แอปนำทางใช้แมกนีโตมิเตอร์เพื่อ กำหนดอาซิมุทการเคลื่อนที่ — มุมระหว่างทิศเหนือกับทิศทางปัจจุบันของผู้ใช้ ใน Google Maps ข้อมูลแมกนีโตมิเตอร์จะรวมกับเส้นทาง GPS และประวัติการเคลื่อนที่เพื่อแสดงลูกศรทิศทางสีน้ำเงิน เมื่อสัญญาณ GPS หายไป (ในอุโมงค์ ทางเดินใต้ดิน) แมกนีโตมิเตอร์ยังคงเป็นแหล่งข้อมูลทิศทางเดียว

อนาคตของแมกนีโตมิเตอร์

แมกนีโตมิเตอร์ 3 แกนรุ่นใหม่ที่มี ASIC ในตัว (BMM350 จาก Bosch, 2024) กินไฟเพียง 0.35 mA และรองรับความถี่สูงถึง 200 Hz การพัฒนาแมกนีโตมิเตอร์ควอนตัมและศูนย์ NV ในเพชรสำหรับอุปกรณ์มือถือยังไม่ออกจากขั้นตอนการทดลองในห้องปฏิบัติการ คาดว่าภายในปี 2028 ความแม่นยำของแมกนีโตมิเตอร์มือถือจะถึง 0.01 µT

คำถามที่พบบ่อย

จะปรับเทียบแมกนีโตมิเตอร์บนโทรศัพท์ได้อย่างไร?

วาด รูปเลขแปด ด้วยโทรศัพท์ในอากาศ — นี่คือท่าทางมาตรฐานในการปรับเทียบเข็มทิศดิจิทัล หากเข็มทิศยังแสดงไม่ถูกต้อง ให้ตรวจสอบเคส: ที่ยึดแม่เหล็กและองค์ประกอบโลหะสร้างการบิดเบือนฮาร์ดไอรอนอย่างรุนแรง

ทำไมเข็มทิศในโทรศัพท์ถึงแสดงทิศทางผิด?

สาเหตุหลัก: การรบกวนทางแม่เหล็กจากลำโพงและมอเตอร์สั่นของโทรศัพท์ การไม่ปรับเทียบหลังจากเปลี่ยนเคส อิทธิพลของวัตถุโลหะใกล้เคียง ในพื้นที่ในร่มที่มีโครงสร้างคอนกรีตเสริมเหล็ก สนามแม่เหล็กจะถูกบิดเบือนอย่างรุนแรงเป็นพิเศษ

ฉันสามารถใช้โทรศัพท์เป็นเครื่องตรวจจับโลหะได้หรือไม่?

ได้ แอปตรวจจับโลหะใช้แมกนีโตมิเตอร์ในตัวเพื่อ ตรวจจับความผิดปกติของสนามแม่เหล็ก อย่างไรก็ตาม ความลึกในการตรวจจับไม่เกิน 10–20 ซม. และอุปกรณ์ไม่แยกแยะชนิดของโลหะ — มันเป็นเครื่องมือเพื่อการศึกษามากกว่า

TYPE_MAGNETIC_FIELD และ TYPE_MAGNETIC_FIELD_UNCALIBRATED ต่างกันอย่างไร?

TYPE_MAGNETIC_FIELD ส่งคืนข้อมูล หลังการปรับเทียบที่ระบบนำไปใช้ TYPE_MAGNETIC_FIELD_UNCALIBRATED ให้ค่าดิบพร้อมค่าประมาณไบอัส ทำให้นักพัฒนาสามารถใช้การปรับเทียบของตนเองได้

จะรับอาซิมุทจากข้อมูลแมกนีโตมิเตอร์ได้อย่างไร?

ใช้ SensorManager.getRotationMatrix กับข้อมูลมาตรความเร่งและแมกนีโตมิเตอร์ จากนั้น getOrientation — องค์ประกอบแรกของอาร์เรย์ (อาซิมุท) จะอยู่ในหน่วยเรเดียน หากต้องการแสดงเข็มทิศ ให้แปลงเป็นองศา: Math.toDegrees(azimuth)

สรุป

  • แมกนีโตมิเตอร์ — เซนเซอร์สนามแม่เหล็กสามแกนที่ทำงานเป็นเข็มทิศดิจิทัลในอุปกรณ์มือถือ
  • เทคโนโลยี AMR ที่อาศัยปรากฏการณ์ฮอลล์ช่วยให้วัดสนามโลกด้วยความแม่นยำ 0.15 µT/LSB
  • ฮาร์ดไอรอนและซอฟต์ไอรอน — การบิดเบือนแม่เหล็กจากส่วนประกอบโทรศัพท์ที่ต้องการปรับเทียบรูปเลขแปด
  • Android API มี TYPE_MAGNETIC_FIELD และ TYPE_MAGNETIC_FIELD_UNCALIBRATED พร้อมข้อมูลในหน่วย µT
  • Sensor Fusion รวมแมกนีโตมิเตอร์กับไจโรสโคปและมาตรความเร่งเพื่อทิศทางที่แม่นยำ (1–3 องศา)
  • การประยุกต์ใช้ รวมถึงการนำทาง แอป AR เครื่องตรวจจับโลหะ และการแก้ไขการดริฟต์ของไจโรสโคปใน VR
  • เซนเซอร์สมัยใหม่ กินไฟตั้งแต่ 0.35 mA ที่ 200 Hz ด้วยขนาด 1.5×1.5 มม.

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม