スマートフォンの磁力計 — その概要、種類、動作原理

著者: IT Sectr 公開日: 2026-03-22 読了時間: 10 分

磁力計は、地球の磁場の強さを測定して方位を決定するセンサーです。モバイル端末ではデジタルコンパスとして機能し、適切なキャリブレーションにより1–2度の精度を提供します。Bosch Sensortec Application Note、2024によると、最新のMEMS磁力計はわずか0.5–2 mAの消費電力で、1.5×1.5×0.7 mmのパッケージに収まります。

重要なポイント

  • 磁力計 — ±1300 µTの範囲で3軸に沿って磁場を測定するホール効果センサー。
  • デジタルコンパスは磁力計に基づいてキャリブレーションが必要 — ない場合、誤差は30–40度に達します。
  • Android APIはSensor.TYPE_MAGNETIC_FIELDを使用してマイクロテスラ(µT)単位のデータにアクセスします。
  • センサーフュージョンは磁力計をジャイロスコープおよび加速度計と組み合わせて正確な方向を提供します。
  • ハードアイアンとソフトアイアン — 電話の金属筐体とスピーカーによって引き起こされる磁気歪みのタイプ。

スマートフォンの磁力計とは

モバイル端末の磁力計は、ホール効果に基づく3軸磁場センサーです。X、Y、Z軸への磁気誘導ベクトルの投影を測定します。加速度計と組み合わせることで、磁力計は方位角 — 北方向と電話の軸との間の角度 — を決定します。

モバイル端末の磁力計の種類

最新のスマートフォンは、異方性磁気抵抗効果(AMR)とホール効果に基づくMEMS磁力計を使用しています。AMRセンサー(Asahi Kasei MicrodevicesのAKMシリーズ)は、0.15 µT/LSBの感度と±1200 µTの範囲を提供し — 地球の磁場(25–65 µT)を測定するのに十分です。

パラメータ
技術AMR / ホール効果
範囲±1200 — ±1300 µT
消費電力0.5–2 mA
サイズ1.5×1.5×0.7 mm
感度0.15 µT/LSB

スマートフォンにとって磁力計が重要な理由

デジタルコンパスがないと、ナビゲーションアプリは移動方向を判断できません。Googleマップは磁力計を使用して、ユーザーの視線方向に対する地図の向きを表示します。センサーが故障すると、アプリは青い方向矢印なしで地図上の位置のみを表示します。

ホール効果センサーの仕組み

ホール効果は、導電性プレートが磁場にさらされたときにその端に電位差が生じる物理現象です。MEMS磁力計は、パーマロイ(NiFe)で作られた薄膜構造を使用し、その抵抗は外部磁場(AMR効果)の影響で変化します。

AMRセンサーの構造

3つのチャンネル(X、Y、Z)のそれぞれは、ホイートストンブリッジに接続された4つの磁気抵抗素子で構成されています。磁場は抵抗値を2–3%変化させ、差動増幅器によって電圧に変換されます。内蔵の16ビットADCは、最大100 Hzの周波数で信号をデジタル化します。

Z軸測定

磁場の垂直成分を測定するために、集積磁気集中器(IMC)が使用されます。これはNiFeの薄膜構造で、水平磁場を垂直面に偏向させ、単一のAMRブリッジが3軸すべてを測定できるようにします。

磁力計とジャイロスコープの違い

磁力計は地球の磁場に対する方向(絶対基準)を決定しますが、ジャイロスコープは角度変化(相対データ)のみを測定します。ジャイロスコープは短い間隔で正確なデータを提供しますが、ドリフト誤差が蓄積されます。磁力計はドリフトしませんが、磁気干渉の影響を受けやすいです。

磁力計によるセンサーフュージョン

AndroidはSensorManager.getRotationMatrixを介して3つのセンサーからのデータを結合します。磁力計は、長い間隔でのジャイロスコープのドリフトを補正するために使用されます。磁力計がない場合、ジャイロスコープは5分で10–20度の誤差を蓄積します。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] — ラジアン単位の方位角

磁気歪み:ハードアイアンとソフトアイアン

ハードアイアン — 電話内部の強磁性材料(スピーカーマグネット、振動モーター、金属フレーム)によって生成される永久磁場。ハードアイアン歪みは、各軸に沿った一定のオフセット(バイアス)として現れます。ソフトアイアン — 磁力線を歪める透磁性材料によって引き起こされる磁場方向の変化。

キャリブレーションアルゴリズム

磁力計の標準的なキャリブレーション手順は、電話を8の字に回転させることです。プロセス中、センサーは3次元空間のポイントを記録します。歪みがない場合、ポイントは半径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
    )
}

ソフトウェアによる歪み補正

開発者は、デバイスの移動中にデータを収集することで、独自の磁力計キャリブレーションを実装できます。楕円体フィッティングアルゴリズムは、球からの偏差の二乗和を最小化することにより、ハードアイアンとソフトアイアンのパラメータを見つけます。Apache Commons Mathライブラリは、このタスクのための非線形最小二乗法(Levenberg-Marquardt)の実装を提供します — ソフトウェアキャリブレーション後の精度は0.5度に達します。

干渉軽減の推奨事項

ハードアイアンを最小限に抑えるために、メーカーは磁力計を電話の上部、スピーカーと振動モーターから離して配置します。AppleのエンジニアはiPhone 16 Pro Max(2024)で磁力計にパーマロイ箔シールドを使用し、スピーカーの影響を4分の1に低減しました。Samsung Galaxy S24 Ultraは、誘導磁場を差し引くためにスピーカー電流をリアルタイムで測定する追加の補償回路を使用しています。磁気マウント付きのケース(車載ホルダーなど)は強い歪みを生み出します — 使用後、磁力計は再キャリブレーションまで誤った方向を示す可能性があります。

Androidでの磁力計へのプログラムアクセス

Androidは2つのセンサーを提供します:TYPE_MAGNETIC_FIELD(µT単位のキャリブレーションデータ)とTYPE_MAGNETIC_FIELD_UNCALIBRATED(歪み推定付きの生データ)。ナビゲーションアプリでは、キャリブレーション済みセンサーを使用することをお勧めします — システムは最後の8の字動作に基づいて自動的に内蔵キャリブレーションを適用します。

登録と処理

SENSOR_DELAY_NORMAL(200 ms)はコンパスに十分であり、SENSOR_DELAY_FASTEST(0 ms)は特殊な研究アプリケーション専用です。値を受信した後、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マップ、Yandex.Maps、MAPS.MEでの移動方位角の決定。コンパスの精度はルートの品質に直接影響します。
  • 金属探知機 — 金属物体を探すアプリは、磁場異常を検出するために磁力計を使用します。
  • 地球物理学と教育 — 教育プロジェクトのための磁場測定。このセンサーにより、学校で地球の磁場を研究できます。
  • VRと360度動画 — VRヘッドセットの頭部方向は、ジャイロスコープのドリフトを補正するために磁力計で補正されます。

自動車ナビゲーションにおける磁力計

Android Autoベースの自動車ナビゲーションシステムでは、トンネルや密集した都市部でGPS信号が失われたときに移動方向を決定するために磁力計が使用されます。車輪からの走行距離データ(OBD-IIを介して取得)と組み合わせることで、磁力計はGPSなしで最大5分間、10–20メートルの位置精度でナビゲーションを継続できます。Google Maps Engineering Blog(2024)によると、ハイブリッドアルゴリズムは都市の谷間でのルート損失を40%削減します。

ナビゲーションアプリにおける磁力計

ナビゲーションアプリは磁力計を使用して移動の方位角を決定します — 北とユーザーの現在の進行方向との間の角度。Googleマップでは、磁力計データがGPSトラックと移動履歴と組み合わされて、青い方向矢印が表示されます。GPS信号が失われた場合(トンネル、地下通路)、磁力計が唯一の方向情報源となります。

磁力計の未来

統合ASICを備えた新しい世代の3軸磁力計(BoschのBMM350、2024)はわずか0.35 mAを消費し、最大200 Hzをサポートします。モバイル端末向けの量子磁力計とダイヤモンド中のNVセンターの開発は、まだ実験室段階を出ていません。2028年までに、モバイル磁力計の精度は0.01 µTに達すると予想されています。

よくある質問

電話で磁力計をキャリブレーションするには?

電話で空中に8の字を描きます — これがデジタルコンパスをキャリブレーションする標準的なジェスチャーです。コンパスがまだ正しく表示されない場合は、ケースを確認してください:磁気マウントと金属要素が強いハードアイアン歪みを生成します。

電話のコンパスが間違った方向を表示するのはなぜ?

主な原因:電話のスピーカーと振動モーターからの磁気干渉、ケース交換後のキャリブレーション不足、近くの金属物体の影響。鉄筋コンクリート構造の屋内では、磁場が特に強く歪められます。

電話を金属探知機として使用できますか?

はい、金属探知機アプリは内蔵磁力計を使用して磁場異常を検出します。ただし、検出深度は10–20 cmを超えず、デバイスは金属の種類を区別しません — どちらかというと教育ツールです。

TYPE_MAGNETIC_FIELDとTYPE_MAGNETIC_FIELD_UNCALIBRATEDの違いは?

TYPE_MAGNETIC_FIELDはシステムによって適用されたキャリブレーション後のデータを返します。TYPE_MAGNETIC_FIELD_UNCALIBRATEDは生の値にバイアス推定値を加えて提供し、開発者が独自のキャリブレーションを適用できるようにします。

磁力計データから方位角を取得するには?

加速度計と磁力計のデータでSensorManager.getRotationMatrixを使用し、次にgetOrientation — 最初の配列要素(方位角)はラジアン単位になります。コンパスを表示するには、度に変換します:Math.toDegrees(azimuth)。

まとめ

  • 磁力計 — モバイル端末でデジタルコンパスとして機能する3軸磁場センサー。
  • AMR技術はホール効果に基づき、0.15 µT/LSBの精度で地球の磁場を測定できます。
  • ハードアイアンとソフトアイアン — 電話部品によって引き起こされる磁気歪みで、8の字キャリブレーションが必要。
  • Android APIはµT単位のデータでTYPE_MAGNETIC_FIELDとTYPE_MAGNETIC_FIELD_UNCALIBRATEDを提供。
  • センサーフュージョンは磁力計をジャイロスコープと加速度計と組み合わせて正確な(1–3度)方向を実現。
  • 応用にはナビゲーション、ARアプリ、金属探知機、VRでのジャイロスコープドリフト補正が含まれます。
  • 最新センサーは1.5×1.5 mmのサイズで200 Hz時に0.35 mAから消費。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください