Magnetometer di smartphone — apa itu, jenis dan prinsip kerja

Penulis: IT Sectr Diterbitkan: 2026-03-22 Waktu membaca: 10 mnt

Magnetometer adalah sensor yang mengukur intensitas medan magnet bumi untuk menentukan arah mata angin. Di perangkat seluler, ia berfungsi sebagai kompas digital, memberikan akurasi hingga 1–2 derajat dengan kalibrasi yang benar. Menurut Bosch Sensortec Application Note, 2024, MEMS-magnetometer modern hanya mengonsumsi 0,5–2 mA dan muat dalam casing 1,5×1,5×0,7 mm.

Poin Utama

  • Magnetometer — sensor Hall yang mengukur medan magnet pada tiga sumbu dengan rentang ±1300 µT.
  • Kompas digital berbasis magnetometer memerlukan kalibrasi — tanpanya kesalahan mencapai 30–40 derajat.
  • Android API menggunakan Sensor.TYPE_MAGNETIC_FIELD untuk mengakses data dalam mikroTesla (µT).
  • Sensor Fusion menggabungkan magnetometer dengan giroskop dan akselerometer untuk orientasi yang akurat.
  • Hard Iron dan Soft Iron — jenis distorsi magnetik yang disebabkan oleh logam casing dan speaker smartphone.

Apa itu magnetometer di smartphone

Magnetometer di perangkat seluler adalah sensor medan magnet tiga sumbu yang didasarkan pada efek Hall. Sensor ini mengukur proyeksi vektor induksi magnetik pada sumbu X, Y, dan Z. Dengan kombinasi akselerometer, magnetometer memungkinkan penentuan azimuth — sudut antara arah utara dan sumbu telepon.

Jenis magnetometer di perangkat seluler

Di smartphone modern, MEMS-magnetometer digunakan berdasarkan efek magnetoresistif anisotropik (AMR) dan efek Hall. Sensor AMR (seri AKM dari Asahi Kasei Microdevices) memberikan sensitivitas 0,15 µT/LSB dan rentang ±1200 µT — cukup untuk mengukur medan bumi (25–65 µT).

ParameterNilai
TeknologiAMR / Efek Hall
Rentang±1200 — ±1300 µT
Konsumsi0,5–2 mA
Ukuran1,5×1,5×0,7 mm
Sensitivitas0,15 µT/LSB

Mengapa magnetometer penting untuk smartphone

Tanpa kompas digital, aplikasi navigasi tidak dapat menentukan arah gerakan. Google Maps menggunakan magnetometer untuk menampilkan orientasi peta relatif terhadap arah pandangan pengguna. Saat sensor gagal, aplikasi hanya menunjukkan posisi di peta tanpa panah arah biru.

Bagaimana cara kerja sensor Hall

Efek Hall adalah fenomena fisika munculnya perbedaan potensial di tepi pelat konduktor di bawah pengaruh medan magnet. Di MEMS-magnetometer, digunakan struktur film tipis dari permalloy (NiFe), yang resistansinya berubah di bawah pengaruh medan magnet eksternal (efek AMR).

Struktur sensor AMR

Masing-masing dari tiga saluran (X, Y, Z) terdiri dari empat magnetoresistor yang dihubungkan dalam jembatan Wheatstone. Medan magnet mengubah resistansi resistor sebesar 2–3%, yang diubah oleh penguat diferensial menjadi tegangan. ADC 16-bit internal mendigitalkan sinyal dengan frekuensi hingga 100 Hz.

Pengukuran pada sumbu Z

Untuk mengukur komponen vertikal medan, digunakan konsentrator fluks magnetik terintegrasi (IMC — Integrated Magnetic Concentrator). Ini adalah struktur film tipis dari NiFe yang membelokkan medan horizontal ke bidang vertikal, memungkinkan satu jembatan AMR mengukur ketiga sumbu.

Perbedaan magnetometer dan giroskop

Magnetometer menentukan orientasi relatif terhadap medan magnet bumi (referensi absolut), sedangkan giroskop hanya mengukur perubahan sudut (data relatif). Giroskop memberikan data akurat pada interval pendek, tetapi mengakumulasi kesalahan drift. Magnetometer tidak mengalami drift, tetapi rentan terhadap interferensi magnetik.

Sensor Fusion dengan magnetometer

Android menggabungkan data tiga sensor melalui SensorManager.getRotationMatrix. Magnetometer digunakan untuk koreksi drift giroskop pada interval panjang. Tanpa magnetometer, giroskop mengakumulasi kesalahan 10–20 derajat dalam 5 menit. Menurut Google ARCore (2024), algoritma fusion mencapai akurasi 1–3 derajat dengan keberadaan magnetometer.

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] — azimuth dalam radian

Distorsi magnetik: Hard Iron dan Soft Iron

Hard Iron — medan magnet konstan yang diciptakan oleh bahan feromagnetik di dalam telepon: magnet speaker, motor getar, bingkai logam casing. Distorsi Hard Iron muncul sebagai pergeseran konstan (bias) pada setiap sumbu. Soft Iron — perubahan arah medan karena bahan konduktif magnetik yang mendistorsi bentuk garis medan.

Algoritma kalibrasi

Prosedur kalibrasi standar magnetometer adalah memutar telepon dalam pola angka delapan (figure-8 pattern). Selama proses, sensor mencatat titik-titik dalam ruang tiga dimensi. Tanpa distorsi, titik-titik berada pada bola dengan radius 25–65 µT. Hard Iron menggeser pusat bola, Soft Iron mengubahnya menjadi ellipsoid. Algoritma kalibrasi menghitung parameter pergeseran dan penskalaan.

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
    )
}

Koreksi perangkat lunak distorsi

Pengembang dapat mengimplementasikan kalibrasi magnetometer sendiri dengan mengumpulkan data selama pergerakan perangkat. Algoritma pemasangan ellipsoid (ellipsoid fitting) menemukan parameter Hard Iron dan Soft Iron dengan meminimalkan jumlah kuadrat deviasi dari bola. Pustaka Apache Commons Math menyediakan implementasi metode kuadrat terkecil non-linear (Levenberg-Marquardt) untuk tugas ini — akurasi setelah kalibrasi perangkat lunak mencapai 0,5 derajat.

Rekomendasi untuk menghilangkan gangguan

Untuk meminimalkan Hard Iron, produsen menempatkan magnetometer di bagian atas telepon, jauh dari speaker dan motor getar. Insinyur Apple di iPhone 16 Pro Max (2024) menerapkan pelindung magnetometer dengan foil permalloy, mengurangi pengaruh speaker sebanyak 4 kali. Di Samsung Galaxy S24 Ultra, digunakan sirkuit kompensasi tambahan yang mengukur arus di speaker secara real-time untuk mengurangi medan induksi. Casing dengan pengikat magnetik (misalnya, di dudukan mobil) menciptakan distorsi kuat — setelah penggunaan, magnetometer dapat menunjukkan arah yang salah hingga kalibrasi ulang.

Akses programatik ke magnetometer di Android

Android menyediakan dua sensor: TYPE_MAGNETIC_FIELD (data terkalibrasi dalam µT) dan TYPE_MAGNETIC_FIELD_UNCALIBRATED (data mentah dengan estimasi distorsi). Untuk aplikasi navigasi, disarankan menggunakan sensor terkalibrasi — sistem secara otomatis menerapkan kalibrasi bawaan berdasarkan gerakan angka delapan terakhir.

Pendaftaran dan pemrosesan

Penundaan SENSOR_DELAY_NORMAL (200 ms) cukup untuk kompas, SENSOR_DELAY_FASTEST (0 ms) — hanya untuk aplikasi penelitian khusus. Setelah menerima nilai, dapat dikonversi menjadi azimuth melalui getRotationMatrix + getOrientation. Penting untuk memeriksa akurasi sensor melalui event.accuracy — nilai SENSOR_STATUS_UNRELIABLE berarti perlunya kalibrasi.

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)
    }
}

Penerapan magnetometer di aplikasi seluler

Magnetometer tidak hanya digunakan untuk kompas. Aplikasi AR, termasuk Pokemon GO, menggunakan magnetometer untuk menentukan orientasi kamera relatif terhadap dunia nyata. Tanpa magnetometer, ARCore beralih ke mode Screen Axis — orientasi hanya ditentukan oleh giroskop, yang mengurangi akurasi.

  • Navigasi — penentuan azimuth gerakan di Google Maps, Yandex.Maps, MAPS.ME. Akurasi kompas secara langsung mempengaruhi kualitas rute.
  • Detektor logam — aplikasi pencarian benda logam menggunakan magnetometer untuk mendeteksi anomali medan magnet.
  • Geofisika dan pendidikan — pengukuran medan magnet untuk proyek pendidikan. Sensor memungkinkan mempelajari medan magnet bumi di sekolah.
  • VR dan video 360 — orientasi kepala di headset VR dikoreksi oleh magnetometer untuk mengkompensasi drift giroskop.

Magnetometer dalam navigasi mobil

Dalam sistem navigasi mobil berbasis Android Auto, magnetometer digunakan untuk menentukan arah pergerakan saat kehilangan sinyal GPS di terowongan dan area perkotaan padat. Dalam kombinasi dengan data odometri dari roda kendaraan (diperoleh melalui OBD-II), magnetometer memungkinkan navigasi dilanjutkan hingga 5 menit tanpa GPS dengan akurasi posisi 10–20 meter. Menurut Google Maps Engineering Blog (2024), algoritma hibrida mengurangi persentase kehilangan rute di ngarai perkotaan sebesar 40%.

Magnetometer dalam aplikasi navigasi

Aplikasi navigasi menggunakan magnetometer untuk menentukan azimuth gerakan — sudut antara arah utara dan arah saat ini pengguna. Di Google Maps, data magnetometer digabungkan dengan jejak GPS dan riwayat pergerakan untuk menampilkan panah arah biru. Saat kehilangan sinyal GPS (di terowongan, lorong bawah tanah), magnetometer tetap menjadi satu-satunya sumber informasi orientasi.

Masa depan magnetometer

Generasi baru magnetometer 3-sumbu dengan ASIC terintegrasi (BMM350 dari Bosch, 2024) hanya mengonsumsi 0,35 mA dan mendukung frekuensi hingga 200 Hz. Pengembangan magnetometer kuantum dan pusat NV di berlian untuk perangkat seluler masih dalam tahap eksperimen laboratorium. Diperkirakan pada tahun 2028, akurasi magnetometer seluler akan mencapai 0,01 µT.

Pertanyaan yang Sering Diajukan

Bagaimana cara mengkalibrasi magnetometer di telepon?

Gambar angka delapan dengan telepon di udara — ini adalah gerakan standar untuk kalibrasi kompas digital. Jika kompas masih menunjukkan tidak akurat, periksa casing: pengikat magnetik dan elemen logam menciptakan distorsi Hard Iron yang kuat.

Mengapa kompas di telepon menunjukkan tidak akurat?

Penyebab utama: interferensi magnetik dari speaker dan motor getar telepon, tidak ada kalibrasi setelah mengganti casing, pengaruh benda logam di sekitar. Di ruangan dengan konstruksi beton bertulang, medan magnet terdistorsi sangat kuat.

Bisakah telepon digunakan sebagai detektor logam?

Ya, aplikasi detektor logam menggunakan magnetometer bawaan untuk mendeteksi anomali medan magnet. Namun, kedalaman deteksi tidak melebihi 10–20 cm, dan perangkat tidak membedakan jenis logam — ini lebih merupakan alat pendidikan.

Apa perbedaan TYPE_MAGNETIC_FIELD dan TYPE_MAGNETIC_FIELD_UNCALIBRATED?

TYPE_MAGNETIC_FIELD mengembalikan data setelah kalibrasi yang diterapkan oleh sistem. TYPE_MAGNETIC_FIELD_UNCALIBRATED memberikan nilai mentah ditambah estimasi pergeseran (bias), memungkinkan pengembang menerapkan kalibrasi sendiri.

Bagaimana cara mendapatkan azimuth dari data magnetometer?

Gunakan SensorManager.getRotationMatrix dengan data akselerometer dan magnetometer, kemudian getOrientation — elemen pertama array (azimuth) akan dalam radian. Untuk menampilkan kompas, konversikan ke derajat: Math.toDegrees(azimuth).

Kesimpulan

  • Magnetometer — sensor medan magnet tiga sumbu yang berfungsi sebagai kompas digital di perangkat seluler.
  • Teknologi AMR berdasarkan efek Hall memungkinkan pengukuran medan bumi dengan akurasi 0,15 µT/LSB.
  • Hard Iron dan Soft Iron — distorsi magnetik yang disebabkan oleh komponen telepon yang memerlukan kalibrasi dengan gerakan angka delapan.
  • Android API menyediakan TYPE_MAGNETIC_FIELD dan TYPE_MAGNETIC_FIELD_UNCALIBRATED dengan data dalam µT.
  • Sensor Fusion menggabungkan magnetometer dengan giroskop dan akselerometer untuk orientasi akurat (1–3 derajat).
  • Penerapan mencakup navigasi, aplikasi AR, detektor logam, dan koreksi drift giroskop di VR.
  • Sensor modern mengonsumsi mulai 0,35 mA pada frekuensi 200 Hz dengan ukuran 1,5×1,5 mm.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga