Akıllı telefonlarda manyetometre — nedir, türleri ve çalışma prensibi

Yazar: IT Sectr Yayınlanma: 2026-03-22 Okuma süresi: 10 dk

Manyetometre, ana yönleri belirlemek için Dünya'nın manyetik alan şiddetini ölçen bir sensördür. Mobil cihazlarda, dijital pusula olarak çalışır ve uygun kalibrasyonla 1–2 dereceye kadar doğruluk sağlar. Bosch Sensortec Application Note, 2024'e göre, modern MEMS manyetometreler yalnızca 0.5–2 mA tüketir ve 1.5×1.5×0.7 mm boyutunda bir pakete sığar.

Önemli noktalar

  • Manyetometre — ±1300 µT aralığında üç eksen boyunca manyetik alanı ölçen Hall etkisi sensörü.
  • Dijital pusula manyetometreye dayalı olarak kalibrasyon gerektirir — onsuz hata 30–40 dereceye ulaşır.
  • Android API mikrotesla (µT) cinsinden verilere erişmek için Sensor.TYPE_MAGNETIC_FIELD kullanır.
  • Sensor Fusion doğru yönlendirme için manyetometreyi jiroskop ve ivmeölçer ile birleştirir.
  • Hard Iron ve Soft Iron — telefonun metal kasası ve hoparlörlerinden kaynaklanan manyetik bozulma türleri.

Akıllı telefonda manyetometre nedir

Mobil cihazdaki manyetometre, Hall etkisine dayanan üç eksenli bir manyetik alan sensörüdür. Manyetik indüksiyon vektörünün X, Y ve Z eksenlerindeki izdüşümlerini ölçer. İvmeölçer ile birleştirildiğinde, manyetometre azimutu — kuzey yönü ile telefon ekseni arasındaki açıyı — belirler.

Mobil cihazlarda manyetometre türleri

Modern akıllı telefonlar, anizotropik manyetodirenç etkisi (AMR) ve Hall etkisine dayanan MEMS manyetometreler kullanır. AMR sensörleri (Asahi Kasei Microdevices'den AKM serisi) 0.15 µT/LSB hassasiyet ve ±1200 µT aralık sağlar — Dünya'nın alanını (25–65 µT) ölçmek için yeterlidir.

ParametreDeğer
TeknolojiAMR / Hall Etkisi
Aralık±1200 — ±1300 µT
Tüketim0.5–2 mA
Boyut1.5×1.5×0.7 mm
Hassasiyet0.15 µT/LSB

Manyetometre akıllı telefon için neden önemlidir

Dijital pusula olmadan, navigasyon uygulamaları hareket yönünü belirleyemez. Google Maps, kullanıcının bakış yönüne göre harita yönünü görüntülemek için manyetometreyi kullanır. Sensör arızalandığında, uygulama mavi yön oku olmadan haritada yalnızca konumu gösterir.

Hall etkisi sensörü nasıl çalışır

Hall etkisi, iletken bir plaka manyetik alana maruz kaldığında kenarlarında potansiyel farkı oluşması fiziksel olayıdır. MEMS manyetometreler, direnci harici bir manyetik alanın (AMR etkisi) etkisi altında değişen permalloy (NiFe)'den yapılmış ince film yapıları kullanır.

AMR sensör yapısı

Üç kanalın (X, Y, Z) her biri Wheatstone köprüsünde bağlı dört manyetodirençten oluşur. Manyetik alan, dirençlerin direncini %2–3 oranında değiştirir ve bu, bir diferansiyel yükseltici tarafından voltaja dönüştürülür. Dahili 16 bitlik ADC, sinyali 100 Hz'e kadar frekansta dijitalleştirir.

Z ekseni ölçümü

Alanın dikey bileşenini ölçmek için entegre manyetik yoğunlaştırıcı (IMC) kullanılır. Bu, yatay alanı dikey düzleme saptıran ve tek bir AMR köprüsünün üç ekseni de ölçmesine izin veren ince bir NiFe film yapısıdır.

Manyetometre jiroskoptan nasıl farklıdır

Manyetometre, Dünya'nın manyetik alanına göre yönü (mutlak referans) belirlerken, jiroskop yalnızca açısal değişimi (göreli veri) ölçer. Jiroskop kısa aralıklarda doğru veri sağlar ancak sürüklenme hatası biriktirir. Manyetometre sürüklenmez ancak manyetik girişime karşı hassastır.

Manyetometre ile Sensor Fusion

Android, SensorManager.getRotationMatrix aracılığıyla üç sensörden gelen verileri birleştirir. Manyetometre, uzun aralıklarda jiroskop sürüklenmesini düzeltmek için kullanılır. Manyetometre olmadan, jiroskop 5 dakikada 10–20 derecelik bir hata biriktirir. Google ARCore'a (2024) göre, füzyon algoritması manyetometre ile 1–3 derece doğruluk elde eder.

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] — radyan cinsinden azimut

Manyetik bozulmalar: Hard Iron ve Soft Iron

Hard Iron — telefon içindeki ferromanyetik malzemeler (hoparlör mıknatısları, titreşim motoru, metal çerçeve) tarafından oluşturulan kalıcı manyetik alan. Hard Iron bozulması, her eksende sabit bir ofset (bias) olarak görünür. Soft Iron — alan çizgilerini bozan manyetik geçirgen malzemelerin neden olduğu alan yönü değişikliği.

Kalibrasyon algoritması

Standart manyetometre kalibrasyon prosedürü, telefonu sekiz şeklinde döndürmektir. İşlem sırasında sensör, üç boyutlu uzayda noktalar kaydeder. Bozulma olmadan, noktalar 25–65 µT yarıçaplı bir küre üzerinde bulunur. Hard Iron kürenin merkezini kaydırır, Soft Iron onu bir elipsoide dönüştürür. Kalibrasyon algoritması ofset ve ölçekleme parametrelerini hesaplar.

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

Yazılımsal bozulma düzeltmesi

Geliştirici, cihaz hareket ederken veri toplayarak kendi manyetometre kalibrasyonunu uygulayabilir. Elipsoid uydurma (ellipsoid fitting) algoritması, küreden sapmaların kareleri toplamını en aza indirerek Hard Iron ve Soft Iron parametrelerini bulur. Apache Commons Math kütüphanesi, bu görev için doğrusal olmayan en küçük kareler uygulaması (Levenberg-Marquardt) sağlar — yazılım kalibrasyonu sonrası doğruluk 0.5 dereceye ulaşır.

Girişim azaltma önerileri

Hard Iron'ı en aza indirmek için üreticiler manyetometreyi telefonun üst kısmına, hoparlör ve titreşim motorundan uzağa yerleştirir. Apple mühendisleri iPhone 16 Pro Max'te (2024) manyetometre için permalloy folyo kalkanlama kullanarak hoparlör etkisini 4 kat azalttı. Samsung Galaxy S24 Ultra, indüklenen alanı çıkarmak için hoparlör akımını gerçek zamanlı olarak ölçen ek bir dengeleme devresi kullanır. Manyetik tutuculu kılıflar (örneğin araba tutucularında) güçlü bozulmalar yaratır — kullanımdan sonra manyetometre yeniden kalibrasyona kadar yanlış yön gösterebilir.

Android'de manyetometreye programlı erişim

Android iki sensör sağlar: TYPE_MAGNETIC_FIELD (µT cinsinden kalibre edilmiş veri) ve TYPE_MAGNETIC_FIELD_UNCALIBRATED (bozulma tahmini ile ham veri). Navigasyon uygulamaları için kalibre edilmiş sensörün kullanılması önerilir — sistem, son sekiz şeklindeki harekete dayalı olarak otomatik olarak yerleşik kalibrasyonu uygular.

Kayıt ve işleme

SENSOR_DELAY_NORMAL (200 ms) pusula için yeterlidir, SENSOR_DELAY_FASTEST (0 ms) — yalnızca özel araştırma uygulamaları için. Değerleri aldıktan sonra, getRotationMatrix + getOrientation aracılığıyla azimuta dönüştürebilirsiniz. event.accuracy aracılığıyla sensör doğruluğunu kontrol etmek önemlidir — SENSOR_STATUS_UNRELIABLE kalibrasyon gerektiği anlamına gelir.

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

Mobil uygulamalarda manyetometre kullanımı

Manyetometre yalnızca pusula için kullanılmaz. AR uygulamaları, Pokemon GO dahil, kameranın gerçek dünyaya göre yönünü belirlemek için manyetometreyi kullanır. Manyetometre olmadan, ARCore Screen Axis moduna geçer — yön yalnızca jiroskop tarafından belirlenir, bu da doğruluğu azaltır.

  • Navigasyon — Google Maps, Yandex.Maps, MAPS.ME'de hareket azimutunun belirlenmesi. Pusula doğruluğu rota kalitesini doğrudan etkiler.
  • Metal dedektörleri — metal nesneleri bulma uygulamaları, manyetik alan anomalilerini tespit etmek için manyetometreyi kullanır.
  • Jeofizik ve eğitim — eğitim projeleri için manyetik alan ölçümü. Sensör, okullarda Dünya'nın manyetik alanının incelenmesine olanak tanır.
  • VR ve 360 video — VR başlıklarda kafa yönü, jiroskop sürüklenmesini telafi etmek için manyetometre ile düzeltilir.

Otomotiv navigasyonunda manyetometre

Android Auto tabanlı otomotiv navigasyon sistemlerinde, tünellerde ve yoğun kentsel alanlarda GPS sinyali kaybolduğunda hareket yönünü belirlemek için manyetometre kullanılır. Araba tekerleklerinden odometri verileriyle (OBD-II aracılığıyla elde edilen) birleştirildiğinde, manyetometre 10–20 metre konum doğruluğu ile GPS olmadan 5 dakikaya kadar navigasyona devam etmeyi sağlar. Google Maps Engineering Blog'a (2024) göre, hibrit algoritma kentsel kanyonlarda rota kaybını %40 azaltır.

Navigasyon uygulamalarında manyetometre

Navigasyon uygulamaları, hareket azimutunu belirlemek için manyetometreyi kullanır — kuzey ile kullanıcının mevcut yönü arasındaki açı. Google Maps'te manyetometre verileri, GPS izi ve hareket geçmişi ile birleştirilerek mavi yön oku görüntülenir. GPS sinyali kaybolduğunda (tünellerde, yeraltı geçitlerinde), manyetometre tek yön bilgisi kaynağı olarak kalır.

Manyetometrelerin geleceği

Entegre ASIC'li (Bosch'tan BMM350, 2024) yeni nesil 3 eksenli manyetometreler yalnızca 0.35 mA tüketir ve 200 Hz'e kadar destekler. Mobil cihazlar için kuantum manyetometreleri ve elmasta NV merkezlerinin geliştirilmesi henüz laboratuvar aşamasından çıkmamıştır. 2028 yılına kadar mobil manyetometrelerin doğruluğunun 0.01 µT'ye ulaşması beklenmektedir.

Sıkça sorulan sorular

Telefonda manyetometre nasıl kalibre edilir?

Telefonla havada sekiz şekli çizin — bu, dijital pusulayı kalibre etmek için standart harekettir. Pusula hala yanlış gösteriyorsa, kılıfı kontrol edin: manyetik tutucular ve metal elemanlar güçlü Hard Iron bozulmaları yaratır.

Telefondaki pusula neden yanlış yönü gösteriyor?

Ana nedenler: telefon hoparlörlerinden ve titreşim motorundan manyetik girişim, kılıf değişikliğinden sonra kalibrasyon eksikliği, yakındaki metal nesnelerin etkisi. Betonarme yapılara sahip iç mekanlarda manyetik alan özellikle güçlü bir şekilde bozulur.

Telefonumu metal dedektörü olarak kullanabilir miyim?

Evet, metal dedektörü uygulamaları manyetik alan anomalilerini tespit etmek için yerleşik manyetometreyi kullanır. Ancak algılama derinliği 10–20 cm'yi geçmez ve cihaz metal türlerini ayırt etmez — bu daha çok eğitim aracıdır.

TYPE_MAGNETIC_FIELD ve TYPE_MAGNETIC_FIELD_UNCALIBRATED arasındaki fark nedir?

TYPE_MAGNETIC_FIELD, sistem tarafından uygulanan kalibrasyondan sonra verileri döndürür. TYPE_MAGNETIC_FIELD_UNCALIBRATED, geliştiricinin kendi kalibrasyonunu uygulamasına izin veren bir bias tahmini ile ham değerler sağlar.

Manyetometre verilerinden azimut nasıl alınır?

İvmeölçer ve manyetometre verileriyle SensorManager.getRotationMatrix kullanın, ardından getOrientation — ilk dizi öğesi (azimut) radyan cinsinden olacaktır. Pusulayı görüntülemek için dereceye dönüştürün: Math.toDegrees(azimuth).

Özet

  • Manyetometre — mobil cihazlarda dijital pusula olarak çalışan üç eksenli manyetik alan sensörü.
  • AMR teknolojisi Hall etkisine dayanarak Dünya'nın alanını 0.15 µT/LSB doğrulukla ölçmeyi sağlar.
  • Hard Iron ve Soft Iron — telefon bileşenlerinden kaynaklanan ve sekiz şeklinde kalibrasyon gerektiren manyetik bozulmalar.
  • Android API µT cinsinden verilerle TYPE_MAGNETIC_FIELD ve TYPE_MAGNETIC_FIELD_UNCALIBRATED sağlar.
  • Sensor Fusion doğru (1–3 derece) yönlendirme için manyetometreyi jiroskop ve ivmeölçer ile birleştirir.
  • Uygulamalar arasında navigasyon, AR uygulamaları, metal dedektörleri ve VR'de jiroskop sürüklenme düzeltmesi bulunur.
  • Modern sensörler 1.5×1.5 mm boyutunda 200 Hz'de 0.35 mA'den tüketir.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun