Żyroskop w smartfonach: co to jest, rodzaje i zasada działania

Autor: IT Sectr Opublikowano: 2026-03-22 Czas czytania: 9 min

Żyroskop to czujnik mierzący prędkość kątową obrotu urządzenia względem trzech osi. W przeciwieństwie do akcelerometru, który rejestruje przyspieszenie liniowe, żyroskop określa obrót i orientację w przestrzeni. Według danych STMicroelectronics, 2024, nowoczesne MEMS-żyroskopy zapewniają dokładność do 0,01 stopnia na sekundę, co pozwala na ich wykorzystanie w nawigacji, stabilizacji obrazu i aplikacjach AR.

Najważniejsze

  • Żyroskop — MEMS-czujnik mierzący prędkość kątową wokół trzech osi (X, Y, Z) w stopniach na sekundę.
  • Technologia MEMS umożliwia tworzenie miniaturowych żyroskopów o rozmiarze 2×2 mm z poborem prądu poniżej 5 mA.
  • Android Sensor Framework udostępnia API TYPE_GYROSCOPE i TYPE_GYROSCOPE_UNCALIBRATED do odczytu danych.
  • Kalibracja żyroskopu kompensuje dryf zera — główną niedokładność czujników MEMS.
  • Systemy 6-osiowe (żyroskop + akcelerometr) są używane w ARKit, ARCore i kontrolerach gier.

Co to jest żyroskop w telefonie

Żyroskop w smartfonie to mikroelektromechaniczny czujnik (MEMS), który mierzy prędkość kątową obrotu urządzenia. W przeciwieństwie do mechanicznych żyroskopów w lotnictwie, MEMS-żyroskop to krzemowy chip o rozmiarze 2×2×1 mm zamontowany na płycie głównej telefonu.

Rodzaje żyroskopów w urządzeniach mobilnych

W nowoczesnych smartfonach stosowane są wyłącznie MEMS-żyroskopy typu wibracyjnego — tuning-fork i ring-design. Nie mają one ruchomych części, co zapewnia trwałość do 10 lat ciągłej pracy. Wiodący producenci to Bosch Sensortec (seria BMI), STMicroelectronics (serie L3G, A3G) i InvenSense (seria ICM).

Główne parametry

Typowy MEMS-żyroskop ma zakres pomiarowy od ±125 do ±2000 °/s, częstotliwość próbkowania do 32 kHz i pobór prądu 3–6 mA. Według danych Bosch Sensortec BMI160 (2023), poziom szumu wynosi 0,007 °/s/√Hz przy zakresie ±125 °/s — to wystarcza do dokładnego śledzenia obrotów.

ParametrWartość
TechnologiaMEMS (wibracyjny)
Zakres±125 — ±2000 °/s
Pobór prądu3–6 mA
Rozmiar2×2×1 mm
Szum0,007 °/s/√Hz

Jak działa MEMS-żyroskop

Zasada działania MEMS-żyroskopu opiera się na efekcie Coriolisa. Wewnątrz chipa znajduje się krzemowa masa, która drga z określoną częstotliwością (15–30 kHz). Gdy urządzenie się obraca, na drgającą masę działa siła Coriolisa proporcjonalna do prędkości kątowej.

Budowa żyroskopu wibracyjnego

Kluczowe elementy MEMS-żyroskopu to elektrody napędowe wytwarzające drgania oraz elektrody czujnikowe rejestrujące odchylenie. Według badań „MEMS Gyroscopes for Consumer Electronics” (IEEE, 2023), typowa konstrukcja zawiera 4–8 struktur grzebieniowych rozmieszczonych symetrycznie wokół centralnej masy.

Interfejs cyfrowy

Nowoczesne żyroskopy przesyłają dane przez magistralę I²C lub SPI. Kontroler smartfona otrzymuje trójosiowe wartości prędkości kątowej — odpowiednio dla osi X (Pitch), Y (Roll) i Z (Yaw). Wbudowany ADC przekształca sygnał pojemnościowy na wartości cyfrowe z rozdzielczością 16–24 bitów. Częstotliwość odświeżania w trybie gier sięga 400 Hz.

Różnica między żyroskopem a akcelerometrem

Akcelerometr mierzy przyspieszenie liniowe — zmianę prędkości obiektu wzdłuż osi. Żyroskop mierzy obrót — szybkość zmiany kąta. Te czujniki są komplementarne: akcelerometr podaje orientację względem wektora grawitacji, ale nie odróżnia nachylenia od ruchu liniowego. Żyroskop śledzi obroty niezależnie od grawitacji, ale podlega dryfowi.

Sensor Fusion — łączenie danych

W rzeczywistych zastosowaniach stosuje się Sensor Fusion — algorytm łączący dane z żyroskopu, akcelerometru i magnetometru. Filtr Mahony'ego lub filtr komplementarny oblicza kwaterniony orientacji z dokładnością do 2 stopni w statyce i 5 stopni w dynamice. Android udostępnia wirtualny czujnik TYPE_ROTATION_VECTOR na poziomie frameworka.

kotlin
val rotationVector = sensorManager
    .getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
    
val callback = object : SensorEventListener {
    override fun onSensorChanged(event: SensorEvent) {
        val quat = FloatArray(4)
        SensorManager.getQuaternionFromVector(quat, event.values)
        // quat[0..3] — kwaternion orientacji
    }
}

Praca z żyroskopem przez Android API

Android udostępnia dwa typy czujników żyroskopowych: TYPE_GYROSCOPE (kalibrowany, bez dryfu) i TYPE_GYROSCOPE_UNCALIBRATED (surowe dane z oszacowaniem dryfu). Dostęp do nich odbywa się przez SensorManager.getDefaultSensor(). Dane są zwracane w rad/s — radianach na sekundę.

Przykład rejestracji żyroskopu

Rejestracja słuchacza żyroskopu wymaga podania opóźnienia: SENSOR_DELAY_GAME (20 ms) dla gier, SENSOR_DELAY_UI (67 ms) dla interfejsu, SENSOR_DELAY_FASTEST (0 ms) dla maksymalnej częstotliwości. Bez anulowania rejestracji w onPause() bateria rozładowuje się w 2–3 godziny.

kotlin
class GyroActivity : AppCompatActivity() {
    private lateinit var sensorManager: SensorManager
    private var gyroscope: Sensor? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
        gyroscope = sensorManager.getDefaultSensor(
            Sensor.TYPE_GYROSCOPE
        )
    }

    override fun onResume() {
        super.onResume()
        gyroscope?.let { sensor ->
            sensorManager.registerListener(
                this, sensor, SensorManager.SENSOR_DELAY_GAME
            )
        }
    }
}

Przetwarzanie danych żyroskopu

Surowe dane z event.values[0..2] odpowiadają prędkości kątowej odpowiednio dla X, Y i Z. Aby uzyskać kąt obrotu, należy scałkować prędkość kątową w czasie. Przy częstotliwości 50 Hz błąd całkowania wynosi około 1 stopnia na minutę — jest to akceptowalne dla gier, ale niewystarczające dla nawigacji bez korekty.

Kalibracja i dryf żyroskopu

Dryf zera (bias drift) to główny problem MEMS-żyroskopów. Nawet w stanie spoczynku czujnik może pokazywać niezerową prędkość kątową (0,1–2 °/s). Przyczyną są zmiany temperatury i naprężenia mechaniczne w strukturze krzemowej. Producenci kompensują ten efekt na poziomie sprzętowym.

  • Dryf temperaturowy — zmiana przesunięcia podczas nagrzewania telefonu od 25 do 60 °C. Kompensowany przez wbudowany model temperaturowy.
  • Dryf długoterminowy — zmiana charakterystyki w ciągu 1–3 lat eksploatacji. Wymaga okresowej kalibracji.
  • Szum kątowego błądzenia przypadkowego — ARW (Angle Random Walk). Charakteryzuje narastanie błędu w czasie całkowania.

Kalibracja w Androidzie

System Android automatycznie kalibruje żyroskop przy pierwszym włączeniu lub przy zmianie temperatury. Proces kalibracji trwa 10–30 sekund i nie wymaga udziału użytkownika — wystarczy położyć telefon na nieruchomej powierzchni. Metoda calibrate() nie jest dostępna na wszystkich urządzeniach. Do wymuszonej kalibracji używa się TYPE_GYROSCOPE_UNCALIBRATED z pobraniem bias offset przez event.values[3..5].

kotlin
private fun handleUncalibratedGyro(event: SensorEvent) {
    val rawX = event.values[0]    // rad/s bez kalibracji
    val biasX = event.values[3]     // przesunięcie X
    val calibratedX = rawX - biasX
    
    applyCalibrationToFusion(
        calibratedX,
        event.values[1] - event.values[4],
        event.values[2] - event.values[5]
    )
}

Zastosowanie żyroskopu w aplikacjach mobilnych

Żyroskop jest używany w dziesiątkach scenariuszy — od stabilizacji kamery po gogle VR Google Cardboard. ARKit od Apple i ARCore od Google wykorzystują żyroskop jako główny czujnik do śledzenia obrotu głowy. Według Apple ARKit Technical Specification (2024), żyroskop w parze z akcelerometrem zapewnia dokładność śledzenia do 0,5 stopnia.

  • Stabilizacja wideo — EIS (Electronic Image Stabilisation) używa żyroskopu do kompensacji drgań kamery. Algorytm koryguje klatkę na podstawie prędkości kątowej.
  • Kontrolery gier — obrót urządzenia do sterowania samochodem lub postacią. Opóźnienie od żyroskopu do ekranu wynosi 20–50 ms.
  • Nawigacja wewnątrz budynków — Pedestrian Dead Reckoning (PDR) całkuje dane z żyroskopu w celu określenia kierunku ruchu bez GPS.
  • Trackery fitness — liczenie obrotów i rotacji w ćwiczeniach. Nowoczesne algorytmy określają rodzaj aktywności z dokładnością 93%.

Zastosowania przemysłowe i naukowe

Poza elektroniką konsumencką żyroskopy są używane w robotyce i dronach. Roboty mobilne oparte na Android Things i ROS (Robot Operating System) wykorzystują MEMS-żyroskopy do stabilizacji ruchu i odometrii. Według badań IEEE „MEMS IMU in Robotics” (2024), dokładność pozycjonowania robota mobilnego z żyroskopem jest 3–5 razy wyższa niż z samą odometrią kół, szczególnie przy ruchu po śliskich powierzchniach. W dronach konsumenckich żyroskop w parze z barometrem utrzymuje wysokość lotu z dokładnością 0,5 metra przy wietrze do 10 m/s.

Śledzenie AR i VR

Dla aplikacji AR żyroskop jest głównym czujnikiem określającym położenie wirtualnych obiektów względem rzeczywistego świata. Google ARCore używa żyroskopu do śledzenia ruchu urządzenia z częstotliwością 1000 Hz (poprzez wewnętrzne próbkowanie, niezależnie od częstotliwości API). ARKit od Apple osiąga dokładność pozycjonowania 0,5 stopnia podczas ruchu, co wystarcza do nakładania wirtualnych mebli lub postaci gier na rzeczywistą scenę.

Przyszłość żyroskopów

Nowa generacja 6-osiowych IMU (InvenSense ICM-42688, 2024) łączy żyroskop i akcelerometr w jednym chipie z poborem 0,45 mA w trybie niskiego zużycia energii. Rozwój gradiometrów i atomowych żyroskopów dla urządzeń mobilnych pozostaje na razie na etapie prototypów laboratoryjnych. Przemysłowe próbki MEMS-żyroskopów z dokładnością 0,001 °/s spodziewane są do 2028 roku.

Często zadawane pytania

Po co w telefonie jest żyroskop?

Żyroskop określa obrót i orientację urządzenia w przestrzeni. Bez niego niemożliwe są tryb VR, automatyczne obracanie ekranu przy przechyleniu, stabilizacja wideo i aplikacje AR. Nowoczesne telefony nie mogą działać bez żyroskopu.

Czym różni się żyroskop od akcelerometru?

Akcelerometr mierzy przyspieszenie liniowe (ruch i nachylenie względem grawitacji). Żyroskop mierzy prędkość kątową (obrót). Akcelerometr nie odróżnia obrotu urządzenia od jego liniowego przemieszczenia — żyroskop rozwiązuje ten problem.

Czy można skalibrować żyroskop w telefonie?

W Androidzie stosowana jest automatyczna kalibracja. Do ręcznej kalibracji pobierz aplikacje takie jak „GPS Status & Toolbox“ — proponują one położenie telefonu na płaskiej powierzchni i wykonanie kalibracji przez TYPE_GYROSCOPE_UNCALIBRATED.

Dlaczego żyroskop pokazuje niezerowe wartości w spoczynku?

To dryf zera — naturalna cecha czujników MEMS. Nawet drogie żyroskopy mają przesunięcie 0,1–2 °/s w spoczynku. Kalibracja odejmuje to przesunięcie. Jeśli dryf przekracza 5 °/s — czujnik jest uszkodzony.

Jak uzyskać dane z żyroskopu na Androidzie?

Użyj SensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) i zarejestruj SensorEventListener. Dane przychodzą w rad/s wzdłuż trzech osi. Do gier używaj SENSOR_DELAY_GAME (20 ms), do tła — SENSOR_DELAY_UI (67 ms).

Podsumowanie

  • Żyroskop — MEMS-czujnik mierzący prędkość kątową obrotu smartfona wokół trzech osi.
  • Technologia MEMS wykorzystuje efekt Coriolisa na drgającej krzemowej masie do pomiaru obrotu.
  • Żyroskop i akcelerometr — czujniki komplementarne: pierwszy mierzy obrót, drugi — przyspieszenie liniowe.
  • Android API udostępnia TYPE_GYROSCOPE i TYPE_GYROSCOPE_UNCALIBRATED z danymi w rad/s.
  • Kalibracja kompensuje dryf zera — główną niedokładność MEMS-żyroskopów z typowym przesunięciem 0,1–2 °/s.
  • Zastosowanie obejmuje AR/VR, stabilizację wideo, kontrolery gier i nawigację PDR.
  • Nowoczesne 6-osiowe IMU łączą żyroskop i akcelerometr w jednym chipie z poborem od 0,45 mA.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również