Sensör

Algılayıcılar, uygulamanızın bir cihazla çevresindeki fiziksel dünya arasındaki ilişkiyi bilmesini sağlar. Algılayıcılar uygulamanıza cihazın yönünü, yönünü ve hareketini söyleyebilir. Bu algılayıcılar, ekrandaki karakterleri düzenlemek için cihazın hareketini kullanmak veya bir kokpitte olmanın simülasyonunu yapmak ve cihazı direksiyon simidi olarak kullanmak gibi benzersiz bir giriş biçimi sağlayarak oyununuzu, artırılmış gerçeklik uygulamanızı veya yardımcı uygulamanızı daha kullanışlı ve etkileşimli hale getirmenize yardımcı olabilir.

Genel bir kural olarak, uygulamanızın yalnızca algılayıcılara mı bağımlı olacağını yoksa sensörlerin yalnızca ek bir kontrol mekanizması sunup sunmayacağına en baştan karar verin. Örneğin, bir cihazı sanal direksiyon simidi olarak kullanan bir sürüş oyunu alternatif olarak ekran GUI'siyle kontrol edilebilir- bu şekilde uygulama, sistemdeki algılayıcılardan bağımsız olarak çalışır. Öte yandan, mermer eğme labirenti yalnızca uygun algılayıcılara sahip sistemler üzerinde çalışacak şekilde kodlanabilir. Sensörlere tam olarak güvenip güvenmemek için stratejik bir seçim yapmalısınız. Fare/dokunmatik kontrol şemasının, daha fazla kontrol uğruna sürükleyicilikten ödün verdiğini unutmayın.

Başlık Description
Algılayıcıları ayarlama Manyetometreye (pusula, eğim ölçer ve yönlendirme sensörü) dayanan bir cihazdaki algılayıcılar, çevresel faktörler nedeniyle kalibrasyona ihtiyaç duymaktadır. MagnetometerAccuracy numaralandırması, cihazınızın kalibrasyona ihtiyacı olduğunda bir eylem seyrinin belirlenmesine yardımcı olabilir.
Algılayıcı yönü OrientationSensor sınıflarındaki algılayıcı verileri, başvuru eksenleri tarafından tanımlanır. Bu eksenler cihazın yatay yönlendirmesiyle tanımlanır ve kullanıcı döndürdükçe cihazla birlikte döndürülür.
Ivmeölçer kullanma Kullanıcı hareketine yanıt vermek için ivmeölçer kullanmayı öğrenin.
Pusulayı kullanma Geçerli başlığı belirlemek için pusulayı kullanmayı öğrenin.
Jirometreyi kullanma Kullanıcı hareketindeki değişiklikleri algılamak için jirometreyi kullanmayı öğrenin.
İnklinometreyi kullanma Eğim ölçeri kullanarak yunuslama, yalpa ve sapmayı nasıl belirleyeceğinizi öğrenin.
Işık sensörünü kullanma Aydınlatmadaki değişiklikleri algılamak için ortam ışığı algılayıcısını kullanmayı öğrenin.
Yönlendirme algılayıcısını kullanma Cihaz yönlendirmesini belirlemek için yönlendirme algılayıcılarını kullanmayı öğrenin.

Sensör toplu işleme

Bazı algılayıcılar toplu işlem kavramını destekler. Bu, mevcut sensöre bağlı olarak değişir. Bir algılayıcı toplu işlem gerçekleştirdiğinde, belirli bir zaman aralığı boyunca birkaç veri noktası toplar ve ardından bu verilerin tümünü bir kerede aktarır. Bu, algılayıcının bir okuma gerçekleştirir gerçekleştirmez bulguları bildirdiği normal davranıştan farklıdır. Verilerin nasıl toplandığını ve ardından ilk olarak normal teslimatla ve ardından toplu teslimle nasıl teslim yapıldığını gösteren aşağıdaki diyagramı göz önünde bulundurun.

Sensör toplu toplama

Sensör toplu işleminin birincil avantajı pil ömrünü uzatmaktır. Veriler hemen gönderilmediğinde, işlemci gücünden tasarruf eder ve verilerin hemen işlenmesini önler. Sistemin parçaları ihtiyaç duyulana kadar uyuyabilir ve bu da önemli bir güç tasarrufu sağlar.

Gecikme süresini ayarlayarak algılayıcının toplu iş gönderme sıklıklarını etkileyebilirsiniz. Örneğin, Accelerometer algılayıcısı ReportLatency özelliğine sahiptir. Bu özellik bir uygulama için ayarlandığında, algılayıcı belirtilen süreden sonra veri gönderir. ReportInterval özelliğini ayarlayarak belirli bir gecikme süresi boyunca ne kadar veri biriktiğini denetleyebilirsiniz.

Gecikme süresini ayarlama konusunda dikkate alınması gereken birkaç uyarı vardır. İlk çekince, her sensörün kendi özelliklerine bağlı olarak destekleyebileceği bir MaxBatchSize değerine sahip olmasıdır. Bu, algılayıcının bunları göndermeye zorlanmadan önce önbelleğe alabildiği olay sayısıdır. MaxBatchSize değerini ReportInterval ile çarpıyorsanız, bu en yüksek ReportLatency değerini belirler. Bundan daha yüksek bir değer belirtirseniz, veri kaybetmemek için maksimum gecikme süresi kullanılır. Ayrıca, her bir uygulama istenen gecikme süresini ayarlayabilir. Tüm uygulamaların ihtiyaçlarını karşılamak için en kısa gecikme süresi kullanılacaktır. Bu olgular nedeniyle, uygulamanızda ayarladığınız gecikme süresi gözlemlenen gecikme süresiyle eşleşmeyebilir.

Algılayıcı toplu raporlama kullanıyorsa GetCurrentReading çağrısı geçerli veri toplu işlemini temizler ve yeni bir gecikme süresi başlatır.

İvmeölçer

Accelerometer algılayıcısı, cihazın X, Y ve Z eksenleri boyunca G kuvveti değerlerini ölçer ve basit hareket tabanlı uygulamalar için mükemmeldir. G-force değerlerinin yerçekimine bağlı ivmeyi içerdiğini unutmayın. Cihazın bir masa üzerinde SimpleOrientation değeri FaceUp ise, ivmeölçer Z ekseninde -1 G gösterir. Bu nedenle, ivmeölçerler yalnızca koordinat hızlandırmayı ölçmez – hız değişikliği oranı. İvme ölçer kullanırken yerçekiminden gelen çekim vektörü ile hareketten doğrusal ivme vektörü arasında ayrım yaptığınızdan emin olun. Yer çekimi vektörü sabit bir cihaz için 1'e normalleştirilmelidir.

Aşağıdaki diyagramlarda gösterilmiştir:

  • V1 = Vektör 1 = Yer çekimine bağlı kuvvet
  • V2 = Vektör 2 = cihaz kasasının -Z ekseni (ekranın arka kısmını gösterir)
  • Θi = Eğim açısı (eğim) = cihaz kasasının –Z ekseni ile yerçekimi vektörü arasındaki açı

Accelerometer Accelerometer ölçümü

Ivmeölçer sensörünü kullanabilecek uygulamalar, ekrandaki bir bilyenin cihazı eğdiğiniz yönde (çekim vektörü) yuvarlandığı bir oyun içerir. Bu tür işlevler, Inclinometer işleviyle büyük ölçüde benzerlik gösterir ve pitch ile roll kombinasyonu kullanılarak bu sensörle de gerçekleştirilebilir. Ivmeölçerin yerçekimi vektörü kullanıldığında, cihaz eğimi için kolayca matematiksel olarak manipüle edilmiş bir vektör sağlayarak bu biraz basitleştirilir. Başka bir örnek, kullanıcı cihazı havada hızla savurduğunda kırbaç şaklaması sesi çıkaran bir uygulama olabilir (doğrusal ivme vektörü).

Örnek bir uygulama için bkz. Ivmeölçer kullanma.

Etkinlik algılayıcısı

Activity algılayıcıya bağlı cihazın geçerli durumunu belirler. Bu sensör, cihaz taşıyan bir kullanıcının ne zaman çalıştığını veya yürüdüğünü takip etmek için fitness uygulamalarında sıklıkla kullanılır. Bu algılayıcı API'si tarafından algılanabilir olası etkinliklerin listesi için bkz. ActivityType.

Örnek bir uygulama için bkz. etkinlik sensörü örneği.

Altimetre

Altimeter algılayıcının rakımını gösteren bir değer döndürür. Bu, deniz seviyesinden metreler açısından rakımdaki bir değişikliği takip etmenizi sağlar. Bunu kullanabilecek bir uygulama örneği, yakılan kaloriyi hesaplamak için çalıştırma sırasındaki yükseltme değişikliklerini takip eden çalışan bir uygulama olabilir. Bu durumda, bu algılayıcı verileri daha doğru izleme bilgileri sağlamak için Activity algılayıcısı ile birleştirilebilir.

Örnek bir uygulama için bkz. altimeter sample.

Barometre

Barometer algılayıcısı bir uygulamanın barometrik okumalar almasına olanak tanır. Hava durumu uygulaması geçerli atmosferik basıncı sağlamak için bu bilgileri kullanabilir. Bu, daha ayrıntılı bilgi sağlamak ve olası hava durumu değişikliklerini tahmin etmek için kullanılabilir.

Bir uygulama örneği için barometer örneğine bakın.

Compass

Compass algılayıcısı, Dünya’nın yatay düzlemini temel alarak manyetik kuzeye göre 2B bir yön verir. Pusula algılayıcısı, belirli cihaz yönünü belirlemek veya 3B alanda herhangi bir şeyi temsil etmek için kullanılmamalıdır. Coğrafi özellikler başlıkta doğal düşüşe neden olabilir, bu nedenle bazı sistemler hem HeadingMagneticNorth hem de HeadingTrueNorth'u destekler. Uygulamanızın hangisini tercih ettiğini düşünün, ancak tüm sistemlerin gerçek bir kuzey değeri raporlamayacağını unutmayın. Jirometre ve manyetometre (manyetik güç büyüklüğünü ölçen bir cihaz) algılayıcıları, verilerini birleştirerek pusula başlığını oluşturur ve bu da verileri sabitlemenin net etkisine sahiptir (manyetik alan gücü elektrik sistemi bileşenleri nedeniyle çok kararsızdır).

Manyetik Kuzey Kutbu ile ilgili pusula okumaları

Pusula gülünü görüntülemek veya haritada gezinmek isteyen uygulamalar genellikle pusula algılayıcısını kullanır.

Örnek bir uygulama için bkz. Pusulayı kullanma.

Jinekometre

Gyrometer algılayıcısı X, Y ve Z eksenleri boyunca açısal hızları ölçer. Bunlar, cihaz yönlendirmesiyle ilgilenmeyen ancak farklı hızlarda dönen cihazı önemseyen basit hareket tabanlı uygulamalarda çok kullanışlıdır. Jirometreler, veride gürültüden veya bir ya da daha fazla eksen boyunca sabit bir yanlılıktan etkilenebilir. Cihazın hareket edip etmediğini doğrulamak için ivmeölçeri sorgulamalı, böylece jiroskopta bir ofset olup olmadığını belirlemeli ve ardından uygulamanızda buna göre gerekli düzeltmeyi yapmalısınız.

Eğim, yuvarlanma ve sapma özellikli jiroskop

Jirometre sensörünü kullanabilen bir uygulamaya örnek olarak, cihazın hızlı dönme sarsıntısını temel alan rulet tekerleğini döndüren bir oyun gösterilebilir.

Örnek bir uygulama için bkz. Jirometreyi kullanma.

İnklinometre

Inclinometer algılayıcısı bir cihazın yaw, pitch ve roll değerlerini belirtir ve en iyi şekilde cihazın uzayda nasıl yer aldığından bahseden uygulamalarla çalışır. Pitch ve roll, ivmeölçerin yerçekimi vektörü kullanılarak ve jiroskop verileri tümleştirilerek hesaplanır. Yaw açısı, manyetometre ve jiroskop verilerinden (pusula yönüne benzer şekilde) belirlenir. İnklinometreler kolay sindirilebilir ve anlaşılır bir şekilde gelişmiş yönlendirme verileri sunar. Cihaz yönlendirmesine ihtiyacınız olduğunda ancak sensör verilerini işlemeniz gerekmediğinde eğim ölçerleri kullanın.

Pitch, roll ve yaw verilerine sahip eğimölçer

Görünümlerini cihazın yönlendirmesine uyacak şekilde değiştiren uygulamalar, eğim algılayıcısını kullanabilir. Ayrıca, cihazın yaw, pitch ve roll değerlerine karşılık gelen bir uçağı gösteren bir uygulama da eğim ölçer verilerini kullanır.

Örnek bir uygulama için bkz. Eğim ölçeri kullanma.

Işık sensörü

LightSensor algılayıcıyı çevreleyen ortam ışığını belirleme özelliğine sahiptir. Bu, bir uygulamanın cihazı çevreleyen ışık ayarının ne zaman değiştiğini belirlemesini sağlar. Örneğin, tablet kullanan bir kullanıcı güneşli bir günde iç mekândan dışarıya yürüyebilir. Akıllı bir uygulama, arka plan ile işlenen yazı tipi arasındaki karşıtlığı artırmak için bu değeri kullanabilir. Bu, içeriğin daha parlak ve açık havada okunmasını sağlar.

Örnek bir uygulama için bkz. Işık algılayıcısını kullanma.

Yönlendirme algılayıcısı

Cihazın yönelimi hem kuaterniyon hem de bir döndürme matrisi ile ifade edilir. OrientationSensor, cihazın mutlak başlığa göre uzayda nasıl yerlendiğini belirleme konusunda yüksek düzeyde hassasiyet sunar. OrientationSensor verileri ivmeölçer, jirometre ve manyetometreden türetilir. Bu nedenle hem eğim ölçer hem de pusula algılayıcıları quaternion değerlerinden türetilebilir. Quaternions ve rotasyon matrisleri, gelişmiş matematiksel işlemeye iyi bir şekilde yardımcı olur ve genellikle grafik programlamada kullanılır. Karmaşık işleme kullanan uygulamalar, birçok dönüşüm quaternions ve rotasyon matrislerine dayalı olduğundan yönlendirme algılayıcısını tercih etmelidir.

Yönlendirme algılayıcısı verileri

Yön sensörü, genellikle cihazın arka kısmının baktığı yöne bağlı olarak çevrenizin üzerine bir katman bindiren gelişmiş artırılmış gerçeklik uygulamalarında kullanılır.

Örnek bir uygulama için bkz. Yönlendirme algılayıcısını kullanma.

Adımsayar

Pedometer algılayıcısı, bağlı cihazı taşıyan kullanıcının gerçekleştirdiği adım sayısını izler. Algılayıcı, belirli bir zaman aralığındaki adım sayısını takip etmek için yapılandırılmıştır. Kullanıcının çeşitli hedefler belirlemesine ve ulaşmasına yardımcı olmak için atılan adımların sayısını takip etmek gibi çeşitli fitness uygulamaları. Bu bilgiler daha sonra zaman içindeki ilerleme durumunu göstermek için toplanabilir ve depolanabilir.

Örnek bir uygulama için bkz. pedometer örneği.

Yakınlık algılayıcısı

Proximity algılayıcı, algılayıcı tarafından nesnelerin algılanıp algılanmadığını belirtmek için kullanılabilir. Bir nesnenin cihazın aralığında olup olmadığını belirlemeye ek olarak, yakınlık algılayıcısı algılanan nesneye olan uzaklığı da belirleyebilir. Bunun kullanılabilmesi için bir örnek, kullanıcı belirli bir aralık içinde geldiğinde uyku durumundan çıkma isteğinde bulunan bir uygulamadır. Yakınlık algılayıcısı bir nesneyi algılayıp daha etkin bir duruma girene kadar cihaz düşük güçte bir uyku durumunda olabilir.

Örnek bir uygulama için bkz. proximity algılayıcı örneği.

Basit yönlendirme

SimpleOrientationSensor, belirtilen cihazın geçerli çeyrek yönünü veya yukarı veya aşağı dönük olduğunu algılar. SimpleOrientation için altı olası durum vardır (NotRotated, Rotated90, Rotated180, Rotated270, FaceUp, FaceDown).

Paralel veya yere dik tutulan cihaza göre ekranını değiştiren bir okuyucu uygulaması, cihazın nasıl tutulduğunu belirlemek için SimpleOrientationSensor değerlerini kullanır.

Örnek bir uygulama için bkz. simple yönlendirme algılayıcısı örneği.