Jiroskop, bir cihazın üç eksen etrafında dönüşünün açısal hızını ölçen bir sensördür. Doğrusal ivmeyi ölçen ivmeölçerin aksine, jiroskop uzayda dönüş ve yönelimi algılar. STMicroelectronics, 2024’e göre, modern MEMS jiroskoplar saniyede 0,01 dereceye kadar doğruluk elde ederek navigasyon, görüntü sabitleme ve AR uygulamalarında kullanılmalarını sağlar.
Önemli Noktalar
Bir akıllı telefonda jiroskop, cihazın dönüşünün açısal hızını ölçen bir mikroelektromekanik sensördür (MEMS). Havacılıkta kullanılan mekanik jiroskopların aksine, MEMS jiroskop, telefonun anakartına monte edilmiş 2×2×1 mm boyutunda bir silikon çiptir.
Modern akıllı telefonlar yalnızca titreşimli tipteki MEMS jiroskopları kullanır — tuning-fork ve ring-design. Dönen parçaları yoktur ve 10 yıla kadar sürekli çalışma dayanıklılığı sağlarlar. Önde gelen üreticiler Bosch Sensortec (BMI serisi), STMicroelectronics (L3G, A3G serisi) ve InvenSense (ICM serisi)’dir.
Tipik bir MEMS jiroskop, ±125 ila ±2000 °/s arası ölçüm aralığına, 32 kHz’e kadar örnekleme hızına ve 3–6 mA akım tüketimine sahiptir. Bosch Sensortec BMI160’a (2023) göre, ±125 °/s aralığında gürültü seviyesi 0,007 °/s/√Hz’dir — hassas dönüş takibi için yeterlidir.
| Parametre | Değer |
|---|---|
| Teknoloji | MEMS (titreşimli) |
| Aralık | ±125 — ±2000 °/s |
| Güç tüketimi | 3–6 mA |
| Boyut | 2×2×1 mm |
| Gürültü | 0,007 °/s/√Hz |
MEMS jiroskopun çalışma prensibi Coriolis etkisine dayanır. Çipin içinde belirli bir frekansta (15–30 kHz) titreşen bir silikon kütle bulunur. Cihaz döndüğünde, Coriolis kuvveti titreşen kütleye etki eder ve bu açısal hızla orantılıdır.
MEMS jiroskopun temel elemanları, titreşimleri oluşturan tahrik elektrotları ve yer değiştirmeyi algılayan sensör elektrotlarıdır. “MEMS Gyroscopes for Consumer Electronics” (IEEE, 2023) araştırma makalesine göre, tipik bir tasarım merkezi kütlenin etrafına simetrik olarak yerleştirilmiş 4–8 tarak yapısı içerir.
Modern jiroskoplar verileri I²C veya SPI veri yolları üzerinden iletir. Akıllı telefon denetleyicisi, üç eksenli açısal hız değerlerini alır — X (Pitch), Y (Roll) ve Z (Yaw). Dahili ADC, kapasitif sinyali 16–24 bit çözünürlükte dijital değerlere dönüştürür. Oyun modunda güncelleme hızı 400 Hz’e ulaşır.
İvmeölçer doğrusal ivmeyi — bir nesnenin eksenler boyunca hız değişimini — ölçer. Jiroskop dönüşü — açının değişim hızını — ölçer. Bu sensörler tamamlayıcıdır: ivmeölçer, yerçekimi vektörüne göre yönelim sağlar ancak eğimi doğrusal hareketten ayırt edemez. Jiroskop, yerçekiminden bağımsız olarak dönüşleri izler ancak kaymaya (drift) maruz kalır.
Gerçek uygulamalarda Sensor Fusion kullanılır — jiroskop, ivmeölçer ve manyetometreden gelen verileri birleştiren bir algoritma. Mahony filtresi veya tamamlayıcı filtre, statik koşullarda 2 derece, dinamik koşullarda 5 derece doğrulukla yönelim kuaterniyonları hesaplar. Android, çerçeve düzeyinde TYPE_ROTATION_VECTOR sanal sensörünü sağlar.
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] — yönelim kuaterniyonu
}
}
Android iki tip jiroskop sensörü sunar: TYPE_GYROSCOPE (kalibre edilmiş, kaymasız) ve TYPE_GYROSCOPE_UNCALIBRATED (kayma tahminiyle ham veri). Bunlara SensorManager.getDefaultSensor() üzerinden erişilir. Veriler rad/s — saniyede radyan — cinsinden döndürülür.
Jiroskop için dinleyici kaydı bir gecikme belirtilmesini gerektirir: oyunlar için SENSOR_DELAY_GAME (20 ms), arayüz için SENSOR_DELAY_UI (67 ms), maksimum frekans için SENSOR_DELAY_FASTEST (0 ms). onPause() içinde kaydı iptal etmezseniz pil 2–3 saatte biter.
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]’den gelen ham veriler X, Y ve Z’deki açısal hıza karşılık gelir. Dönüş açısını elde etmek için açısal hızın zaman içinde entegre edilmesi gerekir. 50 Hz’de entegrasyon hatası dakikada yaklaşık 1 derecedir — oyunlar için kabul edilebilir ancak düzeltme olmadan navigasyon için yetersizdir.
Sıfır kayması (bias drift), MEMS jiroskopların ana sorunudur. Durağan haldeyken bile sensör sıfır olmayan açısal hız (0,1–2 °/s) gösterebilir. Bunun nedeni silikon yapıdaki sıcaklık değişimleri ve mekanik gerilmelerdir. Üreticiler bu etkiyi donanım düzeyinde telafi eder.
Android sistemi, jiroskopu ilk açılışta veya sıcaklık değiştiğinde otomatik olarak kalibre eder. Kalibrasyon işlemi 10–30 saniye sürer ve kullanıcının herhangi bir müdahalesini gerektirmez — telefonu sabit bir yüzeye koymanız yeterlidir. calibrate() yöntemi tüm cihazlarda mevcut değildir. Zorlamalı kalibrasyon için TYPE_GYROSCOPE_UNCALIBRATED kullanılarak event.values[3..5] aracılığıyla bias ofseti elde edilir.
private fun handleUncalibratedGyro(event: SensorEvent) {
val rawX = event.values[0] // kalibre edilmemiş rad/s
val biasX = event.values[3] // X ekseni ofseti
val calibratedX = rawX - biasX
applyCalibrationToFusion(
calibratedX,
event.values[1] - event.values[4],
event.values[2] - event.values[5]
)
}
Jiroskop, kamera sabitlemeden Google Cardboard gibi VR başlıklarına kadar onlarca senaryoda kullanılır. Apple’ın ARKit’i ve Google’ın ARCore’u, baş dönüşü takibi için birincil sensör olarak jiroskopu kullanır. Apple ARKit Teknik Şartnamesine (2024) göre, ivmeölçerle eşleştirilmiş jiroskop 0,5 dereceye kadar takip doğruluğu sağlar.
Tüketici elektroniğinin ötesinde, jiroskoplar robotik ve İHA’larda kullanılır. Android Things ve ROS (Robot İşletim Sistemi) tabanlı mobil robotlar, hareket sabitleme ve odometri için MEMS jiroskopları kullanır. IEEE çalışması “MEMS IMU in Robotics” (2024)’e göre, jiroskoplu bir mobil robotun konumlandırma doğruluğu, özellikle kaygan yüzeylerde, yalnızca tekerlek odometrisine göre 3–5 kat daha yüksektir. Tüketici sınıfı dronlarda, barometreyle eşleştirilmiş jiroskop, 10 m/s’ye kadar rüzgârda 0,5 metre doğrulukla uçuş yüksekliğini korur.
AR uygulamaları için jiroskop, sanal nesnelerin gerçek dünyaya göre konumunu belirleyen birincil sensördür. Google ARCore, cihaz hareket takibi için jiroskopu 1000 Hz’de (API hızından bağımsız iç örnekleme yoluyla) kullanır. Apple’ın ARKit’i, hareket sırasında 0,5 derece konumlandırma doğruluğuna ulaşır ve bu, gerçek sahneye sanal mobilya veya oyun karakterleri yerleştirmek için yeterlidir.
Yeni nesil 6 eksenli IMU’lar (InvenSense ICM-42688, 2024), düşük güç modunda 0,45 mA güç tüketimiyle tek bir çipte jiroskop ve ivmeölçeri birleştirir. Mobil cihazlar için gradyometre ve atomik jiroskop geliştirilmesi hâlâ laboratuvar prototipi aşamasındadır. 0,001 °/s doğrulukta ticari kalitede MEMS jiroskopların 2028 yılına kadar piyasaya çıkması beklenmektedir.
Sıkça Sorulan Sorular
Jiroskop, cihazın uzayda dönüşünü ve yönelimini algılar. Onsuz, VR modu, eğime göre otomatik döndürme, video sabitleme ve AR uygulamaları imkânsız olurdu. Modern telefonlar jiroskop olmadan çalışamaz.
İvmeölçer doğrusal ivmeyi (yerçekimine göre hareket ve eğim) ölçer. Jiroskop açısal hızı (dönüş) ölçer. İvmeölçer, cihazın dönüşünü doğrusal hareketinden ayırt edemez — jiroskop bu sorunu çözer.
Android otomatik kalibrasyon kullanır. Manuel kalibrasyon için “GPS Status & Toolbox” gibi uygulamaları indirin — telefonu düz bir yüzeye koymanızı ve TYPE_GYROSCOPE_UNCALIBRATED üzerinden kalibre etmenizi sağlarlar.
Bu sıfır kaymasıdır (drift) — MEMS sensörlerinin doğal bir özelliği. Pahalı jiroskoplarda bile durağan halde 0,1–2 °/s ofset bulunur. Kalibrasyon bu ofseti çıkarır. Kayma 5 °/s’yi aşarsa sensör arızalıdır.
SensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) kullanın ve bir SensorEventListener kaydedin. Veriler üç eksende rad/s olarak gelir. Oyunlar için SENSOR_DELAY_GAME (20 ms); arka plan için SENSOR_DELAY_UI (67 ms) kullanın.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun