Bússola em smartphones — essência, princípio de funcionamento e aplicação

Autor: IT Sectr Publicado: 2026-03-25 Tempo de leitura: 8 min

A bússola (compass) em um smartphone é um sensor digital baseado em um magnetômetro que determina a direção para os polos magnéticos da Terra. A tecnologia permite que aplicativos de navegação, cartografia e realidade aumentada determinem com precisão a orientação do dispositivo no espaço. De acordo com STMicroelectronics, 2025, os magnetômetros MEMS modernos fornecem precisão de determinação de direção de até 1–2 graus.

Principais pontos

  • Compass em um smartphone é uma bússola digital baseada em um magnetômetro MEMS que mede o campo magnético da Terra.
  • Magnetômetros modernos usam o efeito Hall ou o efeito magnetorresistivo para determinar a direção do campo magnético.
  • Para o funcionamento preciso da bússola digital é necessária calibração — compensação de campos magnéticos parasitas dos alto-falantes e outros componentes.
  • O magnetômetro do smartphone mede o campo magnético em três eixos (X, Y, Z), permitindo determinar a direção em qualquer orientação do dispositivo.
  • A bússola digital é usada em aplicativos de navegação, realidade aumentada, serviços de geolocalização e programas de astronomia.

O que é uma bússola digital em um smartphone?

A bússola digital em um smartphone é um sensor baseado em um magnetômetro que mede a intensidade do campo magnético da Terra e determina o azimute (ângulo em relação ao norte magnético). Diferente de uma bússola mecânica, a bússola digital usa sistemas microeletromecânicos (MEMS) para detectar o campo magnético. O magnetômetro mede o campo em três eixos, permitindo determinar corretamente a direção em qualquer inclinação do smartphone.

Como o sensor funciona

Um magnetômetro MEMS moderno é um microchip de 2×2×1 mm integrado ao corpo do smartphone junto com um acelerômetro e giroscópio (como parte de uma IMU de 9 eixos). O sensor mede não apenas a direção, mas também a intensidade do campo magnético da Terra (25–65 µT dependendo da latitude). A presença de objetos metálicos e campos magnéticos parasitas dos alto-falantes, motor de vibração e câmera cria distorções, portanto, a correção por software das leituras é necessária para um funcionamento preciso.

As primeiras bússolas digitais em telefones celulares apareceram em 2009 com o lançamento do iPhone 3GS — o primeiro smartphone com magnetômetro integrado. Hoje, os magnetômetros são instalados na grande maioria dos smartphones, incluindo modelos de baixo custo. De acordo com Yole Group, o mercado de magnetômetros MEMS para dispositivos móveis ultrapassa 1,5 bilhão de unidades por ano, confirmando a demanda por esta tecnologia.

Princípio de funcionamento do magnetômetro

O núcleo de um magnetômetro MEMS é um elemento sensor que altera suas características elétricas sob a influência de um campo magnético externo. Smartphones modernos usam o efeito Hall ou o efeito magnetorresistivo (AMR — Anisotropic Magneto-Resistance). O princípio baseia-se no fato de que um material condutor de corrente muda sua resistência quando exposto a um campo magnético, e o vetor do campo magnético é calculado a partir da mudança de tensão.

Efeito Hall e AMR

Sensores de efeito Hall detectam mudanças de tensão nas bordas de uma placa semicondutora causadas pela força de Lorentz nas cargas em movimento. Sensores magnetorresistivos (AMR) usam uma película de permalloy (NiFe) cuja resistência depende da direção do campo magnético. Os sensores AMR fornecem tamanho menor e maior sensibilidade em comparação com sensores Hall, por isso dominam nos smartphones modernos.

TipoSensibilidadeConsumo de energiaTamanho
HallMédiaBaixoMédio
AMRAltaBaixoPequeno
GMRMuito altaMédioPequeno

Os dados do magnetômetro são combinados com as leituras do acelerômetro para corrigir a inclinação e determinar a direção ao norte no plano horizontal. O algoritmo de fusão de sensores usa o filtro Madgwick ou o filtro Kalman para combinar dados do magnetômetro, giroscópio e acelerômetro. Isso fornece um azimute estável e preciso mesmo durante rotações rápidas e tremores do dispositivo.

Tipos de magnetômetros em dispositivos móveis

Na indústria móvel, três tipos principais de magnetômetros MEMS são usados: efeito Hall, magnetorresistivos anisotrópicos (AMR) e magnetorresistivos gigantes (GMR). Os magnetômetros AMR são os mais amplamente utilizados em smartphones devido ao seu equilíbrio ótimo entre sensibilidade, consumo de energia e custo. Os principais fabricantes são AKM (Asahi Kasei Microdevices), STMicroelectronics e Bosch Sensortec.

A sensibilidade de um magnetômetro AMR em um smartphone típico é de 0,3–1 µT com faixa dinâmica de ±1000 µT (±8 Gauss), suficiente para medir com precisão o campo terrestre (30–65 µT) e compensar campos parasitas. A taxa de amostragem do sensor pode atingir 100–200 Hz, mas a maioria dos aplicativos usa 10–50 Hz para economizar energia. A compensação automática de temperatura e deformações do invólucro é implementada no nível do driver do sensor.

Calibração da bússola digital

Calibração da bússola é o processo de compensação dos campos magnéticos parasitas criados pelos componentes do smartphone: alto-falantes, motor de vibração, câmera e bateria. Sem calibração, as leituras do magnetômetro podem desviar-se da direção real em 10–30 graus. O sistema de calibração determina a matriz de deslocamento (hard-iron bias) em três eixos e a aplica para corrigir todas as medições subsequentes.

Algoritmos e métodos de calibração

O método padrão de calibração da bússola é desenhar um “8”: o usuário gira o smartphone em uma trajetória semelhante ao número 8. Durante o movimento, o sensor registra o campo magnético em todas as orientações possíveis, e o algoritmo acumula pontos e aproxima uma esfera com centro deslocado do zero. O raio da esfera corresponde à magnitude do campo magnético terrestre, e o centro representa o vetor de deslocamento parasita. Após a aproximação, o sistema calcula coeficientes de correção para cada eixo.

Os algoritmos de calibração modernos da Qualcomm e MediaTek realizam calibração contínua em segundo plano sem intervenção do usuário. Eles analisam as mudanças do campo magnético durante as rotações do dispositivo e atualizam automaticamente os parâmetros de correção. Se o sensor detectar um novo campo parasita (por exemplo, ao colocar uma capa magnética), o sistema inicia a recalibração em 1–2 segundos de movimento contínuo do dispositivo.

Uso da bússola em aplicativos móveis

A bússola digital é usada em uma ampla gama de aplicativos móveis. O uso principal é em serviços de navegação e cartografia (Google Maps, Yandex.Maps, 2GIS), que determinam a orientação do dispositivo no mapa para exibir corretamente a direção de deslocamento do usuário. Em aplicativos de realidade aumentada (AR), a bússola garante o posicionamento correto de objetos virtuais em relação aos pontos cardeais.

Em aplicativos de astronomia (Star Walk, SkySafari), a bússola combinada com um acelerômetro determina a direção para a qual o smartphone está apontando e mostra a área correspondente do céu noturno. Aplicativos de pesca e turismo usam a bússola para marcar pontos de interesse no mapa com referência ao azimute. O rastreamento de fitness com GPS usa as leituras da bússola para determinar a direção de corrida ou ciclismo, melhorando a precisão da exibição da rota.

Uso da bússola através da Android API

Para acessar a bússola digital no Android, o sensor TYPE_MAGNETIC_FIELD da Sensor API é usado. Os desenvolvedores registram um listener para mudanças nas leituras do magnetômetro e recebem uma matriz de valores de intensidade do campo magnético em três eixos em microteslas. Para determinar o azimute, os dados do magnetômetro são combinados com os dados do acelerômetro através de uma matriz de rotação usando fusão 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())
        // azimute: 0 = norte, 90 = leste, 180 = sul, 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) {}
}

O azimute obtido através de getOrientation é medido em radianos e pode assumir valores de -π a π, onde 0 corresponde ao norte magnético. Para exibição na tela, os valores são convertidos em graus (Math.toDegrees) normalizados para o intervalo 0–360. É importante considerar a declinação magnética — o ângulo entre o norte magnético e o verdadeiro (geográfico), que depende da localização geográfica e muda com o tempo. O Google Maps ajusta automaticamente a declinação através da API GeomagneticField.

Perguntas frequentes

Como funciona uma bússola digital em um smartphone?

A bússola digital usa um magnetômetro MEMS — um chip de 2×2 mm que mede o campo magnético da Terra em três eixos. Os dados do magnetômetro são combinados com as leituras do acelerômetro para determinar o azimute — o ângulo entre a direção ao norte e a orientação do dispositivo.

Por que a bússola no telefone mostra a direção errada?

Leituras incorretas da bússola são mais frequentemente causadas por falta de calibração, interferência magnética dos alto-falantes ou motor de vibração, bem como capas magnéticas. A solução é realizar um movimento de calibração em forma de “8” ou remover acessórios magnéticos. Para erros persistentes, pode ser necessária verificação do sensor.

A bússola precisa de calibração e como fazê-la?

Sim, a calibração da bússola é necessária para compensar os campos magnéticos parasitas dentro do smartphone. Na maioria dos dispositivos modernos, a calibração é realizada automaticamente em segundo plano. Para calibração manual, desenhe um “8” com o smartphone no ar — o sistema coletará dados de todos os ângulos e corrigirá as leituras.

Como acessar a bússola em um aplicativo Android?

No Android, o acesso à bússola é fornecido através da Sensor API com o sensor TYPE_MAGNETIC_FIELD. O azimute é calculado através de SensorManager.getRotationMatrix() e getOrientation(), que combinam dados do magnetômetro e acelerômetro. O azimute resultante pode ser adaptado para exibição na tela.

Quais modelos de smartphone têm a bússola mais precisa?

As bússolas mais precisas estão instaladas em smartphones com sensor IMU triplo (magnetômetro + giroscópio + acelerômetro) e sistema de calibração ativo. Os líderes são os modelos topo de linha Google Pixel, Samsung Galaxy S-series e iPhone Pro — eles usam magnetômetros AKM e Bosch com sensibilidade de 0,3 µT e correção automática.

Resumo

  • Compass (bússola digital) em um smartphone é um magnetômetro MEMS que mede o campo magnético da Terra para determinar o azimute e a orientação do dispositivo.
  • Magnetômetros modernos usam o efeito AMR (magnetorresistência anisotrópica), fornecendo sensibilidade de 0,3 µT e tamanho compacto de 2×2 mm.
  • Leituras precisas da bússola requerem calibração para compensar os campos magnéticos dos alto-falantes, motor de vibração e câmera do smartphone.
  • A direção ao norte é calculada através de fusão de sensores — combinação de dados do magnetômetro com acelerômetro e giroscópio para correção de inclinação.
  • A bússola digital é usada em navegação, cartografia, realidade aumentada, astronomia e rastreamento de fitness para determinar orientação e direção do movimento.
  • No Android, o acesso à bússola é fornecido através de TYPE_MAGNETIC_FIELD com cálculo do azimute via getRotationMatrix e getOrientation.
  • A declinação magnética (ângulo entre o norte magnético e geográfico) é corrigida automaticamente nas APIs de navegação do Google e Apple.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também