Жироскоп в смартфоните: какво е, видове и принцип на работа

Автор: IT Sectr Публикувано: 2026-03-22 Време за четене: 9 мин

Жироскопът е сензор, който измерва ъгловата скорост на въртене на устройството спрямо три оси. За разлика от акселерометъра, който регистрира линейно ускорение, жироскопът определя въртенето и ориентацията в пространството. Според данни на STMicroelectronics, 2024, съвременните MEMS-жироскопи осигуряват точност до 0,01 градуса в секунда, което позволява използването им в навигация, стабилизиране на изображение и AR приложения.

Основни точки

  • Жироскоп — MEMS-сензор, измерващ ъглова скорост около три оси (X, Y, Z) в градуси в секунда.
  • MEMS технология позволява създаването на миниатюрни жироскопи с размер 2×2 mm и консумация на ток под 5 mA.
  • Android Sensor Framework предоставя API TYPE_GYROSCOPE и TYPE_GYROSCOPE_UNCALIBRATED за достъп до данни.
  • Калибриране на жироскопа компенсира нулевия дрейф — основната грешка на MEMS-сензорите.
  • 6-осови системи (жироскоп + акселерометър) се използват в ARKit, ARCore и игрови контролери.

Какво е жироскоп в телефона

Жироскопът в смартфона е микроелектромеханичен сензор (MEMS), който измерва ъгловата скорост на въртене на устройството. За разлика от механичните жироскопи в авиацията, MEMS-жироскопът е силициев чип с размер 2×2×1 mm, монтиран на дънната платка на телефона.

Видове жироскопи в мобилните устройства

В съвременните смартфони се използват изключително MEMS-жироскопи от вибрационен тип — tuning-fork и ring-design. Те нямат въртящи се части, което осигурява издръжливост до 10 години непрекъсната работа. Водещи производители — Bosch Sensortec (серия BMI), STMicroelectronics (серии L3G, A3G) и InvenSense (серия ICM).

Основни характеристики

Типичният MEMS-жироскоп има обхват на измерване от ±125 до ±2000 °/s, честота на дискретизация до 32 kHz и консумация на ток 3–6 mA. Според данни на Bosch Sensortec BMI160 (2023), нивото на шум е 0,007 °/s/√Hz при обхват ±125 °/s — достатъчно за точно проследяване на завъртания.

ПараметърСтойност
ТехнологияMEMS (вибрационен)
Обхват±125 — ±2000 °/s
Консумация3–6 mA
Размер2×2×1 mm
Шум0,007 °/s/√Hz

Как работи MEMS-жироскопът

Принципът на действие на MEMS-жироскопа се основава на Кориолисовия ефект. Вътре в чипа се намира силициева маса, която осцилира с определена честота (15–30 kHz). Когато устройството се завърти, върху осцилиращата маса действа Кориолисова сила, пропорционална на ъгловата скорост.

Конструкция на вибрационния жироскоп

Ключовите елементи на MEMS-жироскопа са задвижващите електроди, които създават трептения, и чувствителните електроди, които регистрират отклонението. Според изследване „MEMS Gyroscopes for Consumer Electronics“ (IEEE, 2023), типичната конструкция включва 4–8 гребеновидни структури, разположени симетрично около централната маса.

Цифров интерфейс

Съвременните жироскопи предават данни чрез I²C или SPI шина. Контролерът на смартфона получава триосни стойности на ъгловата скорост — съответно за осите X (Pitch), Y (Roll) и Z (Yaw). Вграденият ADC преобразува капацитивния сигнал в цифрови стойности с разделителна способност 16–24 бита. Честотата на опресняване в режим на игра достига 400 Hz.

Разлика между жироскоп и акселерометър

Акселерометърът измерва линейно ускорение — промяна на скоростта на обекта по осите. Жироскопът измерва въртене — скорост на промяна на ъгъла. Тези сензори са комплементарни: акселерометърът дава ориентация спрямо вектора на гравитацията, но не различава наклона от линейното движение. Жироскопът проследява завъртания независимо от гравитацията, но е подложен на дрейф.

Sensor Fusion — обединяване на данни

В реални приложения се използва Sensor Fusion — алгоритъм, който обединява данни от жироскоп, акселерометър и магнитометър. Филтърът на Mahony или комплементарният филтър изчислява кватерниони за ориентация с точност до 2 градуса в статика и 5 градуса в динамика. Android предоставя виртуален сензор TYPE_ROTATION_VECTOR на ниво framework.

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] — кватернион за ориентация
    }
}

Работа с жироскоп чрез Android API

Android предоставя два типа жироскопни сензори: TYPE_GYROSCOPE (калибриран, без дрейф) и TYPE_GYROSCOPE_UNCALIBRATED (сурови данни с оценка на дрейфа). Достъпът до тях става чрез SensorManager.getDefaultSensor(). Данните се връщат в rad/s — радиани в секунда.

Пример за регистрация на жироскоп

Регистрацията на слушател на жироскопа изисква посочване на закъснение: SENSOR_DELAY_GAME (20 ms) за игри, SENSOR_DELAY_UI (67 ms) за интерфейс, SENSOR_DELAY_FASTEST (0 ms) за максимална честота. Без отмяна на регистрацията в onPause() батерията се разрежда за 2–3 часа.

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

Обработка на данни от жироскоп

Суровите данни от event.values[0..2] съответстват на ъглова скорост съответно за X, Y и Z. За да се получи ъгълът на завъртане, трябва да се интегрира ъгловата скорост във времето. При честота 50 Hz грешката на интегриране е около 1 градус в минута — приемливо за игри, но недостатъчно за навигация без корекция.

Калибриране и дрейф на жироскопа

Нулев дрейф (bias drift) — основният проблем на MEMS-жироскопите. Дори в покой сензорът може да показва ненулева ъглова скорост (0,1–2 °/s). Причината са температурни промени и механични напрежения в силициевата структура. Производителите компенсират този ефект на хардуерно ниво.

  • Температурен дрейф — промяна на отместването при нагряване на телефона от 25 до 60 °C. Компенсира се от вграден температурен модел.
  • Дългосрочен дрейф — промяна на характеристиките за 1–3 години експлоатация. Изисква периодично калибриране.
  • Шум на ъглово случайно блуждаене — ARW (Angle Random Walk). Характеризира натрупване на грешка по време на интегриране.

Калибриране в Android

Системата Android автоматично калибрира жироскопа при първо включване или при промяна на температурата. Процесът на калибриране отнема 10–30 секунди и не изисква намеса на потребителя — достатъчно е да поставите телефона на неподвижна повърхност. Методът calibrate() не е наличен на всички устройства. За принудително калибриране се използва TYPE_GYROSCOPE_UNCALIBRATED с получаване на bias offset чрез event.values[3..5].

kotlin
private fun handleUncalibratedGyro(event: SensorEvent) {
    val rawX = event.values[0]    // rad/s без калибриране
    val biasX = event.values[3]     // X отместване
    val calibratedX = rawX - biasX
    
    applyCalibrationToFusion(
        calibratedX,
        event.values[1] - event.values[4],
        event.values[2] - event.values[5]
    )
}

Приложение на жироскопа в мобилни приложения

Жироскопът се използва в десетки сценарии — от стабилизиране на камера до VR очила Google Cardboard. ARKit на Apple и ARCore на Google използват жироскопа като основен сензор за проследяване на завъртането на главата. Според Apple ARKit Technical Specification (2024), жироскопът в комбинация с акселерометър осигурява точност на проследяване до 0,5 градуса.

  • Стабилизиране на видео — EIS (Electronic Image Stabilisation) използва жироскоп за компенсиране на трептенето на камерата. Алгоритъмът коригира кадъра на базата на ъгловата скорост.
  • Игрови контролери — завъртане на устройството за управление на кола или герой. Закъснението от жироскопа до екрана е 20–50 ms.
  • Навигация на закрито — Pedestrian Dead Reckoning (PDR) интегрира данни от жироскоп за определяне на посоката на движение без GPS.
  • Фитнес тракери — броене на завъртания и ротации в упражнения. Съвременните алгоритми определят вида активност с точност 93%.

Промишлени и научни приложения

Извън потребителската електроника, жироскопите се използват в роботиката и дронове. Мобилни роботи, базирани на Android Things и ROS (Robot Operating System), използват MEMS-жироскопи за стабилизиране на движение и одометрия. Според изследване на IEEE „MEMS IMU in Robotics“ (2024), точността на позициониране на мобилен робот с жироскоп е 3–5 пъти по-висока отколкото с одометрия само на колелата, особено при движение по хлъзгави повърхности. В потребителските дронове жироскопът в комбинация с барометър поддържа височина на полета с точност 0,5 метра при вятър до 10 m/s.

AR и VR проследяване

За AR приложения жироскопът е основният сензор, определящ позицията на виртуалните обекти спрямо реалния свят. Google ARCore използва жироскоп за проследяване на движението на устройството с честота 1000 Hz (чрез вътрешна дискретизация, независимо от честотата на API). ARKit на Apple постига точност на позициониране от 0,5 градуса при движение, достатъчна за поставяне на виртуални мебели или игрови герои върху реална сцена.

Бъдеще на жироскопите

Новото поколение 6-осови IMU (InvenSense ICM-42688, 2024) обединява жироскоп и акселерометър в един чип с консумация 0,45 mA в режим на ниска мощност. Развитието на градиометри и атомни жироскопи за мобилни устройства остава на етап лабораторни прототипи. Промишлени образци на MEMS-жироскопи с точност 0,001 °/s се очакват до 2028 г.

Често задавани въпроси

Защо е необходим жироскоп в телефона?

Жироскопът определя завъртането и ориентацията на устройството в пространството. Без него са невъзможни VR режимът, автоматичното завъртане на екрана при накланяне, стабилизирането на видео и AR приложенията. Съвременните телефони не могат да работят без жироскоп.

Каква е разликата между жироскоп и акселерометър?

Акселерометърът измерва линейно ускорение (движение и наклон спрямо гравитацията). Жироскопът измерва ъглова скорост (въртене). Акселерометърът не различава завъртането на устройството от неговото линейно преместване — жироскопът решава този проблем.

Може ли да се калибрира жироскопът в телефона?

В Android се използва автоматично калибриране. За ръчно калибриране изтеглете приложения като „GPS Status & Toolbox“ — те предлагат поставяне на телефона върху равна повърхност и извършване на калибриране чрез TYPE_GYROSCOPE_UNCALIBRATED.

Защо жироскопът показва ненулеви стойности в покой?

Това е нулев дрейф — естествено свойство на MEMS-сензорите. Дори скъпите жироскопи имат отместване от 0,1–2 °/s в покой. Калибрирането изважда това отместване. Ако дрейфът надвишава 5 °/s — сензорът е дефектен.

Как да получа данни от жироскоп на Android?

Използвайте SensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) и регистрирайте SensorEventListener. Данните идват в rad/s по три оси. За игри използвайте SENSOR_DELAY_GAME (20 ms), за фон — SENSOR_DELAY_UI (67 ms).

Резюме

  • Жироскоп — MEMS-сензор, измерващ ъгловата скорост на въртене на смартфона около три оси.
  • MEMS технология използва Кориолисовия ефект върху осцилираща силициева маса за измерване на въртене.
  • Жироскоп и акселерометър — комплементарни сензори: първият измерва въртене, вторият — линейно ускорение.
  • Android API предоставя TYPE_GYROSCOPE и TYPE_GYROSCOPE_UNCALIBRATED с данни в rad/s.
  • Калибрирането компенсира нулевия дрейф — основната грешка на MEMS-жироскопите с типично отместване 0,1–2 °/s.
  • Приложение включва AR/VR, стабилизиране на видео, игрови контролери и PDR навигация.
  • Съвременните 6-осови IMU обединяват жироскоп и акселерометър в един чип с консумация от 0,45 mA.

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също