Compass (kompas) di smartphone adalah sensor digital berbasis magnetometer yang menentukan arah ke kutub magnet Bumi. Teknologi ini memungkinkan aplikasi navigasi, kartografi, dan realitas tertambah untuk menentukan orientasi perangkat di ruang angkasa secara akurat. Menurut data STMicroelectronics, 2025, MEMS-magnetometer modern memberikan akurasi penentuan arah hingga 1–2 derajat.
Poin Utama
Kompas digital (compass) di smartphone adalah sensor berbasis magnetometer yang mengukur kuat medan magnet Bumi dan menentukan azimuth (sudut relatif terhadap utara magnetik). Berbeda dengan kompas mekanik, kompas digital menggunakan sistem mikro-elektromekanis (MEMS) untuk merekam medan magnet. Magnetometer mengukur medan pada tiga sumbu, yang memungkinkan penentuan arah yang benar pada setiap kemiringan smartphone.
MEMS-magnetometer modern adalah microchip berukuran 2×2×1 mm, terintegrasi dalam bodi smartphone bersama dengan akselerometer dan giroskop (sebagai bagian dari IMU 9-sumbu). Sensor tidak hanya mengukur arah, tetapi juga intensitas medan magnet Bumi (25–65 µT tergantung garis lintang). Keberadaan benda logam dan medan magnet parasit dari speaker, motor getar, dan kamera menyebabkan distorsi, oleh karena itu untuk kerja akurat diperlukan koreksi perangkat lunak pada pembacaan.
Kompas digital pertama di ponsel muncul pada tahun 2009 dengan peluncuran iPhone 3GS — smartphone pertama dengan magnetometer built-in. Saat ini magnetometer dipasang di sebagian besar smartphone, termasuk model anggaran. Menurut Yole Group, pasar MEMS-magnetometer untuk perangkat seluler melebihi 1,5 miliar unit per tahun, yang menegaskan permintaan akan teknologi ini.
Dasar MEMS-magnetometer adalah elemen sensitif yang mengubah karakteristik listriknya di bawah pengaruh medan magnet eksternal. Di smartphone modern digunakan efek Hall atau efek magnetoresistif (AMR — Anisotropic Magneto-Resistance). Prinsipnya didasarkan pada kenyataan bahwa material pembawa arus mengubah resistansinya saat terkena medan magnet, dan dari perubahan tegangan dihitung vektor medan magnet.
Sensor berdasarkan efek Hall merekam perubahan tegangan di tepi pelat semikonduktor, yang timbul di bawah pengaruh gaya Lorentz pada muatan yang bergerak. Sensor magnetoresistif (AMR) menggunakan lapisan permalloy (NiFe), yang resistansinya tergantung pada arah medan magnet. Sensor AMR memberikan ukuran lebih kecil dan sensitivitas lebih tinggi dibandingkan sensor Hall, sehingga mendominasi di smartphone modern.
| Tipe | Sensitivitas | Konsumsi Daya | Ukuran |
|---|---|---|---|
| Hall | Sedang | Rendah | Sedang |
| AMR | Tinggi | Rendah | Kecil |
| GMR | Sangat Tinggi | Sedang | Kecil |
Data dari magnetometer digabungkan dengan pembacaan akselerometer untuk koreksi kemiringan dan penentuan arah utara di bidang horizontal. Algoritma fusi sensor (sensor fusion) menggunakan filter Madgwick atau filter Kalman untuk menggabungkan data magnetometer, giroskop, dan akselerometer. Ini memungkinkan memperoleh azimuth yang stabil dan akurat bahkan selama rotasi cepat dan guncangan perangkat.
Di industri seluler digunakan tiga jenis utama MEMS-magnetometer: berbasis efek Hall, magnetoresistif anisotropik (AMR) dan magnetoresistif raksasa (GMR). Magnetometer AMR paling luas di smartphone berkat kombinasi optimal sensitivitas, konsumsi daya, dan biaya. Produsen terkemuka — AKM (Asahi Kasei Microdevices), STMicroelectronics dan Bosch Sensortec.
Sensitivitas AMR-magnetometer smartphone tipikal adalah 0,3–1 µT dengan rentang dinamis ±1000 µT (±8 Gauss), cukup untuk pengukuran akurat medan Bumi (30–65 µT) dan kompensasi medan parasit. Frekuensi polling sensor bisa mencapai 100–200 Hz, tetapi sebagian besar aplikasi menggunakan 10–50 Hz untuk menghemat energi. Kompensasi otomatis suhu dan deformasi tegangan bodi diimplementasikan pada level driver sensor.
Kalibrasi kompas adalah proses kompensasi medan magnet parasit yang dihasilkan oleh komponen smartphone: speaker, motor getar, kamera, dan baterai. Tanpa kalibrasi, pembacaan magnetometer dapat menyimpang dari arah nyata sebesar 10–30 derajat. Sistem kalibrasi menentukan matriks pergeseran (hard-iron bias) pada tiga sumbu dan menerapkannya untuk koreksi semua pengukuran berikutnya.
Metode standar kalibrasi kompas — menggambar angka delapan: pengguna memutar smartphone pada lintasan menyerupai angka 8. Selama gerakan, sensor merekam medan magnet di semua kemungkinan orientasi, dan algoritma mengumpulkan titik-titik serta mengaproksimasi bola dengan pusat bergeser relatif terhadap nol. Radius bola sesuai dengan besarnya medan magnet Bumi, dan pusat — dengan vektor pergeseran parasit. Setelah aproksimasi, sistem menghitung koefisien koreksi untuk setiap sumbu.
Algoritma kalibrasi modern dari Qualcomm dan MediaTek melakukan kalibrasi latar belakang berkelanjutan tanpa partisipasi pengguna. Mereka menganalisis perubahan medan magnet saat rotasi perangkat dan secara otomatis memperbarui parameter koreksi. Jika sensor mendeteksi medan parasit baru (misalnya saat memasang casing magnetik), sistem memulai kalibrasi ulang dalam 1–2 detik gerakan terus-menerus perangkat.
Kompas digital digunakan dalam berbagai aplikasi seluler. Penerapan utama — layanan navigasi dan pemetaan (Google Maps, Yandex.Maps, 2GIS) yang menentukan orientasi perangkat di peta untuk menampilkan arah gerakan pengguna dengan benar. Di aplikasi realitas tertambah (AR) kompas memastikan penempatan yang benar objek virtual relatif terhadap arah mata angin.
Di aplikasi astronomi (Star Walk, SkySafari) kompas bersama akselerometer menentukan arah yang dituju smartphone dan menampilkan area langit berbintang yang sesuai. Aplikasi memancing dan turistik menggunakan kompas untuk menandai titik minat di peta dengan referensi azimuth. Pelacakan kebugaran dengan GPS menggunakan pembacaan kompas untuk menentukan arah lari atau bersepeda, yang meningkatkan akurasi tampilan rute.
Untuk akses ke kompas digital di Android digunakan sensor TYPE_MAGNETIC_FIELD dari Sensor API. Pengembang mendaftarkan listener perubahan pembacaan magnetometer dan menerima array nilai kuat medan magnet pada tiga sumbu dalam mikroTesla. Untuk menentukan azimuth, data magnetometer digabungkan dengan data akselerometer melalui matriks rotasi sensor fusion.
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())
// azimuth: 0 = utara, 90 = timur, 180 = selatan, 270 = barat
}
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) {}
}
Azimuth yang diperoleh melalui getOrientation diukur dalam radian dan dapat mengambil nilai dari -π hingga π, di mana 0 sesuai dengan utara magnetik. Untuk ditampilkan di layar, nilai dikonversi ke derajat (Math.toDegrees) dengan normalisasi ke rentang 0–360. Penting untuk mempertimbangkan deklinasi magnetik — sudut antara utara magnetik dan sejati (geografis), yang tergantung pada posisi geografis dan berubah seiring waktu. Google Maps secara otomatis mengoreksi deklinasi melalui GeomagneticField API.
Pertanyaan yang Sering Diajukan
Kompas digital menggunakan MEMS-magnetometer — chip berukuran 2×2 mm yang mengukur medan magnet Bumi pada tiga sumbu. Data magnetometer digabungkan dengan pembacaan akselerometer untuk menentukan azimuth — sudut antara arah utara dan orientasi perangkat.
Pembacaan kompas yang tidak akurat paling sering disebabkan oleh kurangnya kalibrasi, interferensi magnetik dari speaker atau motor getar, serta casing magnetik. Solusi — lakukan kalibrasi dengan gerakan angka delapan atau lepaskan aksesori magnetik. Pada kesalahan terus-menerus mungkin diperlukan pemeriksaan sensor.
Ya, kalibrasi kompas diperlukan untuk kompensasi medan magnet parasit di dalam smartphone. Di sebagian besar perangkat modern, kalibrasi dilakukan secara otomatis di latar belakang. Untuk kalibrasi manual, gambar angka delapan dengan smartphone di udara — sistem akan mengumpulkan data dari semua sudut dan mengoreksi pembacaan.
Di Android akses ke kompas dilakukan melalui Sensor API dengan sensor TYPE_MAGNETIC_FIELD. Azimuth dihitung melalui SensorManager.getRotationMatrix() dan getOrientation(), yang menggabungkan data magnetometer dan akselerometer. Azimuth yang diperoleh dapat disesuaikan untuk ditampilkan di layar.
Kompas paling akurat dipasang di smartphone dengan sensor IMU rangkap tiga (magnetometer + giroskop + akselerometer) dan sistem kalibrasi aktif. Pemimpinnya adalah flagship Google Pixel, Samsung Galaxy S-series dan iPhone Pro — mereka menggunakan magnetometer AKM dan Bosch dengan sensitivitas 0,3 µT dan koreksi otomatis.
Ringkasan
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.
Baca juga