ژیروسکوپ در گوشی‌های هوشمند: چیست، انواع و نحوه کار

نویسنده: IT Sectr منتشر شده: 2026-03-22 زمان مطالعه: 9 دقیقه

ژیروسکوپ حسگری است که سرعت زاویه‌ای چرخش دستگاه را نسبت به سه محور اندازه‌گیری می‌کند. برخلاف شتاب‌سنج که شتاب خطی را ثبت می‌کند، ژیروسکوپ چرخش و جهت‌گیری در فضا را تعیین می‌کند. بر اساس داده‌های STMicroelectronics، 2024، MEMS-ژیروسکوپ‌های مدرن دقتی تا ۰.۰۱ درجه در ثانیه ارائه می‌دهند که امکان استفاده از آن‌ها را در ناوبری، تثبیت تصویر و برنامه‌های AR فراهم می‌کند.

نکات اصلی

  • ژیروسکوپ — حسگر MEMS که سرعت زاویه‌ای را حول سه محور (X، Y، Z) بر حسب درجه در ثانیه اندازه‌گیری می‌کند.
  • فناوری MEMS امکان ساخت ژیروسکوپ‌های مینیاتوری با ابعاد ۲×۲ میلی‌متر و مصرف جریان کمتر از ۵ میلی‌آمپر را فراهم می‌کند.
  • Android Sensor Framework APIهای TYPE_GYROSCOPE و TYPE_GYROSCOPE_UNCALIBRATED را برای دسترسی به داده‌ها ارائه می‌دهد.
  • کالیبراسیون ژیروسکوپ دریفت صفر — خطای اصلی حسگرهای MEMS — را جبران می‌کند.
  • سیستم‌های ۶-محوره (ژیروسکوپ + شتاب‌سنج) در ARKit، ARCore و کنترلرهای بازی استفاده می‌شوند.

ژیروسکوپ در تلفن چیست

ژیروسکوپ در گوشی هوشمند — یک حسگر میکروالکترومکانیکی (MEMS) است که سرعت زاویه‌ای چرخش دستگاه را اندازه‌گیری می‌کند. برخلاف ژیروسکوپ‌های مکانیکی در هوانوردی، MEMS-ژیروسکوپ یک تراشه سیلیکونی با ابعاد ۲×۲×۱ میلی‌متر است که روی برد اصلی تلفن نصب شده است.

انواع ژیروسکوپ در دستگاه‌های موبایل

در گوشی‌های هوشمند مدرن منحصراً از MEMS-ژیروسکوپ‌های ارتعاشی — tuning-fork و ring-design استفاده می‌شود. آن‌ها قطعات چرخان ندارند که دوام تا ۱۰ سال کار مداوم را تضمین می‌کند. تولیدکنندگان پیشرو — Bosch Sensortec (سری BMI)، STMicroelectronics (سری L3G، A3G) و InvenSense (سری ICM).

مشخصات اصلی

یک MEMS-ژیروسکوپ معمولی محدوده اندازه‌گیری از ±۱۲۵ تا ±۲۰۰۰ °/s، فرکانس نمونه‌برداری تا ۳۲ کیلوهرتز و مصرف جریان ۳–۶ میلی‌آمپر دارد. بر اساس داده‌های Bosch Sensortec BMI160 (۲۰۲۳)، سطح نویز در محدوده ±۱۲۵ °/s برابر با ۰.۰۰۷ °/s/√Hz است — این برای ردیابی دقیق چرخش‌ها کافی است.

پارامترمقدار
فناوریMEMS (ارتعاشی)
محدوده±۱۲۵ — ±۲۰۰۰ °/s
مصرف جریان۳–۶ میلی‌آمپر
ابعاد۲×۲×۱ میلی‌متر
نویز۰.۰۰۷ °/s/√Hz

MEMS-ژیروسکوپ چگونه کار می‌کند

اصل کار MEMS-ژیروسکوپ بر اساس اثر کوریولیس است. در داخل تراشه یک جرم سیلیکونی قرار دارد که با فرکانس معینی (۱۵–۳۰ کیلوهرتز) نوسان می‌کند. هنگامی که دستگاه می‌چرخد، نیروی کوریولیس متناسب با سرعت زاویه‌ای بر جرم نوسان‌کننده وارد می‌شود.

ساختار ژیروسکوپ ارتعاشی

عناصر کلیدی MEMS-ژیروسکوپ — الکترودهای محرک که نوسان ایجاد می‌کنند و الکترودهای حساس که انحراف را ثبت می‌کنند. بر اساس تحقیق IEEE «MEMS Gyroscopes for Consumer Electronics» (۲۰۲۳)، ساختار معمولی شامل ۴–۸ ساختار شانه‌ای است که به صورت متقارن در اطراف جرم مرکزی قرار گرفته‌اند.

رابط دیجیتال

ژیروسکوپ‌های مدرن داده‌ها را از طریق گذرگاه I²C یا SPI منتقل می‌کنند. کنترل‌کننده گوشی هوشمند مقادیر سه‌محوره سرعت زاویه‌ای — به ترتیب برای محورهای X (Pitch)، Y (Roll) و Z (Yaw) — دریافت می‌کند. ADC داخلی سیگنال خازنی را به مقادیر دیجیتال با وضوح ۱۶–۲۴ بیت تبدیل می‌کند. فرکانس به‌روزرسانی در حالت بازی به ۴۰۰ هرتز می‌رسد.

تفاوت ژیروسکوپ با شتاب‌سنج

شتاب‌سنج شتاب خطی — تغییر سرعت جسم در امتداد محورها — را اندازه‌گیری می‌کند. ژیروسکوپ چرخش — سرعت تغییر زاویه — را اندازه‌گیری می‌کند. این حسگرها مکمل یکدیگرند: شتاب‌سنج جهت‌گیری نسبت به بردار گرانش را می‌دهد، اما شیب را از حرکت خطی تشخیص نمی‌دهد. ژیروسکوپ چرخش را مستقل از گرانش دنبال می‌کند، اما مستعد دریفت است.

Sensor Fusion — ترکیب داده‌ها

در کاربردهای واقعی از Sensor Fusion — الگوریتمی که داده‌های ژیروسکوپ، شتاب‌سنج و مغناطیس‌سنج را ترکیب می‌کند — استفاده می‌شود. فیلتر ماهونی یا فیلتر مکمل، کواترنیون‌های جهت‌گیری را با دقت تا ۲ درجه در حالت ایستا و ۵ درجه در حالت پویا محاسبه می‌کند. Android حسگر مجازی TYPE_ROTATION_VECTOR را در سطح فریمورک ارائه می‌دهد.

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() انجام می‌شود. داده‌ها بر حسب راد/ثانیه — رادیان بر ثانیه — بازگردانده می‌شوند.

نمونه ثبت ژیروسکوپ

ثبت شنونده ژیروسکوپ نیاز به تعیین تأخیر دارد: SENSOR_DELAY_GAME (۲۰ میلی‌ثانیه) برای بازی‌ها، SENSOR_DELAY_UI (۶۷ میلی‌ثانیه) برای رابط کاربری، SENSOR_DELAY_FASTEST (۰ میلی‌ثانیه) برای حداکثر فرکانس. بدون لغو ثبت در onPause() باتری در ۲–۳ ساعت تخلیه می‌شود.

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 مطابقت دارند. برای به‌دست آوردن زاویه چرخش، باید سرعت زاویه‌ای را بر حسب زمان انتگرال گرفت. در فرکانس ۵۰ هرتز، خطای انتگرال‌گیری حدود ۱ درجه در دقیقه است — این برای بازی‌ها قابل قبول است، اما برای ناوبری بدون تصحیح کافی نیست.

کالیبراسیون و دریفت ژیروسکوپ

دریفت صفر (bias drift) — مشکل اصلی MEMS-ژیروسکوپ‌ها. حتی در حالت سکون، حسگر ممکن است سرعت زاویه‌ای غیرصفر (۰.۱–۲ °/s) نشان دهد. علت — تغییرات دما و تنش‌های مکانیکی در ساختار سیلیکونی. تولیدکنندگان این اثر را در سطح سخت‌افزاری جبران می‌کنند.

  • دریفت دمایی — تغییر افست هنگام گرم شدن تلفن از ۲۵ تا ۶۰ درجه سانتی‌گراد. با مدل دمایی داخلی جبران می‌شود.
  • دریفت بلندمدت — تغییر مشخصات در طول ۱–۳ سال استفاده. نیاز به کالیبراسیون دوره‌ای دارد.
  • نویز قدم زدن تصادفی زاویه‌ای — ARW (Angle Random Walk). انباشت خطا در طول زمان انتگرال‌گیری را مشخص می‌کند.

کالیبراسیون در Android

سیستم Android به طور خودکار ژیروسکوپ را در اولین روشن شدن یا هنگام تغییر دما کالیبره می‌کند. فرآیند کالیبراسیون ۱۰–۳۰ ثانیه طول می‌کشد و نیازی به دخالت کاربر ندارد — کافی است تلفن را روی سطح ثابت قرار دهید. متد calibrate() در همه دستگاه‌ها در دسترس نیست. برای کالیبراسیون اجباری از TYPE_GYROSCOPE_UNCALIBRATED با دریافت bias offset از طریق event.values[3..5] استفاده می‌شود.

kotlin
private fun handleUncalibratedGyro(event: SensorEvent) {
    val rawX = event.values[0]    // راد/ثانیه بدون کالیبراسیون
    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 اپل و ARCore گوگل از ژیروسکوپ به عنوان حسگر اصلی برای ردیابی چرخش سر استفاده می‌کنند. بر اساس Apple ARKit Technical Specification (۲۰۲۴)، ژیروسکوپ همراه با شتاب‌سنج دقت ردیابی تا ۰.۵ درجه را فراهم می‌کند.

  • تثبیت ویدئو — EIS (Electronic Image Stabilisation) از ژیروسکوپ برای جبران لرزش دوربین استفاده می‌کند. الگوریتم فریم را بر اساس سرعت زاویه‌ای تصحیح می‌کند.
  • کنترلرهای بازی — چرخش دستگاه برای کنترل ماشین یا شخصیت. تأخیر از ژیروسکوپ تا صفحه ۲۰–۵۰ میلی‌ثانیه است.
  • ناوبری داخل ساختمان — Pedestrian Dead Reckoning (PDR) داده‌های ژیروسکوپ را برای تعیین جهت حرکت بدون GPS انتگرال می‌گیرد.
  • ردیاب‌های تناسب اندام — شمارش چرخش‌ها و پیچش‌ها در تمرینات. الگوریتم‌های مدرن نوع فعالیت را با دقت ۹۳٪ تعیین می‌کنند.

کاربردهای صنعتی و علمی

فراتر از الکترونیک مصرفی، ژیروسکوپ‌ها در رباتیک و پهپادها استفاده می‌شوند. ربات‌های متحرک مبتنی بر Android Things و ROS (Robot Operating System) از MEMS-ژیروسکوپ‌ها برای تثبیت حرکت و ادومتری استفاده می‌کنند. بر اساس تحقیق IEEE «MEMS IMU in Robotics» (۲۰۲۴)، دقت موقعیت‌یابی ربات متحرک با ژیروسکوپ ۳–۵ برابر بیشتر از ادومتری تنها چرخ‌هاست، به ویژه هنگام حرکت روی سطوح لغزنده. در پهپادهای مصرفی، ژیروسکوپ همراه با فشارسنج ارتفاع پرواز را با دقت ۰.۵ متر در باد تا ۱۰ متر/ثانیه حفظ می‌کند.

ردیابی AR و VR

برای برنامه‌های AR ژیروسکوپ حسگر اصلی تعیین‌کننده موقعیت اشیاء مجازی نسبت به دنیای واقعی است. Google ARCore از ژیروسکوپ برای ردیابی حرکت دستگاه با فرکانس ۱۰۰۰ هرتز (از طریق نمونه‌برداری داخلی، مستقل از فرکانس API) استفاده می‌کند. ARKit اپل به دقت موقعیت‌یابی ۰.۵ درجه در حین حرکت دست می‌یابد که برای قرار دادن مبلمان مجازی یا شخصیت‌های بازی روی صحنه واقعی کافی است.

آینده ژیروسکوپ‌ها

نسل جدید IMUهای ۶-محوره (InvenSense ICM-42688، ۲۰۲۴) ژیروسکوپ و شتاب‌سنج را در یک تراشه با مصرف ۰.۴۵ میلی‌آمپر در حالت کم‌مصرف ترکیب می‌کند. توسعه گرادیومترها و ژیروسکوپ‌های اتمی برای دستگاه‌های موبایل هنوز در مرحله نمونه‌های آزمایشگاهی باقی مانده است. نمونه‌های صنعتی MEMS-ژیروسکوپ با دقت ۰.۰۰۱ °/s تا سال ۲۰۲۸ انتظار می‌رود.

سوالات متداول

چرا در تلفن به ژیروسکوپ نیاز است؟

ژیروسکوپ چرخش و جهت‌گیری دستگاه را در فضا تعیین می‌کند. بدون آن حالت VR, چرخش خودکار صفحه با کج کردن، تثبیت ویدئو و برنامه‌های AR غیرممکن است. تلفن‌های مدرن بدون ژیروسکوپ نمی‌توانند کار کنند.

تفاوت ژیروسکوپ با شتاب‌سنج چیست؟

شتاب‌سنج شتاب خطی (حرکت و شیب نسبت به گرانش) را اندازه‌گیری می‌کند. ژیروسکوپ سرعت زاویه‌ای (چرخش) را اندازه‌گیری می‌کند. شتاب‌سنج چرخش دستگاه را از جابجایی خطی آن تشخیص نمی‌دهد — ژیروسکوپ این مشکل را حل می‌کند.

آیا می‌توان ژیروسکوپ را در تلفن کالیبره کرد؟

در Android از کالیبراسیون خودکار استفاده می‌شود. برای کالیبراسیون دستی برنامه‌هایی مانند «GPS Status & Toolbox» را دانلود کنید — آن‌ها قرار دادن تلفن روی سطح صاف و انجام کالیبراسیون از طریق TYPE_GYROSCOPE_UNCALIBRATED را پیشنهاد می‌دهند.

چرا ژیروسکوپ در حالت سکون مقادیر غیرصفر نشان می‌دهد؟

این دریفت صفر — ویژگی طبیعی حسگرهای MEMS است. حتی ژیروسکوپ‌های گران قیمت در حالت سکون افست ۰.۱–۲ °/s دارند. کالیبراسیون این افست را کم می‌کند. اگر دریفت از ۵ °/s تجاوز کند — حسگر خراب است.

چگونه داده‌های ژیروسکوپ را در Android دریافت کنیم؟

از SensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) استفاده کنید و SensorEventListener را ثبت کنید. داده‌ها بر حسب راد/ثانیه در سه محور می‌رسند. برای بازی‌ها از SENSOR_DELAY_GAME (۲۰ میلی‌ثانیه)، برای پس‌زمینه — SENSOR_DELAY_UI (۶۷ میلی‌ثانیه) استفاده کنید.

خلاصه

  • ژیروسکوپ — حسگر MEMS که سرعت زاویه‌ای چرخش گوشی هوشمند را حول سه محور اندازه‌گیری می‌کند.
  • فناوری MEMS از اثر کوریولیس روی جرم سیلیکونی نوسان‌کننده برای اندازه‌گیری چرخش استفاده می‌کند.
  • ژیروسکوپ و شتاب‌سنج — حسگرهای مکمل: اولی چرخش، دومی شتاب خطی را اندازه‌گیری می‌کند.
  • Android API TYPE_GYROSCOPE و TYPE_GYROSCOPE_UNCALIBRATED را با داده‌ها بر حسب راد/ثانیه ارائه می‌دهد.
  • کالیبراسیون دریفت صفر — خطای اصلی MEMS-ژیروسکوپ‌ها با افست معمولی ۰.۱–۲ °/s — را جبران می‌کند.
  • کاربرد شامل AR/VR، تثبیت ویدئو، کنترلرهای بازی و ناوبری PDR است.
  • IMUهای ۶-محوره مدرن ژیروسکوپ و شتاب‌سنج را در یک تراشه با مصرف از ۰.۴۵ میلی‌آمپر ترکیب می‌کنند.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید