Compass en teléfonos inteligentes — esencia, principio de funcionamiento y aplicación

Autor: IT Sectr Publicado: 2026-03-25 Tiempo de lectura: 8 min

La brújula (compass) en un teléfono inteligente es un sensor digital basado en un magnetómetro que determina la dirección hacia los polos magnéticos de la Tierra. La tecnología permite a las aplicaciones de navegación, cartografía y realidad aumentada determinar con precisión la orientación del dispositivo en el espacio. Según STMicroelectronics, 2025, los magnetómetros MEMS modernos proporcionan una precisión de determinación de dirección de hasta 1–2 grados.

Puntos clave

  • Compass en un teléfono inteligente es una brújula digital basada en un magnetómetro MEMS que mide el campo magnético de la Tierra.
  • Los magnetómetros modernos utilizan el efecto Hall o el efecto magnetorresistivo para determinar la dirección del campo magnético.
  • Para un funcionamiento preciso de la brújula digital se requiere calibración — compensación de campos magnéticos parásitos de los altavoces y otros componentes.
  • El magnetómetro del teléfono inteligente mide el campo magnético en tres ejes (X, Y, Z), lo que permite determinar la dirección en cualquier orientación del dispositivo.
  • La brújula digital se utiliza en aplicaciones de navegación, realidad aumentada, servicios de geolocalización y programas de astronomía.

¿Qué es una brújula digital en un teléfono inteligente?

La brújula digital en un teléfono inteligente es un sensor basado en un magnetómetro que mide la intensidad del campo magnético de la Tierra y determina el acimut (ángulo respecto al norte magnético). A diferencia de una brújula mecánica, la brújula digital utiliza sistemas microelectromecánicos (MEMS) para detectar el campo magnético. El magnetómetro mide el campo en tres ejes, lo que permite determinar correctamente la dirección en cualquier inclinación del teléfono.

Cómo funciona el sensor

Un magnetómetro MEMS moderno es un microchip de 2×2×1 mm integrado en el cuerpo del teléfono inteligente junto con un acelerómetro y un giroscopio (como parte de una IMU de 9 ejes). El sensor mide no solo la dirección sino también la intensidad del campo magnético de la Tierra (25–65 µT según la latitud). La presencia de objetos metálicos y campos magnéticos parásitos de los altavoces, el motor de vibración y la cámara crean distorsiones, por lo que se necesita una corrección por software de las lecturas para un funcionamiento preciso.

Las primeras brújulas digitales en teléfonos móviles aparecieron en 2009 con el lanzamiento del iPhone 3GS — el primer teléfono inteligente con magnetómetro integrado. Hoy en día, los magnetómetros se instalan en la gran mayoría de los teléfonos inteligentes, incluidos los modelos económicos. Según Yole Group, el mercado de magnetómetros MEMS para dispositivos móviles supera los 1.500 millones de unidades al año, lo que confirma la demanda de esta tecnología.

Principio de funcionamiento del magnetómetro

El núcleo de un magnetómetro MEMS es un elemento sensor que cambia sus características eléctricas bajo la influencia de un campo magnético externo. Los teléfonos inteligentes modernos utilizan el efecto Hall o el efecto magnetorresistivo (AMR — Anisotropic Magneto-Resistance). El principio se basa en que un material conductor cambia su resistencia cuando se expone a un campo magnético, y el vector del campo magnético se calcula a partir del cambio de voltaje.

Efecto Hall y AMR

Los sensores de efecto Hall detectan cambios de voltaje en los bordes de una placa semiconductora causados por la fuerza de Lorentz sobre las cargas en movimiento. Los sensores magnetorresistivos (AMR) utilizan una película de permalloy (NiFe) cuya resistencia depende de la dirección del campo magnético. Los sensores AMR proporcionan un tamaño menor y una mayor sensibilidad en comparación con los sensores Hall, por lo que dominan en los teléfonos inteligentes modernos.

TipoSensibilidadConsumo de energíaTamaño
HallMediaBajoMedio
AMRAltaBajoPequeño
GMRMuy altaMedioPequeño

Los datos del magnetómetro se combinan con las lecturas del acelerómetro para corregir la inclinación y determinar la dirección al norte en el plano horizontal. El algoritmo de fusión de sensores utiliza el filtro Madgwick o el filtro Kalman para combinar datos del magnetómetro, giroscopio y acelerómetro. Esto proporciona un acimut estable y preciso incluso durante rotaciones rápidas y sacudidas del dispositivo.

Tipos de magnetómetros en dispositivos móviles

En la industria móvil se utilizan tres tipos principales de magnetómetros MEMS: de efecto Hall, magnetorresistivos anisotrópicos (AMR) y magnetorresistivos gigantes (GMR). Los magnetómetros AMR son los más utilizados en teléfonos inteligentes debido a su equilibrio óptimo entre sensibilidad, consumo de energía y costo. Los principales fabricantes son AKM (Asahi Kasei Microdevices), STMicroelectronics y Bosch Sensortec.

La sensibilidad de un magnetómetro AMR en un teléfono inteligente típico es de 0,3–1 µT con un rango dinámico de ±1000 µT (±8 Gauss), suficiente para medir con precisión el campo terrestre (30–65 µT) y compensar campos parásitos. La frecuencia de muestreo del sensor puede alcanzar 100–200 Hz, pero la mayoría de las aplicaciones usan 10–50 Hz para ahorrar energía. La compensación automática de temperatura y deformaciones de la carcasa está implementada a nivel del controlador del sensor.

Calibración de la brújula digital

La calibración de la brújula es el proceso de compensación de los campos magnéticos parásitos creados por los componentes del teléfono inteligente: altavoces, motor de vibración, cámara y batería. Sin calibración, las lecturas del magnetómetro pueden desviarse de la dirección real entre 10 y 30 grados. El sistema de calibración determina la matriz de desplazamiento (hard-iron bias) en tres ejes y la aplica para corregir todas las mediciones posteriores.

Algoritmos y métodos de calibración

El método estándar de calibración de la brújula es dibujar un “8”: el usuario gira el teléfono inteligente siguiendo una trayectoria que recuerda al número 8. Durante el movimiento, el sensor registra el campo magnético en todas las orientaciones posibles, y el algoritmo acumula puntos y aproxima una esfera con centro desplazado respecto al cero. El radio de la esfera corresponde a la magnitud del campo magnético terrestre, y el centro representa el vector de desplazamiento parásito. Después de la aproximación, el sistema calcula coeficientes de corrección para cada eje.

Los algoritmos de calibración modernos de Qualcomm y MediaTek realizan una calibración continua en segundo plano sin intervención del usuario. Analizan los cambios del campo magnético durante las rotaciones del dispositivo y actualizan automáticamente los parámetros de corrección. Si el sensor detecta un nuevo campo parásito (por ejemplo, al colocar una funda magnética), el sistema inicia la recalibración en 1–2 segundos de movimiento continuo del dispositivo.

Uso de la brújula en aplicaciones móviles

La brújula digital se utiliza en una amplia gama de aplicaciones móviles. El uso principal es en servicios de navegación y cartografía (Google Maps, Yandex.Maps, 2GIS), que determinan la orientación del dispositivo en el mapa para mostrar correctamente la dirección de desplazamiento del usuario. En aplicaciones de realidad aumentada (AR), la brújula garantiza la ubicación correcta de objetos virtuales respecto a los puntos cardinales.

En aplicaciones de astronomía (Star Walk, SkySafari), la brújula combinada con un acelerómetro determina la dirección hacia la que apunta el teléfono inteligente y muestra el área correspondiente del cielo nocturno. Las aplicaciones de pesca y turismo utilizan la brújula para marcar puntos de interés en el mapa con referencia al acimut. El seguimiento de actividad física con GPS utiliza las lecturas de la brújula para determinar la dirección de carrera o ciclismo, mejorando la precisión de la visualización de la ruta.

Uso de la brújula a través de Android API

Para acceder a la brújula digital en Android se utiliza el sensor TYPE_MAGNETIC_FIELD de la API de sensores. Los desarrolladores registran un listener de cambios en las lecturas del magnetómetro y reciben un array de valores de intensidad del campo magnético en tres ejes en microteslas. Para determinar el acimut, los datos del magnetómetro se combinan con los datos del acelerómetro a través de una matriz de rotación mediante fusión de sensores.

kotlin
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())
        // acimut: 0 = norte, 90 = este, 180 = sur, 270 = oeste
    }

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

El acimut obtenido a través de getOrientation se mide en radianes y puede tomar valores de -π a π, donde 0 corresponde al norte magnético. Para su visualización en pantalla, los valores se convierten a grados (Math.toDegrees) normalizados al rango 0–360. Es importante tener en cuenta la declinación magnética — el ángulo entre el norte magnético y el verdadero (geográfico), que depende de la ubicación geográfica y cambia con el tiempo. Google Maps ajusta automáticamente la declinación a través de la API GeomagneticField.

Preguntas frecuentes

¿Cómo funciona una brújula digital en un teléfono inteligente?

La brújula digital utiliza un magnetómetro MEMS — un chip de 2×2 mm que mide el campo magnético de la Tierra en tres ejes. Los datos del magnetómetro se combinan con las lecturas del acelerómetro para determinar el acimut — el ángulo entre la dirección al norte y la orientación del dispositivo.

¿Por qué la brújula del teléfono muestra una dirección incorrecta?

Las lecturas incorrectas de la brújula suelen deberse a la falta de calibración, interferencias magnéticas de los altavoces o el motor de vibración, así como a fundas magnéticas. La solución es realizar un movimiento de calibración en forma de “8” o retirar los accesorios magnéticos. Si los errores persisten, puede ser necesario revisar el sensor.

¿La brújula necesita calibración y cómo se hace?

Sí, la calibración de la brújula es necesaria para compensar los campos magnéticos parásitos dentro del teléfono inteligente. En la mayoría de los dispositivos modernos, la calibración se realiza automáticamente en segundo plano. Para la calibración manual, dibuje un “8” con el teléfono en el aire: el sistema recopilará datos desde todos los ángulos y corregirá las lecturas.

¿Cómo acceder a la brújula en una aplicación Android?

En Android, el acceso a la brújula se realiza a través de la API de sensores con el sensor TYPE_MAGNETIC_FIELD. El acimut se calcula mediante SensorManager.getRotationMatrix() y getOrientation(), que combinan datos del magnetómetro y el acelerómetro. El acimut resultante se puede adaptar para su visualización en pantalla.

¿Qué modelos de teléfonos inteligentes tienen la brújula más precisa?

Las brújulas más precisas están instaladas en teléfonos inteligentes con sensor IMU triple (magnetómetro + giroscopio + acelerómetro) y sistema de calibración activo. Líderes son los modelos insignia Google Pixel, Samsung Galaxy S-series y iPhone Pro: utilizan magnetómetros AKM y Bosch con sensibilidad de 0,3 µT y corrección automática.

Resumen

  • Compass (brújula digital) en un teléfono inteligente es un magnetómetro MEMS que mide el campo magnético de la Tierra para determinar el acimut y la orientación del dispositivo.
  • Los magnetómetros modernos utilizan el efecto AMR (magnetorresistencia anisotrópica), proporcionando una sensibilidad de 0,3 µT y un tamaño compacto de 2×2 mm.
  • Las lecturas precisas de la brújula requieren calibración para compensar los campos magnéticos de los altavoces, el motor de vibración y la cámara del teléfono inteligente.
  • La dirección al norte se calcula mediante fusión de sensores — combinación de datos del magnetómetro con el acelerómetro y el giroscopio para corregir la inclinación.
  • La brújula digital se utiliza en navegación, cartografía, realidad aumentada, astronomía y seguimiento de actividad física para determinar la orientación y la dirección del movimiento.
  • En Android, el acceso a la brújula se realiza a través de TYPE_MAGNETIC_FIELD con cálculo del acimut mediante getRotationMatrix y getOrientation.
  • La declinación magnética (ángulo entre el norte magnético y el geográfico) se corrige automáticamente en las API de navegación de Google y Apple.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también