เข็มทิศ (compass) ในสมาร์ทโฟนเป็นเซ็นเซอร์ดิจิทัลที่ใช้แมกนีโตมิวเตอร์ในการกำหนดทิศทางไปยังขั้วแม่เหล็กของโลก เทคโนโลยีนี้ช่วยให้แอปพลิเคชันนำทาง แผนที่ และความเป็นจริงเสริมสามารถกำหนดทิศทางของอุปกรณ์ในอวกาศได้อย่างแม่นยำ ตามข้อมูลของ STMicroelectronics, 2025 แมกนีโตมิเตอร์ MEMS สมัยใหม่ ให้ความแม่นยำในการกำหนดทิศทางสูงถึง 1–2 องศา
ประเด็นสำคัญ
เข็มทิศดิจิทัลในสมาร์ทโฟนเป็นเซ็นเซอร์ที่ใช้แมกนีโตมิเตอร์ วัดความเข้มของสนามแม่เหล็กโลกและกำหนดมุมอะซิมุท (มุมเทียบกับทิศเหนือแม่เหล็ก) ต่างจากเข็มทิศเชิงกล เข็มทิศดิจิทัลใช้ระบบไมโครอิเล็กโตรแมคคานิคอล (MEMS) ในการตรวจจับสนามแม่เหล็ก แมกนีโตมิเตอร์วัดสนามตามสามแกน ทำให้สามารถกำหนดทิศทางได้อย่างถูกต้องไม่ว่าสมาร์ทโฟนจะเอียงในทิศทางใด
แมกนีโตมิเตอร์ MEMS สมัยใหม่เป็นไมโครชิปขนาด 2×2×1 มม. ที่รวมอยู่ในตัวสมาร์ทโฟนพร้อมกับมาตรความเร่งและไจโรสโคป (เป็นส่วนหนึ่งของ IMU 9 แกน) เซ็นเซอร์ไม่เพียงวัดทิศทาง แต่ยังวัดความเข้มของสนามแม่เหล็กโลก (25–65 µT ขึ้นอยู่กับละติจูด) การมีวัตถุโลหะและสนามแม่เหล็กปรสิตจากลำโพง มอเตอร์สั่น และกล้อง สร้างความบิดเบือน ดังนั้นจึงจำเป็นต้องมีการแก้ไขซอฟต์แวร์ของการอ่านค่าเพื่อการทำงานที่แม่นยำ
เข็มทิศดิจิทัลแรกในโทรศัพท์มือถือปรากฏในปี 2009 ด้วยการเปิดตัว iPhone 3GS — สมาร์ทโฟนเครื่องแรกที่มีแมกนีโตมิเตอร์ในตัว ปัจจุบัน แมกนีโตมิเตอร์ถูกติดตั้งในสมาร์ทโฟนส่วนใหญ่ รวมถึงรุ่นประหยัด ตามข้อมูลของ Yole Group ตลาดแมกนีโตมิเตอร์ MEMS สำหรับอุปกรณ์มือถือเกิน 1.5 พันล้านหน่วยต่อปี ซึ่งยืนยันความต้องการเทคโนโลยีนี้
หัวใจของแมกนีโตมิเตอร์ MEMS คือธาตุตรวจจับที่เปลี่ยนคุณสมบัติทางไฟฟ้าภายใต้อิทธิพลของสนามแม่เหล็กภายนอก สมาร์ทโฟนสมัยใหม่ใช้ปรากฏการณ์ฮอลล์หรือปรากฏการณ์แมกนีโตรีซิสทีฟ (AMR — Anisotropic Magneto-Resistance) หลักการขึ้นอยู่กับความจริงที่ว่าวัสดุนำกระแสเปลี่ยนความต้านทานเมื่อสัมผัสกับสนามแม่เหล็ก และเวกเตอร์สนามแม่เหล็กถูกคำนวณจากการเปลี่ยนแปลงแรงดันไฟฟ้า
เซ็นเซอร์ปรากฏการณ์ฮอลล์ตรวจจับการเปลี่ยนแปลงแรงดันไฟฟ้าที่ขอบของแผ่นเซมิคอนดักเตอร์ที่เกิดจากแรงลอเรนซ์ต่อประจุที่เคลื่อนที่ เซ็นเซอร์แมกนีโตรีซิสทีฟ (AMR) ใช้ฟิล์มเปอร์มาลลอย (NiFe) ซึ่งความต้านทานขึ้นอยู่กับทิศทางของสนามแม่เหล็ก เซ็นเซอร์ AMR ให้ขนาดที่เล็กกว่าและความไวที่สูงกว่าเมื่อเทียบกับเซ็นเซอร์ฮอลล์ ดังนั้นจึงครองตลาดในสมาร์ทโฟนสมัยใหม่
| ประเภท | ความไว | การใช้พลังงาน | ขนาด |
|---|---|---|---|
| ฮอลล์ | ปานกลาง | ต่ำ | ปานกลาง |
| AMR | สูง | ต่ำ | เล็ก |
| GMR | สูงมาก | ปานกลาง | เล็ก |
ข้อมูลแมกนีโตมิเตอร์ถูกรวมกับการอ่านค่าของมาตรความเร่งเพื่อแก้ไขความเอียงและกำหนดทิศทางเหนือในระนาบแนวนอน อัลกอริทึมการรวมเซ็นเซอร์ใช้ตัวกรอง Madgwick หรือตัวกรอง Kalman เพื่อรวมข้อมูลจากแมกนีโตมิเตอร์ ไจโรสโคป และมาตรความเร่ง ซึ่งให้มุมอะซิมุทที่เสถียรและแม่นยำแม้ในระหว่างการหมุนเร็วและการเขย่าอุปกรณ์
ในอุตสาหกรรมมือถือ ใช้แมกนีโตมิเตอร์ MEMS สามประเภทหลัก: ปรากฏการณ์ฮอลล์, แมกนีโตรีซิสทีฟแบบแอนไอโซทรอปิก (AMR) และแมกนีโตรีซิสทีฟแบบยักษ์ (GMR) แมกนีโตมิเตอร์ AMR เป็นที่แพร่หลายที่สุดในสมาร์ทโฟนเนื่องจากความสมดุลที่เหมาะสมระหว่างความไว การใช้พลังงาน และต้นทุน ผู้ผลิตชั้นนำคือ AKM (Asahi Kasei Microdevices), STMicroelectronics และ Bosch Sensortec
ความไวของแมกนีโตมิเตอร์ AMR ในสมาร์ทโฟนทั่วไปคือ 0.3–1 µT โดยมีช่วงไดนามิก ±1000 µT (±8 เกาส์) ซึ่งเพียงพอสำหรับการวัดสนามโลก (30–65 µT) อย่างแม่นยำและชดเชยสนามปรสิต อัตราการสุ่มตัวอย่างของเซ็นเซอร์สามารถสูงถึง 100–200 Hz แต่แอปพลิเคชันส่วนใหญ่ใช้ 10–50 Hz เพื่อประหยัดพลังงาน การชดเชยอุณหภูมิและการเปลี่ยนรูปของตัวเครื่องโดยอัตโนมัติถูกใช้งานในระดับไดรเวอร์เซ็นเซอร์
การสอบเทียบเข็มทิศเป็นกระบวนการชดเชยสนามแม่เหล็กปรสิตที่สร้างโดยส่วนประกอบของสมาร์ทโฟน: ลำโพง มอเตอร์สั่น กล้อง และแบตเตอรี่ หากไม่มีการสอบเทียบ การอ่านค่าของแมกนีโตมิเตอร์อาจเบี่ยงเบนจากทิศทางจริง 10–30 องศา ระบบสอบเทียบกำหนดเมทริกซ์ออฟเซ็ต (hard-iron bias) ตามสามแกนและนำไปใช้เพื่อแก้ไขการวัดทั้งหมดที่ตามมา
วิธีมาตรฐานของการสอบเทียบเข็มทิศคือการวาด “เลข 8”: ผู้ใช้หมุนสมาร์ทโฟนตามวิถีที่คล้ายกับเลข 8 ระหว่างการเคลื่อนไหว เซ็นเซอร์บันทึกสนามแม่เหล็กในทุกทิศทางที่เป็นไปได้ และอัลกอริทึมสะสมจุดและประมาณทรงกลมที่มีจุดศูนย์กลางเยื้องจากศูนย์ รัศมีของทรงกลมสอดคล้องกับขนาดของสนามแม่เหล็กโลก และจุดศูนย์กลางแสดงถึงเวกเตอร์ออฟเซ็ตปรสิต หลังจากการประมาณ ระบบจะคำนวณสัมประสิทธิ์การแก้ไขสำหรับแต่ละแกน
อัลกอริทึมการสอบเทียบสมัยใหม่จาก Qualcomm และ MediaTek ทำการสอบเทียบพื้นหลังอย่างต่อเนื่องโดยไม่ต้องให้ผู้ใช้ดำเนินการ พวกเขาวิเคราะห์การเปลี่ยนแปลงของสนามแม่เหล็กระหว่างการหมุนอุปกรณ์และอัปเดตพารามิเตอร์การแก้ไขโดยอัตโนมัติ หากเซ็นเซอร์ตรวจจับสนามปรสิตใหม่ (เช่น เมื่อติดเคสแม่เหล็ก) ระบบจะเริ่มการสอบเทียบใหม่ภายใน 1–2 วินาทีของการเคลื่อนที่ต่อเนื่องของอุปกรณ์
เข็มทิศดิจิทัลถูกใช้ในแอปพลิเคชันมือถือที่หลากหลาย การใช้งานหลักคือในบริการนำทางและแผนที่ (Google Maps, Yandex.Maps, 2GIS) ซึ่งกำหนดทิศทางของอุปกรณ์บนแผนที่เพื่อแสดงทิศทางการเคลื่อนที่ของผู้ใช้อย่างถูกต้อง ในแอปพลิเคชันความเป็นจริงเสริม (AR) เข็มทิศช่วยให้ตำแหน่งที่ถูกต้องของวัตถุเสมือนเทียบกับทิศทางหลัก
ในแอปพลิเคชันดาราศาสตร์ (Star Walk, SkySafari) เข็มทิศรวมกับมาตรความเร่งกำหนดทิศทางที่สมาร์ทโฟนชี้และแสดงพื้นที่ที่สอดคล้องกันของท้องฟ้ายามค่ำคืน แอปตกปลาและการท่องเที่ยวใช้เข็มทิศเพื่อทำเครื่องหมายจุดสนใจบนแผนที่พร้อมการอ้างอิงมุมอะซิมุท การติดตามฟิตเนสด้วย GPS ใช้การอ่านค่าเข็มทิศเพื่อกำหนดทิศทางการวิ่งหรือปั่นจักรยาน ซึ่งช่วยเพิ่มความแม่นยำในการแสดงเส้นทาง
เพื่อเข้าถึงเข็มทิศดิจิทัลบน Android ใช้เซ็นเซอร์ TYPE_MAGNETIC_FIELD จาก Sensor API นักพัฒนาลงทะเบียนตัวฟังการเปลี่ยนแปลงของการอ่านค่าแมกนีโตมิเตอร์และรับอาร์เรย์ของค่าความเข้มสนามแม่เหล็กตามสามแกนในหน่วยไมโครเทสลา เพื่อกำหนดมุมอะซิมุท ข้อมูลแมกนีโตมิเตอร์ถูกรวมกับข้อมูลมาตรความเร่งผ่านเมทริกซ์การหมุนโดยการรวมเซ็นเซอร์
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager
class CompassManager(
private val sensorManager: SensorManager
) : SensorEventListener {
private val magnetometer = FloatArray(3)
private val accelerometer = FloatArray(3)
private val rotationMatrix = FloatArray(9)
private val orientation = FloatArray(3)
override fun onSensorChanged(event: SensorEvent) {
if (event.sensor.type == Sensor.TYPE_MAGNETIC_FIELD) {
event.values.copyInto(magnetometer)
} else if (event.sensor.type == Sensor.TYPE_ACCELEROMETER) {
event.values.copyInto(accelerometer)
}
SensorManager.getRotationMatrix(
rotationMatrix, null,
accelerometer, magnetometer
)
SensorManager.getOrientation(rotationMatrix, orientation)
val azimuth = Math.toDegrees(orientation[0].toDouble())
// มุมอะซิมุท: 0 = เหนือ, 90 = ตะวันออก, 180 = ใต้, 270 = ตะวันตก
}
fun start() {
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
SensorManager.SENSOR_DELAY_UI)
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI)
}
override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}
มุมอะซิมุทที่ได้จากgetOrientation วัดเป็นเรเดียนและสามารถรับค่าตั้งแต่ -π ถึง π โดยที่ 0 สอดคล้องกับทิศเหนือแม่เหล็ก สำหรับการแสดงบนหน้าจอ ค่าจะถูกแปลงเป็นองศา (Math.toDegrees) ทำให้เป็นมาตรฐานในช่วง 0–360 สิ่งสำคัญคือต้องคำนึงถึงค่าคลาดเคลื่อนแม่เหล็ก — มุมระหว่างทิศเหนือแม่เหล็กกับทิศเหนือจริง (ภูมิศาสตร์) ซึ่งขึ้นอยู่กับตำแหน่งทางภูมิศาสตร์และเปลี่ยนแปลงตามเวลา Google Maps ปรับค่าคลาดเคลื่อนโดยอัตโนมัติผ่าน GeomagneticField API
คำถามที่พบบ่อย
เข็มทิศดิจิทัลใช้แมกนีโตมิเตอร์ MEMS — ชิปขนาด 2×2 มม. ที่วัดสนามแม่เหล็กโลกตามสามแกน ข้อมูลแมกนีโตมิเตอร์ถูกรวมกับการอ่านค่ามาตรความเร่งเพื่อกำหนดมุมอะซิมุท — มุมระหว่างทิศเหนือกับทิศทางของอุปกรณ์
การอ่านค่าเข็มทิศที่ไม่ถูกต้องมักเกิดจากการขาดการสอบเทียบ การรบกวนทางแม่เหล็กจากลำโพงหรือมอเตอร์สั่น รวมถึงเคสแม่เหล็ก วิธีแก้คือทำการเคลื่อนที่สอบเทียบเป็นรูป “เลข 8” หรือถอดอุปกรณ์เสริมแม่เหล็กออก สำหรับข้อผิดพลาดที่เกิดขึ้นอย่างต่อเนื่อง อาจต้องตรวจสอบเซ็นเซอร์
ใช่ การสอบเทียบเข็มทิศจำเป็นเพื่อชดเชยสนามแม่เหล็กปรสิตภายในสมาร์ทโฟน ในอุปกรณ์สมัยใหม่ส่วนใหญ่ การสอบเทียบจะดำเนินการโดยอัตโนมัติในพื้นหลัง สำหรับการสอบเทียบด้วยตนเอง ให้วาด “เลข 8” ด้วยสมาร์ทโฟนในอากาศ — ระบบจะรวบรวมข้อมูลจากทุกมุมและแก้ไขการอ่านค่า
บน Android การเข้าถึงเข็มทิศมีให้ผ่าน Sensor API ด้วยเซ็นเซอร์ TYPE_MAGNETIC_FIELD มุมอะซิมุทคำนวณผ่าน SensorManager.getRotationMatrix() และ getOrientation() ซึ่งรวมข้อมูลแมกนีโตมิเตอร์และมาตรความเร่ง มุมอะซิมุทที่ได้สามารถปรับสำหรับการแสดงบนหน้าจอ
เข็มทิศที่แม่นยำที่สุดติดตั้งในสมาร์ทโฟนที่มีเซ็นเซอร์ IMU สามเท่า (แมกนีโตมิเตอร์ + ไจโรสโคป + มาตรความเร่ง) และระบบสอบเทียบเชิงรุก ผู้นำคือรุ่นเรือธง Google Pixel, Samsung Galaxy S-series และ iPhone Pro — พวกเขาใช้แมกนีโตมิเตอร์ AKM และ Bosch ที่มีความไว 0.3 µT และการแก้ไขอัตโนมัติ
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม