Sensör türleri

Bu bölümde sensör eksenleri, temel sensörler ve kompozit sensörler (aktivite, tutum, kalibre edilmemiş ve etkileşim) açıklanmaktadır.

Sensör eksenleri

Birçok sensörden gelen sensör olayı değerleri, cihaza göre statik olan belirli bir çerçevede ifade edilir.

Mobil cihaz eksenleri

Sensör API'si yalnızca ekranın doğal yönüne bağlıdır (cihazın ekran yönü değiştiğinde eksenler değiştirilmez.

Mobil cihazlar için sensör API'sinin koordinat sistemi

Şekil 1. Sensor API tarafından kullanılan koordinat sistemi (mobil cihaza göre)

Otomotiv eksenleri

Android Automotive uygulamalarında eksenler araç gövdesine göre tanımlanır. Araç referans çerçevesinin başlangıç ​​noktası arka aksın merkezidir. Araç referans çerçevesi şu şekilde yönlendirilir:

  • X ekseni sağa işaret eder ve aracın simetri düzlemine dik olan yatay bir düzlemdedir.
  • Y ekseni ileriyi gösterir ve yatay bir düzlemdedir.
Otomotiv cihazları için sensör API'sinin koordinat sistemi

Şekil 2. Sensor API tarafından kullanılan koordinat sistemi (bir otomotiv cihazına göre)

Araç referans çerçevesi sağ yönlü bir koordinat sistemidir. Bu nedenle Z ekseni yukarıyı gösterir.

Referans çerçevesinin Z ekseni yerçekimine göre hizalanmıştır; bu, X ekseninin ve Y ekseninin her ikisinin de yatay olduğu anlamına gelir. Sonuç olarak Y ekseni her zaman ön akstan geçmeyebilir.

Temel sensörler

Temel sensör türleri, temsil ettikleri fiziksel sensörlere göre adlandırılır. Bu sensörler, verileri tek bir fiziksel sensörden aktarır (diğer sensörlerden veri üreten kompozit sensörlerin aksine). Temel sensör türlerine örnekler şunları içerir:

  • SENSOR_TYPE_ACCELEROMETER
  • SENSOR_TYPE_GYROSCOPE
  • SENSOR_TYPE_MAGNETOMETER

Ancak temel sensörler, temeldeki fiziksel sensörlere eşit değildir ve bunlarla karıştırılmamalıdır. Temel sensörden gelen veriler fiziksel sensörün ham çıktısı değildir çünkü düzeltmeler (önyargı telafisi ve sıcaklık telafisi gibi) uygulanır.

Örneğin, aşağıdaki kullanım durumlarında temel sensörün özellikleri, temeldeki fiziksel sensörün özelliklerinden farklı olabilir:

  • 1 derece/sn'lik bir sapma aralığına sahip olacak şekilde derecelendirilmiş bir jiroskop çipi.
    • Fabrika kalibrasyonu, sıcaklık telafisi ve sapma telafisi uygulandıktan sonra, Android sensörünün gerçek sapması azaltılacaktır; bu, sapmanın 0,01 derece/sn'nin altında olmasının garanti edildiği bir noktaya kadar olabilir.
    • Bu durumda, altta yatan sensörün veri sayfasında 1 derece/sn söylenmesine rağmen Android sensörünün 0,01 derece/sn'nin altında bir önyargıya sahip olduğunu söylüyoruz.
  • 100 uW güç tüketimine sahip bir barometre.
    • Oluşturulan verilerin çipten SoC'ye taşınması gerektiğinden, barometre Android sensöründen veri toplamanın gerçek güç maliyeti çok daha yüksek olabilir, örneğin 1000 uW.
    • Bu durumda barometre çip uçlarında ölçülen güç tüketimi 100uW olmasına rağmen Android sensörün 1000 uW güç tüketimine sahip olduğunu söylüyoruz.
  • Kalibre edildiğinde 100 uW tüketen, ancak kalibre ederken daha fazla tüketen bir manyetometre.
    • Kalibrasyon rutini, jiroskopun etkinleştirilmesini, 5000 uW tüketilmesini ve bazı algoritmaların çalıştırılmasını gerektirebilir ve bu da 900 uW'a daha mal olur.
    • Bu durumda (manyetometre) Android sensörünün maksimum güç tüketiminin 6000 uW olduğunu söylüyoruz.
    • Bu durumda, ortalama güç tüketimi daha kullanışlı bir ölçümdür ve HAL aracılığıyla sensörün statik özelliklerinde rapor edilen de budur.

İvmeölçer

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER) uyanmayan bir sensör döndürür

Bir ivmeölçer sensörü, cihazın üç sensör ekseni boyunca hızlanmasını bildirir. Ölçülen ivme hem fiziksel ivmeyi (hız değişimini) hem de yer çekimini içerir. Ölçüm, Sensor_event_t.acceleration'ın x, y ve z alanlarında raporlanır.

Tüm değerler SI birimleri (m/s^2) cinsindendir ve cihazın ivmesinden üç sensör ekseni boyunca yer çekimi kuvveti çıkarılarak ölçülür.

İşte örnekler:

  • Serbest düşüşte (x, y, z) normu 0'a yakın olmalıdır.
  • Cihaz masa üzerinde düz bir şekilde durup sol tarafı sağa doğru itildiğinde x ivme değeri pozitif olur.
  • Cihaz bir masa üzerinde düz bir şekilde durduğunda z boyunca ivme değeri +9,81'dir; bu da cihazın ivmesi (0 m/s^2) eksi yer çekimi kuvvetine (-9,81 m/s^2) karşılık gelir.
  • Cihaz bir masa üzerinde düz bir şekilde durduğunda ve gökyüzüne doğru itildiğinde, ivme değeri +9,81'den büyüktür; bu, cihazın ivmesi (+A m/s^2) eksi yer çekimi kuvvetine (-9,81 m) karşılık gelir. /s^2).

Okumalar aşağıdakiler kullanılarak kalibre edilir:

  • Sıcaklık telafisi
  • Çevrimiçi önyargı kalibrasyonu
  • Çevrimiçi terazi kalibrasyonu

Akış sırasında değerlerde sıçramalara neden olmamak için sapma ve ölçek kalibrasyonu yalnızca sensör devre dışıyken güncellenmelidir.

İvme ölçer ayrıca, sensors_event_t.acceleration.status aracılığıyla okumalarının ne kadar doğru olmasını beklediğini de bildirir. Bu alanın olası değerleri hakkında daha fazla bilgi için SensorManager SENSOR_STATUS_* sabitlerine bakın.

Ortam sıcaklığı

Raporlama modu: Değişiklik halinde

getDefaultSensor(SENSOR_TYPE_AMBIENT_TEMPERATURE) uyanmayan bir sensör döndürür

Bu sensör ortam (oda) sıcaklığını santigrat derece cinsinden sağlar.

Manyetik alan sensörü

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD) uyanmayan bir sensör döndürür

SENSOR_TYPE_GEOMAGNETIC_FIELD == SENSOR_TYPE_MAGNETIC_FIELD

Bir manyetik alan sensörü (manyetometre olarak da bilinir), üç sensör ekseni boyunca ölçülen ortam manyetik alanını bildirir.

Ölçüm, sensors_event_t.magnetic x, y ve z alanlarında raporlanır ve tüm değerler mikro Tesla (uT) cinsindendir.

Manyetometre ayrıca, sensors_event_t.magnetic.status aracılığıyla okumalarının ne kadar doğru olmasını beklediğini de bildirir. Bu alanın olası değerleri hakkında daha fazla bilgi için SensorManager SENSOR_STATUS_* sabitlerine bakın.

Okumalar aşağıdakiler kullanılarak kalibre edilir:

  • Sıcaklık telafisi
  • Fabrikada (veya çevrimiçi) yumuşak demir kalibrasyonu
  • Çevrimiçi sert demir kalibrasyonu

Jiroskop

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_GYROSCOPE) uyanmayan bir sensör döndürür

Bir jiroskop sensörü, cihazın üç sensör ekseni etrafındaki dönüş hızını bildirir.

Dönme saat yönünün tersine pozitiftir (sağ kural). Yani, orijin üzerinde konumlandırılmış bir cihaza x, y veya z ekseni üzerindeki pozitif bir konumdan bakan bir gözlemci, eğer cihaz saat yönünün tersine dönüyor gibi görünüyorsa, pozitif dönüş rapor edecektir. Bunun, pozitif dönmenin standart matematiksel tanımı olduğunu ve yuvarlanmanın havacılık tanımıyla uyuşmadığını unutmayın.

Ölçüm, sensors_event_t.gyro x, y ve z alanlarında raporlanır ve tüm değerler saniye başına radyan (rad/s) cinsindendir.

Okumalar aşağıdakiler kullanılarak kalibre edilir:

  • Sıcaklık telafisi
  • Fabrika (veya çevrimiçi) terazi telafisi
  • Çevrimiçi önyargı kalibrasyonu (sapmayı ortadan kaldırmak için)

Jiroskop ayrıca, sensors_event_t.gyro.status aracılığıyla okumalarının ne kadar doğru olmasını beklediğini de bildirir. Bu alanın olası değerleri hakkında daha fazla bilgi için SensorManager SENSOR_STATUS_* sabitlerine bakın.

Jiroskop, manyetometrelere ve ivmeölçerlere dayalı olarak taklit edilemez; çünkü bu, yerel tutarlılığın ve duyarlılığın azalmasına neden olur. Her zamanki jiroskop çipine dayanmalıdır.

Kalp atış hızı

Raporlama modu: Değişiklik halinde

getDefaultSensor(SENSOR_TYPE_HEART_RATE) uyanmayan bir sensör döndürür

Kalp atış hızı sensörü, cihaza dokunan kişinin mevcut kalp atış hızını bildirir.

Dakika başına atış (BPM) cinsinden mevcut kalp atış hızı, sensors_event_t.heart_rate.bpm dosyasında rapor edilir ve sensörün durumu, sensors_event_t.heart_rate.status dosyasında raporlanır. Bu alanın olası değerleri hakkında daha fazla bilgi için SensorManager SENSOR_STATUS_* sabitlerine bakın. Özellikle ilk aktivasyonda cihazın gövde üzerinde olmadığı bilinmediği sürece ilk olayın durum alanı SENSOR_STATUS_UNRELIABLE olarak ayarlanmalıdır. Bu sensör açık olduğundan, olaylar yalnızca son olaydan bu yana heart_rate.bpm veya heart_rate.status değiştiğinde oluşturulur. Olaylar her sampling_period hızından daha hızlı üretilmez.

sensor_t.requiredPermission her zaman SENSOR_PERMISSION_BODY_SENSORS şeklindedir.

Işık

Raporlama modu: Değişiklik halinde

getDefaultSensor(SENSOR_TYPE_LIGHT) uyanmayan bir sensör döndürür

Bir ışık sensörü mevcut aydınlatmayı SI lüks birimleri cinsinden bildirir.

Ölçüm, sensors_event_t.light dosyasında raporlanır.

Yakınlık

Raporlama modu: Değişiklik halinde

Genellikle uyandırma sensörü olarak tanımlanır

getDefaultSensor(SENSOR_TYPE_PROXIMITY) bir uyandırma sensörü döndürür

Yakınlık sensörü, sensörden en yakın görünür yüzeye olan mesafeyi bildirir.

Android 4.4'e kadar yakınlık sensörleri her zaman uyandırma sensörleriydi ve yakınlıkta bir değişiklik algılandığında SoC'yi uyandırıyordu. Android 4.4'ten sonra, telefon görüşmeleri yaparken ekranı açıp kapatmak için kullanılan sensör olduğundan, ilk olarak bu sensörün uyandırma sürümünü uygulamanızı öneririz.

Ölçüm, sensors_event_t.distance cinsinden santimetre cinsinden raporlanır. Bazı yakınlık sensörlerinin yalnızca ikili "yakın" veya "uzak" ölçümü desteklediğini unutmayın. Bu durumda sensör, "uzak" durumda kendi sensor_t.maxRange değerini ve "yakın" durumda ise sensor_t.maxRange değerinden daha düşük bir değeri bildirir.

Basınç

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_PRESSURE) uyanmayan bir sensör döndürür

Bir basınç sensörü (barometre olarak da bilinir) atmosferik basıncı hektopaskal (hPa) cinsinden bildirir.

Okumalar kullanılarak kalibre edilir

  • Sıcaklık telafisi
  • Fabrika önyargı kalibrasyonu
  • Fabrika ölçekli kalibrasyon

Barometre genellikle yükseklik değişikliklerini tahmin etmek için kullanılır. Mutlak yüksekliği tahmin etmek için deniz seviyesi basıncı (hava durumuna bağlı olarak değişen) referans olarak kullanılmalıdır.

Bağıl nem

Raporlama modu: Değişiklik halinde

getDefaultSensor(SENSOR_TYPE_RELATIVE_HUMIDITY) uyanmayan bir sensör döndürür

Bağıl nem sensörü, bağıl ortam hava nemini ölçer ve yüzde cinsinden bir değer verir.

Kompozit sensör tipleri

Kompozit sensör, bir veya daha fazla fiziksel sensörden gelen verileri işleyerek ve/veya birleştirerek veri üretir. (Temel sensör olmayan herhangi bir sensöre kompozit sensör denir.) Kompozit sensör örnekleri şunları içerir:

Temel sensörlerde olduğu gibi kompozit sensörlerin özellikleri de nihai verilerinin özelliklerinden gelir. Örneğin, bir oyun döndürme vektörünün güç tüketimi muhtemelen ivmeölçer çipinin, jiroskop çipinin, veriyi işleyen çipin ve veriyi taşıyan otobüslerin güç tüketiminin toplamına eşittir. Başka bir örnek olarak, bir oyun döndürme vektörünün kayması, fiziksel sensör özelliklerine olduğu kadar kalibrasyon algoritmasının kalitesine de bağlıdır.

Aşağıdaki tabloda mevcut kompozit sensör tipleri listelenmektedir. Her kompozit sensör bir veya daha fazla fiziksel sensörden gelen verilere dayanır. Kötü bir kullanıcı deneyimi sağladıklarından, sonuçları yaklaşık olarak tahmin etmek için temeldeki diğer fiziksel sensörleri seçmekten kaçının.

Sensör tipi Kategori Temel fiziksel sensörler Raporlama modu

Oyun döndürme vektörü

Davranış

İvmeölçer, jiroskop, manyetometre KULLANILMAMALIDIR

Sürekli

Jeomanyetik dönme vektörü Düşük güç sensörü

Davranış

İvmeölçer, manyetometre, jiroskop KULLANILMAMALIDIR

Sürekli

Bakış hareketi Düşük güç sensörü

Etkileşim

Tanımsız

Tek atış

Yer çekimi

Davranış

İvmeölçer, jiroskop

Sürekli

Jiroskop kalibre edilmemiş

Kalibre edilmemiş

Jiroskop

Sürekli

Doğrusal ivme

Aktivite

İvmeölçer, jiroskop (varsa) veya manyetometre (jiroskop yoksa)

Sürekli

Manyetik alan kalibre edilmemiş

Kalibre edilmemiş

Manyetometre

Sürekli

Yönlendirme (kullanımdan kaldırıldı)

Davranış

İvmeölçer, manyetometre, jiroskop (varsa)

Sürekli

Alma hareketi Düşük güç sensörü

Etkileşim

Tanımsız

Tek atış

Döndürme vektörü

Davranış

İvmeölçer, manyetometre, jiroskop

Sürekli

Önemli hareket Düşük güç sensörü

Aktivite

İvmeölçer (veya çok düşük güçte olduğu sürece başka bir)

Tek atış

Adım sayacı Düşük güç sensörü

Aktivite

İvmeölçer

Değişim sırasında

Adım dedektörü Düşük güç sensörü

Aktivite

İvmeölçer

Özel

Eğim dedektörü Düşük güç sensörü

Aktivite

İvmeölçer

Özel

Uyandırma hareketi Düşük güç sensörü

Etkileşim

Tanımsız

Tek atış

Düşük güç sensörü = Düşük güç sensörü

Etkinlik kompozit sensörleri

Doğrusal ivme

Temel fiziksel sensörler: İvmeölçer ve (varsa) jiroskop (veya jiroskop yoksa manyetometre)

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_LINEAR_ACCELERATION) uyanmayan bir sensör döndürür

Doğrusal bir hızlanma sensörü, yerçekimi hariç olmak üzere cihazın sensör çerçevesindeki doğrusal hızlanmasını bildirir.

Çıktı kavramsal olarak şu şekildedir: ivmeölçerin çıktısı eksi yerçekimi sensörünün çıktısı. sensors_event_t.acceleration x, y ve z alanlarında m/s^2 cinsinden raporlanır.

Cihaz hareketsizken tüm eksenlerdeki okumalar 0'a yakın olmalıdır.

Cihazda bir jiroskop varsa, doğrusal ivme sensörü jiroskopu ve ivme ölçeri giriş olarak kullanmalıdır.

Cihazda bir jiroskop yoksa doğrusal hızlanma sensörü, giriş olarak ivmeölçer ve manyetometreyi kullanmalıdır.

Önemli hareket

Temel fiziksel sensör: İvmeölçer (veya düşük güçte olduğu sürece başka bir sensör)

Raporlama modu: Tek seferlik

Düşük güç

Bu sensörün yalnızca uyandırma sürümünü uygulayın.

getDefaultSensor(SENSOR_TYPE_SIGNIFICANT_MOTION) bir uyandırma sensörü döndürür

Önemli bir hareket dedektörü, önemli bir hareket algılandığında tetiklenir: kullanıcının konumunda bir değişikliğe yol açabilecek bir hareket.

Bu tür önemli hareketlere örnekler:

  • Yürüyüş veya bisiklete binme
  • Hareket halindeki bir arabada, otobüste veya trende oturmak

Önemli hareketi tetiklemeyen durumlara örnekler:

  • Telefon cebinde ve kişi hareket etmiyor
  • Telefon masanın üzerinde ve yakındaki trafik veya çamaşır makinesi nedeniyle masa biraz sallanıyor

Yüksek seviyede, konum belirlemede güç tüketimini azaltmak için önemli hareket dedektörü kullanılır. Lokalizasyon algoritmaları cihazın statik olduğunu tespit ettiğinde, kullanıcı konum değiştirdiğinde cihazı uyandırmak için önemli hareketlere güvendikleri düşük güç moduna geçebilirler.

Bu sensör düşük güçlü olmalıdır. Güç tüketimi için küçük miktarda yanlış negatifle sonuçlanabilecek bir ödünleşim yapar. Bu birkaç nedenden dolayı yapılır:

  • Bu sensörün amacı güç tasarrufu sağlamaktır.
  • Kullanıcı hareket etmediğinde bir olayın tetiklenmesi (yanlış pozitif), güç açısından maliyetli olduğundan bundan kaçınılmalıdır.
  • Kullanıcı hareket ederken bir olayın tetiklenmemesi (yanlış negatif), tekrar tekrar yapılmadığı sürece kabul edilebilir. Kullanıcı 10 saniyedir yürüyorsa bu 10 saniye içinde bir olayın tetiklenmemesi kabul edilemez.

Her sensör olayı, sensors_event_t.data[0] dosyasında 1 rapor eder.

Adım dedektörü

Temel fiziksel sensör: İvmeölçer (+ düşük güç olduğu sürece muhtemelen diğerleri)

Raporlama modu: Özel (atılan adım başına bir olay)

Düşük güç

getDefaultSensor(SENSOR_TYPE_STEP_DETECTOR) uyanmayan bir sensör döndürür

Adım dedektörü, kullanıcı tarafından her adım atıldığında bir olay üretir.

sensors_event_t.timestamp olayının zaman damgası, ayağın yere çarptığı zamana karşılık gelir ve hızlanmada yüksek bir değişime neden olur.

Adım sayacıyla karşılaştırıldığında adım algılayıcının gecikme süresi daha düşük olmalıdır (iki saniyeden az). Hem adım dedektörü hem de adım sayacı kullanıcının ne zaman yürüdüğünü, koştuğunu ve merdivenlerden yukarı çıktığını algılar. Kullanıcı bisiklet sürerken, araba sürerken veya başka araçlardayken tetiklenmemelidirler.

Bu sensör düşük güçlü olmalıdır. Yani donanımsal olarak adım tespiti yapılamıyorsa bu sensörün tanımlanmaması gerekir. Özellikle adım algılayıcı etkinleştirildiğinde ve ivmeölçer etkinleştirilmediğinde yalnızca adımlar kesintileri tetiklemelidir (her ivmeölçer okuması değil).

sampling_period_ns adım algılayıcılar üzerinde hiçbir etkisi yoktur.

Her sensör olayı, sensors_event_t.data[0] dosyasında 1 rapor eder.

Adım sayacı

Temel fiziksel sensör: İvmeölçer (+ düşük güç olduğu sürece muhtemelen diğerleri)

Raporlama modu: Değişiklik halinde

Düşük güç

getDefaultSensor(SENSOR_TYPE_STEP_COUNTER) uyanmayan bir sensör döndürür

Bir adım sayacı, etkinleştirildiğinde son yeniden başlatmadan bu yana kullanıcının attığı adımların sayısını bildirir.

Ölçüm, sensors_event_t.step_counter dosyasında uint64_t olarak raporlanır ve yalnızca sistem yeniden başlatıldığında sıfıra sıfırlanır.

Olayın zaman damgası, o olay için son adımın atıldığı zamana ayarlanır.

Bir adımın zamanının belirtilmesi için Adım dedektörü sensör tipine bakın.

Adım dedektörüyle karşılaştırıldığında adım sayacının gecikme süresi daha yüksek olabilir (10 saniyeye kadar). Bu gecikme sayesinde bu sensör yüksek bir doğruluğa sahiptir; tüm gün süren ölçümlerden sonraki adım sayısı, gerçek adım sayısının %10'u dahilinde olmalıdır. Hem adım dedektörü hem de adım sayacı kullanıcının ne zaman yürüdüğünü, koştuğunu ve merdivenlerden yukarı çıktığını algılar. Kullanıcı bisiklet sürerken, araba sürerken veya başka araçlardayken tetiklenmemelidirler.

Donanım, dahili adım sayısının asla taşmamasını sağlamalıdır. Donanımın dahili sayacının minimum boyutu 16 bit olacaktır. Olası bir taşma durumunda (en fazla ~2^16 adımda bir), sürücünün karşı bakımı yapabilmesi için SoC uyandırılabilir.

Etkileşim'de belirtildiği gibi, bu sensör çalışırken diğer sensörleri, özellikle de kullanımda olabilecek ivme ölçeri bozmayacaktır.

Belirli bir cihaz bu çalışma modlarını desteklemiyorsa bu sensör tipinin HAL tarafından rapor edilmemesi gerekir. Yani bu sensörün HAL'de "taklit edilmesi" kabul edilemez.

Bu sensör düşük güçlü olmalıdır. Yani donanımda adım tespiti yapılamıyorsa bu sensörün tanımlanmaması gerekir. Özellikle adım sayacı etkinleştirildiğinde ve ivmeölçer etkinleştirilmediğinde, kesintileri yalnızca adımlar tetiklemelidir (ivmeölçer verilerini değil).

Eğim dedektörü

Temel fiziksel sensör: İvmeölçer (+ düşük güç olduğu sürece muhtemelen diğerleri)

Raporlama modu: Özel

Düşük güç

Bu sensörün yalnızca uyandırma sürümünü uygulayın.

getDefaultSensor(SENSOR_TYPE_TILT_DETECTOR) bir uyandırma sensörü döndürür

Bir eğim dedektörü, bir eğim olayının her algılanmasında bir olay üretir.

Bir eğim olayı, aktivasyondan veya sensör tarafından oluşturulan son olaydan bu yana 2 saniyelik pencere ortalama yerçekiminin yönünün en az 35 derece değişmesiyle tanımlanır. İşte algoritma:

  • reference_estimated_gravity = etkinleştirmeden sonraki ilk saniyedeki ivmeölçer ölçümlerinin ortalaması veya son eğim olayı oluşturulduğunda tahmini yerçekimi.
  • current_estimated_gravity = son 2 saniyedeki ivmeölçer ölçümlerinin ortalaması.
  • angle(reference_estimated_gravity, current_estimated_gravity) > 35 degrees olduğunda tetiklenir

Telefonun yöneliminde bir değişiklik olmadan gerçekleşen büyük hızlanmalar bir eğim olayını tetiklememelidir. Örneğin, araba sürerken keskin bir dönüş veya güçlü bir hızlanma, ortalama hızlanma açısı 35 dereceden fazla değişse bile bir eğim olayını tetiklememelidir. Tipik olarak bu sensör yalnızca bir ivmeölçer yardımıyla uygulanır. Güç tüketimini önemli ölçüde artırmıyorlarsa diğer sensörler de kullanılabilir. Bu, SoC'nin askıya alma moduna geçmesine izin vermesi gereken düşük güçlü bir sensördür. Bu sensörü HAL'de taklit etmeyin. Her sensör olayı, sensors_event_t.data[0] dosyasında 1 rapor eder.

Tutum kompozit sensörleri

Döndürme vektörü

Temel fiziksel sensörler: İvmeölçer, manyetometre ve jiroskop

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_ROTATION_VECTOR) uyanmayan bir sensör döndürür

Bir dönüş vektör sensörü, cihazın Doğu-Kuzey-Yukarı koordinat çerçevesine göre yönünü bildirir. Genellikle ivmeölçer, jiroskop ve manyetometre okumalarının entegrasyonuyla elde edilir. Doğu-Kuzey-Yukarı koordinat sistemi doğrudan ortonormal temel olarak tanımlanır; burada:

  • X doğuyu işaret eder ve yere teğettir.
  • Y kuzeyi gösterir ve yere teğettir.
  • Z gökyüzüne doğru yönelir ve yere diktir.

Telefonun yönü, Doğu-Kuzey-Yukarı koordinatlarını telefonun koordinatlarıyla hizalamak için gereken dönüşle temsil edilir. Yani, döndürmeyi dünya çerçevesine (X,Y,Z) uygulamak, onları telefon koordinatlarıyla (x,y,z) hizalayacaktır.

Döndürme, referans (Doğu-Kuzey-Yukarı hizalanmış) cihaz yönünden geçerli cihaz yönüne gitmek için telefonun bir rot_axis ekseni etrafında bir teta açısı kadar döndürülmesi olarak görülebilir. Döndürme, bir birim kuaterniyonun birimsiz dört x, y, z, w bileşeni olarak kodlanır:

  • sensors_event_t.data[0] = rot_axis.x*sin(theta/2)
  • sensors_event_t.data[1] = rot_axis.y*sin(theta/2)
  • sensors_event_t.data[2] = rot_axis.z*sin(theta/2)
  • sensors_event_t.data[3] = cos(theta/2)

Nerede:

  • rot_axis x, y ve z alanları, dönüş eksenini temsil eden birim uzunluk vektörünün Doğu-Kuzey-Yukarı koordinatlarıdır
  • theta dönme açısıdır

Kuaterniyon bir birim kuaterniyondur: Norm 1 olmalıdır. Bunun sağlanamaması, hatalı istemci davranışına neden olacaktır.

Ayrıca bu sensör tahmini bir yön doğruluğunu da bildirir:

sensors_event_t.data[4] = estimated_accuracy (radyan cinsinden)

Yön hatası, zamanın %95'inde estimated_accuracy az olmalıdır. Bu sensör, ana yön değişikliği girişi olarak bir jiroskop kullanmalıdır.

Bu sensör ayrıca jiroskop kaymasını telafi etmek için ivmeölçer ve manyetometre girişini kullanır ve yalnızca ivmeölçer ve manyetometre kullanılarak uygulanamaz.

Oyun döndürme vektörü

Temel fiziksel sensörler: İvmeölçer ve jiroskop (manyetometre yok)

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_GAME_ROTATION_VECTOR) uyanmayan bir sensör döndürür

Oyun rotasyon vektör sensörü, rotasyon vektör sensörüne benzer ancak jeomanyetik alanı kullanmaz. Bu nedenle Y ekseni kuzeyi değil, başka bir referansı gösterir. Bu referansın, jiroskopun Z ekseni etrafında kaymasıyla aynı büyüklükte kaymasına izin verilir.

sensors_event_t.data[0-3] ayarının nasıl yapılacağına ilişkin ayrıntılar için Dönme vektörü sensörüne bakın. Bu sensör tahmini bir yön doğruluğu bildirmez: sensors_event_t.data[4] ayrılmıştır ve 0 olarak ayarlanmalıdır.

İdeal bir durumda, döndürülen ve aynı gerçek dünya yönüne dönen bir telefon, aynı oyun dönüş vektörünü rapor etmelidir.

Bu sensör bir jiroskop ve bir ivmeölçer temeline dayanmalıdır. Jiroskop sapmasının tahmini yoluyla dolaylı olarak manyetometreyi girdi olarak kullanamaz.

Yer çekimi

Temel fiziksel sensörler: İvmeölçer ve (varsa) jiroskop (veya jiroskop yoksa manyetometre)

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_GRAVITY) uyanmayan bir sensör döndürür

Bir yerçekimi sensörü, cihazın koordinatlarındaki yerçekiminin yönünü ve büyüklüğünü bildirir.

Yerçekimi vektörü bileşenleri, sensors_event_t.acceleration x, y ve z alanlarında m/s^2 cinsinden raporlanır.

Cihaz hareketsiz durumdayken yerçekimi sensörünün çıkışı ivmeölçerin çıkışıyla aynı olmalıdır. Dünya'da büyüklüğü 9,8 m/s^2 civarındadır.

Cihazda bir jiroskop varsa, yerçekimi sensörü jiroskopu ve ivme ölçeri giriş olarak kullanmalıdır.

Cihazda bir jiroskop yoksa, yerçekimi sensörü ivmeölçer ve manyetometreyi giriş olarak kullanmalıdır.

Jeomanyetik dönme vektörü

Temel fiziksel sensörler: İvmeölçer ve manyetometre (jiroskop yok)

Raporlama modu: Sürekli

Düşük güç

getDefaultSensor(SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR) uyanmayan bir sensör döndürür

Jeomanyetik dönme vektörü, dönme vektörü sensörüne benzer, ancak bir manyetometre kullanır ve jiroskop kullanmaz.

Bu sensör bir manyetometreye dayalı olmalıdır. Jiroskop kullanılarak uygulanamaz ve jiroskop girişi bu sensör tarafından kullanılamaz.

sensors_event_t.data[0-4] ayarının nasıl yapılacağına ilişkin ayrıntılar için Dönme vektörü sensörüne bakın.

Tıpkı dönüş vektörü sensöründe olduğu gibi, yön hatasının %95 oranında tahmini doğruluktan ( sensors_event_t.data[4] ) daha az olması gerekir.

Bu sensörün düşük güçlü olması gerekir, dolayısıyla donanıma uygulanması gerekir.

Yönlendirme (kullanımdan kaldırıldı)

Temel fiziksel sensörler: İvmeölçer, manyetometre ve (varsa) jiroskop

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_ORIENTATION) uyanmayan bir sensör döndürür

Not: Bu, Android SDK'da kullanımdan kaldırılmış eski bir sensör türüdür. Bunun yerini, daha net bir şekilde tanımlanan dönme vektörü sensörü almıştır. Mümkün olduğunda yön sensörü üzerinde dönüş vektörü sensörünü kullanın.

Bir yönlendirme sensörü cihazın tutumunu bildirir. Ölçümler, sensors_event_t.orientation x, y ve z alanlarında derece cinsinden raporlanır:

  • sensors_event_t.orientation.x : azimut, manyetik kuzey yönü ile Y ekseni arasındaki, Z ekseni etrafındaki açı ( 0<=azimuth<360 ). 0=Kuzey, 90=Doğu, 180=Güney, 270=Batı.
  • sensors_event_t.orientation.y : eğim, X ekseni etrafında dönüş ( -180<=pitch<=180 ), Z ekseni Y eksenine doğru hareket ettiğinde pozitif değerlerle.
  • sensors_event_t.orientation.z : yuvarlanma, Y ekseni etrafında dönüş ( -90<=roll<=90 ), X ekseni Z eksenine doğru hareket ettiğinde pozitif değerlerle.

Tarihsel nedenlerden dolayı dönüş açısının saat yönünde pozitif olduğunu lütfen unutmayın. (Matematiksel olarak saat yönünün tersine pozitif olmalıdır):

Bir cihaza göre yönlendirmenin tasviri

Şekil 3. Bir cihaza göre yönlendirme

Bu tanım, X ekseninin uçağın uzun kenarı boyunca (kuyruktan buruna) olduğu havacılıkta kullanılan sapma, eğim ve yuvarlanma tanımlarından farklıdır.

Oryantasyon sensörü ayrıca, sensors_event_t.orientation.status aracılığıyla okumalarının ne kadar doğru olmasını beklediğini de bildirir. Bu alanın olası değerleri hakkında daha fazla bilgi için SensorManager SENSOR_STATUS_* sabitlerine bakın.

Kalibre edilmemiş sensörler

Kalibre edilmemiş sensörler daha fazla ham sonuç sağlar ve bir miktar sapma içerebilir ancak aynı zamanda kalibrasyon yoluyla uygulanan düzeltmelerden kaynaklanan daha az "sıçrama" içerir. Bazı uygulamalar bu kalibre edilmemiş sonuçları daha sorunsuz ve daha güvenilir olarak tercih edebilir. Örneğin, bir uygulama kendi sensör füzyonunu gerçekleştirmeye çalışıyorsa, kalibrasyonların eklenmesi sonuçları gerçekten bozabilir.

İvmeölçer kalibre edilmemiş

Temel fiziksel sensör: İvmeölçer

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED) uyanmayan bir sensör döndürür

Kalibre edilmemiş bir ivmeölçer sensörü, bir sapma tahminiyle birlikte herhangi bir sapma düzeltmesi olmadan (kalibre edilmemiş ölçümlere fabrika sapması ve sıcaklık telafisi uygulanır) cihazın üç sensör ekseni boyunca hızlanmasını rapor eder. Tüm değerler SI birimleri (m/s^2) cinsindendir ve sensors_event_t.uncalibrated_accelerometer alanlarında raporlanır:

  • x_uncalib : X ekseni boyunca hızlanma (önyargı telafisi olmadan)
  • y_uncalib : Y ekseni boyunca hızlanma (önyargı telafisi olmadan)
  • z_uncalib : Z ekseni boyunca hızlanma (önyargı telafisi olmadan)
  • x_bias : X ekseni boyunca tahmini sapma
  • y_bias : Y ekseni boyunca tahmini sapma
  • z_bias : Z ekseni boyunca tahmini sapma

Jiroskop kalibre edilmemiş

Temel fiziksel sensör: Jiroskop

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_UNCALIBRATED) uyanmayan bir sensör döndürür

Kalibre edilmemiş bir jiroskop, bir önyargı tahminiyle birlikte önyargı telafisi uygulamadan sensör eksenleri etrafındaki dönüş hızını bildirir. Tüm değerler radyan/saniye cinsindendir ve sensors_event_t.uncalibrated_gyro alanlarında raporlanır:

  • x_uncalib : X ekseni etrafındaki açısal hız (sapma telafisi olmadan)
  • y_uncalib : Y ekseni etrafındaki açısal hız (sapma telafisi olmadan)
  • z_uncalib : Z ekseni etrafındaki açısal hız (sapma telafisi olmadan)
  • x_bias : X ekseni etrafında tahmini sapma
  • y_bias : Y ekseni etrafında tahmini sapma
  • z_bias : Z ekseni etrafında tahmini sapma

Kavramsal olarak, kalibre edilmemiş ölçüm, kalibre edilmiş ölçümün ve sapma tahmininin toplamıdır: _uncalibrated = _calibrated + _bias .

x_bias , y_bias ve z_bias değerlerinin sapma tahmini değişir değişmez atlaması beklenir ve geri kalan süre boyunca sabit kalmaları gerekir.

Kullanılan koordinat sistemiyle ilgili ayrıntılar için jiroskop sensörünün tanımına bakın.

Ölçümlere fabrika kalibrasyonu ve sıcaklık telafisi uygulanmalıdır. Ayrıca jiroskop kayma tahmininin x_bias , y_bias ve z_bias cinsinden makul tahminlerin raporlanabilmesi için uygulanması gerekir. Uygulama sapmayı tahmin edemiyorsa bu sensör uygulanmamalıdır.

Bu sensör mevcutsa ilgili Jiroskop sensörünün de mevcut olması ve her iki sensörün de aynı sensor_t.name ve sensor_t.vendor değerlerini paylaşması gerekir.

Manyetik alan kalibre edilmemiş

Temel fiziksel sensör: Manyetometre

Raporlama modu: Sürekli

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED) uyanmayan bir sensör döndürür

Kalibre edilmemiş bir manyetik alan sensörü, ortamın manyetik alanını sert demir kalibrasyon tahminiyle birlikte bildirir. Tüm değerler mikro-Tesla (uT) cinsindendir ve sensors_event_t.uncalibrated_magnetic alanlarında raporlanır:

  • x_uncalib : X ekseni boyunca manyetik alan (sert demir telafisi olmadan)
  • y_uncalib : Y ekseni boyunca manyetik alan (sert demir telafisi olmadan)
  • z_uncalib : Z ekseni boyunca manyetik alan (sert demir telafisi olmadan)
  • x_bias : X ekseni boyunca tahmini sert demir eğilimi
  • y_bias : Y ekseni boyunca tahmini sert demir sapması
  • z_bias : Z ekseni boyunca tahmini sert demir eğilimi

Kavramsal olarak, kalibre edilmemiş ölçüm, kalibre edilmiş ölçümün ve sapma tahmininin toplamıdır: _uncalibrated = _calibrated + _bias .

Kalibre edilmemiş manyetometre, daha yüksek seviyeli algoritmaların kötü sert demir tahminini ele almasına olanak tanır. x_bias , y_bias ve z_bias değerlerinin, sert demir tahmini değişir değişmez atlaması bekleniyor ve geri kalan zamanda sabit kalmaları bekleniyor.

Ölçümlere yumuşak demir kalibrasyonu ve sıcaklık telafisi uygulanmalıdır. Ayrıca, makul tahminlerin x_bias , y_bias ve z_bias raporlanabilmesi için kesin tahminin uygulanması gerekir. Uygulama önyargıyı tahmin edemiyorsa bu sensörün uygulanmaması gerekir.

Bu sensör mevcutsa ilgili manyetik alan sensörünün mevcut olması ve her iki sensörün de aynı sensor_t.name ve sensor_t.vendor değerlerini paylaşması gerekir.

Menteşe açısı

Raporlama modu: Değişiklik halinde

getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE) bir uyandırma sensörü döndürür

Menteşe açısı sensörü, cihazın iki ayrılmaz parçası arasındaki açıyı derece cinsinden ölçer. Bu sensör türüyle ölçülen bir menteşenin hareketinin, örneğin bir ekranı açarak veya ortaya çıkararak kullanıcının cihazla etkileşimde bulunabileceği yolları değiştirmesi beklenir.

Etkileşimli kompozit sensörler

Bazı sensörler çoğunlukla kullanıcıyla olan etkileşimleri tespit etmek için kullanılır. Bu sensörlerin nasıl uygulanması gerektiğini tanımlamıyoruz ancak düşük güçte olmaları gerekiyor ve kullanıcı deneyimi açısından kalitelerini doğrulamak cihaz üreticisinin sorumluluğundadır.

Uyandırma hareketi

Temel fiziksel sensörler: Tanımlanmamış (düşük güçteki herhangi bir şey)

Raporlama modu: Tek seferlik

Düşük güç

Bu sensörün yalnızca uyandırma sürümünü uygulayın.

getDefaultSensor(SENSOR_TYPE_WAKE_GESTURE) bir uyandırma sensörü döndürür

Uyandırma hareketi sensörü, cihazın belirli bir harekete göre uyandırılmasını sağlar. Bu sensör tetiklendiğinde cihaz, güç düğmesine basılmış gibi davranarak ekranı açar. Bu davranış (sensör tetiklendiğinde ekranın açılması) kullanıcı tarafından cihaz ayarlarından devre dışı bırakılabilir. Ayarlardaki değişiklikler sensörün davranışını etkilemez: yalnızca çerçevenin tetiklendiğinde ekranı açıp açmadığı. Algılanacak gerçek hareket belirtilmemiştir ve cihazın üreticisi tarafından seçilebilir.

7/24 etkinleştirilmesi muhtemel olduğu için bu sensör düşük güç olmalıdır.

Her sensör olayı sensors_event_t.data[0] da 1 rapor eder.

Jest al

Altta yatan fiziksel sensörler: tanımsız (düşük güç herhangi bir şey)

Raporlama modu: tek atış

Düşük güç

Bu sensörün sadece uyandırma sürümünü uygulayın.

getDefaultSensor(SENSOR_TYPE_PICK_UP_GESTURE) bir uyandırma sensörü döndürür

Bir pick-up jest sensörü, daha önce olduğu yere bakılmaksızın cihaz alındığında (masa, cep, çanta) tetiklenir.

Her sensör olayı sensors_event_t.data[0] da 1 rapor eder.

Bakış

Altta yatan fiziksel sensörler: tanımsız (düşük güç herhangi bir şey)

Raporlama modu: tek atış

Düşük güç

Bu sensörün sadece uyandırma sürümünü uygulayın.

getDefaultSensor(SENSOR_TYPE_GLANCE_GESTURE) bir uyandırma sensörü döndürür

Bir bakış hareketi sensörü, kullanıcının belirli bir harekete göre ekranda içeriğe bakmasını sağlamak için ekranı kısaca açmayı sağlar. Bu sensör tetiklediğinde, cihaz kullanıcının etkileşimli olmayan bir durumda (Dozing) kilitli kalırken, kullanıcının bildirimlere veya başka içeriğe bakmasına izin vermek için ekranı geçici olarak açacaktır. Bu davranış (bu sensör tetiklediğinde ekranı kısaca açma) cihaz ayarlarında kullanıcı tarafından devre dışı bırakılabilir. Ayarlardaki değişiklikler sensörün davranışını etkilemez: yalnızca çerçevenin tetiklendiğinde ekranı kısaca açıp açmadığı. Tespit edilecek gerçek jest belirtilmez ve cihaz üreticisi tarafından seçilebilir.

7/24 etkinleştirilmesi muhtemel olduğu için bu sensör düşük güç olmalıdır. Her sensör olayı sensors_event_t.data[0] da 1 rapor eder.

Sınırlı Eksenler IMU Sensörleri

Android 13'ten temin edilebilen sınırlı eksen IMU sensörleri, üç eksenin (x, y, z) bulunmadığı kullanım durumlarını destekleyen sensörlerdir. Android'deki standart IMU türleri ( SENSOR_TYPE_ACCELEROMETER ve SENSOR_TYPE_GYROSCOPE gibi) üç eksenin de desteklendiğini varsayar. Bununla birlikte, tüm form faktörleri ve cihazlar 3 eksenli ivmeölçerleri ve 3 eksenli jiroskopları desteklemez.

İvmeölçer sınırlı eksenler

Temel fiziksel sensörler: ivmeölçer

Raporlama modu: sürekli

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES) Uyanık olmayan bir sensör döndürür

Bir ivmeölçer sınırlı eksen sensörü, TYPE_ACCELEROMETER eşdeğerdir, ancak bir veya iki eksenin desteklenmediği durumları destekler.

Sensör tarafından bildirilen son üç sensör olay değeri, x, y ve z eksenleri için ivme değerinin desteklenip desteklenmediğini gösterir. 1.0 değeri eksenin desteklendiğini ve 0 değerinin desteklenmediğini gösterir. Cihaz üreticileri, desteklenen eksenleri oluşturma zamanında tanımlar ve çalışma zamanında değerler değişmez.

Cihaz üreticileri, tanımlanmamış değerlere sahip olmak yerine kullanılmayan eksenler için ivme değerlerini 0 olarak ayarlamalıdır.

Jiroskop Sınırlı Eksenler

Altta yatan fiziksel sensörler: jiroskop

Raporlama modu: sürekli

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES) Uyanık olmayan bir sensör döndürür

Bir Gyroscope Limited eksen sensörü, TYPE_GYROSCOPE eşdeğerdir, ancak bir veya iki eksenin desteklenmediği durumları destekler.

Sensör tarafından bildirilen son üç sensör olay değeri, x, y ve z eksenleri için açısal hız değerinin desteklenip desteklenmediğini gösterir. 1.0 değeri eksenin desteklendiğini ve 0 değerinin desteklenmediğini gösterir. Cihaz üreticileri, desteklenen eksenleri oluşturma zamanında tanımlar ve çalışma zamanında değerler değişmez.

Cihaz üreticileri kullanılmayan eksenler için açısal hız değerlerini 0 olarak ayarlamalıdır.

İvmeölçer sınırlı eksenler kalibre edilmemiş

Temel fiziksel sensörler: ivmeölçer

Raporlama modu: sürekli

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED) Uyanık olmayan bir sensör döndürür

Bir ivmeölçer sınırlı eksenler kalibre edilmemiş sensör, TYPE_ACCELEROMETER_UNCALIBRATED eşdeğerdir, ancak bir veya iki eksenin desteklenmediği durumları destekler.

Sensör tarafından bildirilen son üç sensör olay değeri, X, Y ve Z eksenleri için hızlanma ve önyargı değerlerinin desteklenip desteklenmediğini gösterir. 1.0 değeri eksenin desteklendiğini ve 0 değerinin desteklenmediğini gösterir. Cihaz üreticileri, desteklenen eksenleri oluşturma zamanında tanımlar ve çalışma zamanında değerler değişmez.

Cihaz üreticileri kullanılmayan eksenler için hızlanma ve önyargı değerlerini 0 olarak ayarlamalıdır.

Jiroskop Sınırlı Eksenler Kalibre edilmemiş

Altta yatan fiziksel sensörler: jiroskop

Raporlama modu: sürekli

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED) Uyanık olmayan bir sensör döndürür

Bir jiroskop sınırlı eksenleri kalibre edilmemiş sensör, TYPE_GYROSCOPE_UNCALIBRATED eşdeğerdir, ancak bir veya iki eksenin desteklenmediği durumları destekler.

Sensör tarafından bildirilen son üç sensör olay değeri, X, Y ve Z eksenleri için açısal hız ve sürüklenme değerlerinin desteklenip desteklenmediğini gösterir. 1.0 değeri eksenin desteklendiğini ve 0 değerinin desteklenmediğini gösterir. Cihaz üreticileri, desteklenen eksenleri oluşturma zamanında tanımlar ve çalışma zamanında değerler değişmez.

Cihaz üreticileri kullanılmayan eksenler için açısal hız ve sürüklenme değerlerini 0 olarak ayarlamalıdır.

Kompozit sınırlı eksenler imu

Altta yatan fiziksel sensörler: 3 eksenli ivmeölçer, 3 eksenli jiroskop, 3 eksenli ivmeölçer ve 3 eksenli jiroskopun herhangi bir kombinasyonu.

Raporlama modu: sürekli

Kompozit sınırlı eksen IMU sensörü, sınırlı bir eksen IMU sensörüne eşdeğerdir, ancak HAL'da desteklenmek yerine, 3 eksenli sensör verilerini eşdeğer sınırlı eksen varyantlarına dönüştürür. Bu kompozit sensörler yalnızca otomotiv cihazları için etkindir.

Aşağıdaki tabloda, standart 3 eksenli ivmeölçerden kompozit sınırlı eksen ivmeölçerine örnek bir dönüşüm göstermektedir.

Sensor_type_accelerometre için sensorevent değerleri Örnek Sensor_type_accelerometre Sensorevent Kompozit sensor_type_accelerometre_limited_axes sensorevent
Değerler [0]

-0,065

-0,065

Değerler [1]

0,078

0,078

Değerler [2]

9.808

9.808

Değerler [3]

Yok

1.0

Değerler [4]

Yok

1.0

Değerler [5]

Yok

1.0

Otomotiv sensörleri

Otomotiv kullanım durumlarını destekleyecek sensörler.

Başlık

Altta yatan fiziksel sensörler: GPS, manyetometre, ivmeölçer ve jiroskopun herhangi bir kombinasyonu.

Raporlama modu: sürekli

getDefaultSensor(SENSOR_TYPE_HEADING) uyanık olmayan bir sensör döndürür

Android 13'ten temin edilebilen bir başlık sensörü, cihazın derecelerde gerçek kuzeye göre işaret ettiği yönü ölçer. Başlık sensörü iki SensorEvent değeri içerir. Biri ölçülen cihaz başlığı ve diğeri sağlanan başlık değerinin doğruluğu için.

Bu sensör tarafından bildirilen başlık değerleri 0.0 (dahil) ve 360.0 (özel) arasında olmalıdır, 0 kuzey, 90 doğu, 180 Güney ve 270 Batı'yı göstermelidir.

Bu sensör için doğruluk yüzde 68 güvenle tanımlanır. Altta yatan dağılımın Gauss normal olması durumunda, doğruluk standart bir sapmadır. Örneğin, başlık sensörü 60 derecelik bir başlık değeri ve 10 derecelik bir doğruluk değeri döndürürse, gerçek başlığın 50 derece ve 70 derece arasında yüzde 68 olasılığı vardır.