Sabit değerleri ve ilkelleri uygulama

Dokunsal sabitler ve temel öğeler, vibratör HAL tarafından tanımlanır ve Android çerçevesi tarafından herkese açık API'lerle eşlenir. Cihazınızın dokunma teknolojisini uygulamak için minimum koşulları karşılayıp karşılamadığını belirlemek üzere aşağıdaki kontrolleri yapın:

Dokunsal geri bildirim uygulama sürecinin akış şeması

Şekil 2. Efektleri uygulama

Temel öğeleri uygulama adımlarının akış şeması

Şekil 3. Temel öğeleri uygulama

Sabit değerleri uygulama

VibrationEffect'teki dokunsal sabitler, geliştiriciler tarafından VibrationEffect.createPredefined() aracılığıyla kullanılabilir. Aşağıdaki dokunsal sabitlerin uygulanma durumunu kontrol edin.

Dokunma teknolojisi sabitleri Konumlar ve özetler
EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK, EFFECT_DOUBLE_CLICK VibrationEffect class
VibrationEffect içindeki dokunsal sabitler, giriş etkinlikleriyle ilgili herhangi bir kavram içermez ve kullanıcı arayüzü öğeleri yoktur. Sabitler, EFFECT_CLICK ve EFFECT_HEAVY_CLICK gibi enerji seviyeleri kavramını içerir. Bunlara createPredefined() adı verilir.

Aşağıda açıklanan alternatif titreşimler, VibrationEffect sabitlerini uygulamayan cihazlarda gerçekleştirilir. Bu yapılandırmaların, söz konusu cihazlarda en iyi performansı gösterecek şekilde güncellenmesi önerilir.

  • EFFECT_CLICK

    VibrationEffect.createWaveform ile oluşturulan dalga biçimli titreşim ve frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern adresinde yapılandırılan zamanlamalar.

  • EFFECT_HEAVY_CLICK

    VibrationEffect.createWaveform ile oluşturulan ve frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern'de yapılandırılan zamanlamalara sahip dalga biçimli titreşim.

    • EFFECT_DOUBLE_CLICK

    VibrationEffect.createWaveform ile oluşturulan titreşim dalga biçimi ve zamanlamalar (0, 30, 100, 30).

  • EFFECT_TICK

    VibrationEffect.createWaveform ile oluşturulan dalga biçimli titreşim ve frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern adresinde yapılandırılan zamanlamalar.

Dokunsal geri bildirimi test etme adımlarının akış şeması

Şekil 4. Geri bildirim sabitlerini uygulama

HapticFeedbackConstants içindeki dokunsal sabitler, geliştiriciler tarafından View.performHapticFeedback() aracılığıyla kullanılabilir. Aşağıdaki herkese açık geri bildirim sabitlerinin durumunu kontrol edin.

Dokunma teknolojisi sabitleri Konumlar ve özetler
CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAP, LONG_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_KEY, VIRTUAL_KEY_RELEASE, CONFIRM, REJECT, GESTURE_START, GESTURE_END HapticFeedbackConstants sınıfı
HapticFeedbackConstants, KEYBOARD_PRESS ve KEYBOARD_RELEASE gibi belirli kullanıcı arayüzü öğeleriyle giriş etkinliklerine yardımcı olan dokunsal sabitleri içerir. Bu öğeler performHapticFeedback() tarafından çağrılır.

Temel öğeleri uygulama

VibrationEffect.Composition içindeki dokunsal öğeler, geliştiricilerin addPrimitive(int primitiveId, float scale, int delay) aracılığıyla kullanabileceği ölçeklenebilir yoğunluğa sahiptir. Temel öğeler iki kategoriye ayrılabilir:

  • Kısa temel öğeler: Genellikle 20 ms'den kısa süren temel öğelerdir. Bunlar CLICK, TICK ve LOW_TICK'dir.

  • Chirp temel öğeleri: Genliği ve sıklığı değişen, genellikle kısa temel öğelerden daha uzun süreli olan temel öğeler. Bunlar SLOW_RISE, QUICK_RISE, QUCK_FALL, THUD ve SPIN'dir.

Shorts videolarını remiksleme

Kısa titreşimler, titreşim motorunun çıkış hızlanma profiliyle tanımlanabilir. Kullanılan mutlak sıklık, aktüatörün rezonans sıklığına bağlı olarak her bir öğe için değişir. Donanım kurulumu ve çıkışı ölçmeye yönelik araçlar hakkında daha fazla bilgi için Test ekipmanını kurma başlıklı makaleyi inceleyin.

Kısa titreşimler için değerli bir kalite metriği, 5. şekilde gösterilen zil çalma oranıdır (PRR). PRR, genliğin tepe genliğinin% 10'una düştüğü süre penceresindeki sinyalle tanımlanan ana darbe ile genliğin tepe genliğinin% 10'undan tepe genliğinin% 1'inden daha azına düştüğü sinyalle tanımlanan çınlama darbesi arasındaki oran olarak tanımlanır. PRR formülü şöyledir:

$$ \text{Pulse to ring ratio (PRR)} = 20log_{10}\frac{\text{RMS (main pulse)}}{\text{RMS (ring)}} $$

PRR hakkında daha fazla bilgi için Dalga biçimini analiz etme başlıklı makaleyi, sonuçları analiz etme ve karşılaştırma hakkında daha fazla bilgi için ise Performans haritasını kullanarak sonuçları karşılaştırma başlıklı makaleyi inceleyin.

Nabız-Halka Oranı

Şekil 5. Çalma oranı tanımı

Yumuşak dokular oluşturmak için kısa temel öğeleri kullanıcı girişi geri bildirimi olarak veya daha uzun kompozisyonlarda kullanın. Bu nedenle, genellikle sık sık tetiklenir ve hızlı bir şekilde oynatılırlar. Tek bir kısa öğenin algılanan yoğunluğu, daha büyük efekt yoğunluğunu artırabilir. Bu nedenle, tek bir tik veya düşük tikli bir öğeyi daha büyük bir kompozisyonla (örneğin, 100 ardışık tik) kalibre edin.

Tıklama öğesi

Tıklama primi, kısa sürede maksimum çıkışa ulaşmak için genellikle bir cihazın rezonans frekansına yakın çalışan güçlü ve net bir efektir. Diğer temel öğelerden daha güçlü ve derin olup maksimum harcanan efor düzeyinde çalışır.

Kısa bir motor yükselme ve düşme süresi elde etmek için varsa başlangıçta motor aşırı hızını, sonunda ise aktif frenlemeyi kullanın. Bazı motorlarda, sinüs dalgası yerine kare dalga kullanmak daha hızlı hızlanma sağlayabilir. Şekil 6'da, tıklama bileşeni için örnek bir çıkış hızlandırma profili gösterilmektedir:

Tıklama bileşeni çıkışı hızlandırma profili

Şekil 6. Tıklama öğesi için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 12 ms

Sınır: < 30 ms

En yüksek çıkış ivmesi

Hedef: 2G

Sınır: > 1 GB

Sıklık Yaklaşık olarak rezonans frekansında

Tick primitive (light tick)

Tık sesi, genellikle daha yüksek bir frekans aralığında çalışan keskin ve kısa bir efekttir. Bu temel öğe, kısa kuyruklu ve daha yüksek sıklıkta orta yoğunluklu bir tıklama olarak da tanımlanabilir. Aynı kılavuz, motor aşırı hızını veya başlangıç için kare dalgayı kullanarak kısa bir yükselme süresi elde etme ve ofsette aktif frenleme için de geçerlidir. Şekil 7'de, tik öğesi için örnek bir çıkış hızlanma profili gösterilmektedir:

Tick primitive çıkış hızlandırma profilini işaretleyin

Şekil 7. İşaret ilkel öğesi için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 5 ms

Sınır: < 20 ms

En yüksek çıkış ivmesi

Hedef: CLICK'nın yarısı, 1 G

Sınır: 0,5 G ile 1 G arasında

Sıklık

Hedef: 2 kat rezonans frekansı

Sınır: < 500 Hz

Düşük tick primitive

Düşük tik ilkel öğesi, efektin daha dolgun olmasını sağlamak için daha düşük bir frekans aralığında çalışan, hafif tikin daha yumuşak ve zayıf bir versiyonudur. Bu temel öğe, dinamik geri bildirim için tekrar tekrar kullanılmak üzere tasarlanmış, daha düşük sıklıkta orta yoğunluklu bir tıklama olarak da tanımlanabilir. Aynı yönergeler, motor aşırı yüklemesi veya başlangıçta kare dalga kullanarak kısa yükselme süresi elde etmek için de geçerlidir. Şekil 8'de, düşük tik ilkel öğesi için örnek bir çıkış hızlanma profili gösterilmektedir:

Düşük tikli temel çıkış hızlandırma profili

Şekil 8. Düşük tikli temel öğe için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 12 ms

Sınır: < 30 ms

En yüksek çıkış ivmesi

Hedef: 1/4 TICK, 0,25 G

Sınır: 0,2 G ile 0,5 G arasında

Sıklık

Hedef: 2/3 rezonans frekansı

Sınır: < 100 Hz

Chirp temel öğeleri

Chirp temel öğeleri, voltaj seviyesi ve titreşim frekansı için giriş sinyalleriyle tanımlanabilir. Motorun farklı frekans aralıklarında üretebileceği hızlanma, aktüatörün frekans tepki eğrisine bağlı olarak değişir. Frekans aralıkları ve voltaj seviyeleri cihaz bazında ayarlanmalıdır.

Yavaş yükselme temel öğesi

Yavaş yükselme, yumuşak başlangıçlı ve genliği ile frekansı yavaş yavaş artan, titreşim yoğunluğu sürekli yükselen bir taramadır. Rezonans dışında çalışan daha düşük bir frekans aralığı kullanılarak hem genliğin hem de frekansın tutarlı bir şekilde taranmasıyla uygulanabilir. Şekil 9'da, bu uygulama için giriş parametreleri ve örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Yavaş yükselme öğesi için giriş parametreleri ve çıkış hızlanma profili

Şekil 9. Giriş parametreleri ve yavaş yükselen öğe için çıkış hızlanma profili örneği

Motorun frekans yanıtı sınırlıysa (rezonans frekansının yeterince uzağında değilse) alternatif bir uygulama, rezonans frekansının 1/2 katından 1 katına kadar olan bir sinüs taramasıdır. Motor rezonansı, sinyal tepe noktasına ulaşılmasına katkıda bulunur.

Parametre Yönerge
Süre

Hedef: 500 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: 0,5 G

Sınır: 0,5 G ile 1 G arasında

Sıklık

Hedef: Rezonans frekansının 1/2 ila 2/3'ü

Alternatif: Rezonans frekansının 1/2'si

Hızlı yükselme temel öğesi

Hızlı yükselme, yumuşak başlangıçlı ve süpürme boyunca titreşim yoğunluğu sürekli artan, daha hızlı bir genlik ve frekans süpürmesidir. Çıkış hızlanması ve titreşim frekansı hedefleri, daha kısa sürede elde edilen yavaş yükselme hedefiyle aynı olmalıdır. 10. şekilde, titreşim giriş parametreleri ve yavaş yükselme temel öğesi için örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Hızlı yükselme öğesi için giriş parametreleri ve çıkış hızlanma profili

Şekil 10. Giriş parametreleri ve hızlı yükselme öğesi için çıkış hızlanma profili örneği

Parametre Yönerge
Süre

Hedef: 150 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: SLOW_RISE ile aynı

Sınır: SLOW_RISE ile aynı

Sıklık

Hedef: SLOW_RISE ile aynı

Alternatif: SLOW_RISE ile aynı

Hızlı düşme öğesi

Hızlı düşüş, yumuşak bir başlangıçla hızlı bir genlik ve frekans düşüşüdür. Motor, maksimum çıkış hızlanmasına ulaşmak için hızlanırken başlangıç noktası olarak daha yüksek bir sıklık kullanabilirsiniz. Frekans, artış süresi boyunca bile tarama genelinde sürekli olarak azalmalıdır. Şekil 11'de, giriş parametreleri ve bu uygulama için örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Hızlı düşme öğesi için giriş parametreleri ve çıkış hızlanma profili

Şekil 11. Giriş parametreleri ve hızlı düşme öğesi için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 100 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: 1 GB

Sınır: 0,5 GB ile 2 GB arasında

Sıklık

Hedef: Rezonans frekansının 2 katı ile 1 katı arasında

Thud primitive

Gümleme, boş bir tahtaya vurmanın fiziksel hissini simüle eden, düşük ve vurmalı bir efekt. Bu temel öğe, efektin daha belirgin olması için düşük frekans aralığında çalışır. Gümleme öğesini, daha düşük bir frekans aralığında (tercihen 100 Hz'den az) genlik ve frekans düşüşü olarak uygulayabilirsiniz. 12. şekilde, giriş parametreleri ve bu uygulama için örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Giriş parametreleri ve thud bileşeni için çıkış hızlandırma profili

Şekil 12. Giriş parametreleri ve thud öğesi için çıkış hızlandırma profili örneği

Motorun frekans yanıtı sınırlıysa alternatif bir uygulama olarak rezonans frekansında tam yoğunluklu bir sürücü sinyaliyle başlayıp algılanmaya devam edebilecek en düşük frekansa düşebilirsiniz. Bu yaklaşım, titreşimin hissedilmesi için düşük frekansta sürücü sinyal yoğunluğunun artırılmasını gerektirebilir.

Parametre Yönerge
Süre

Hedef: 300 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: 0,25 G

Sınır: 0,2 G ile 0,5 G arasında

Sıklık

Hedef: Rezonans frekansının 1/2 ila 1/3'ü

Alternatif: Rezonans frekansının 1 katı ila 1/2 katı

Dönüş temel öğesi

Döndürme, ortada hafif bir vurguyla hızlı yukarı ve aşağı döndürmenin dönme momentumunu simüle eder. Dönme hareketi, genlik ve frekansın bağımsız olarak, ters yönlerde süpürülmesi ve ardından ters hareketle uygulanabilir. Daha düşük bir frekans aralığı (tercihen 100 Hz'den az) kullanmanız önemlidir. 13. şekilde, giriş parametreleri ve bu uygulama için örnek bir çıkış hızlanma profili gösterilmektedir. (Kırmızı çizgi, soldaki genlik etiketleriyle eşleşir ve titreşim genliğinin zamanla nasıl değiştiğini gösterir. Mavi çizgi, sağdaki frekans etiketleriyle eşleşir ve titreşim frekansının zamanla nasıl değiştiğini gösterir.

Dönme ve dengesizlik hissi elde etmek için dönme öğesinin art arda iki kez veya kompozisyonlarda üç kez çağrılmasını öneririz.

Motorun frekans yanıtı sınırlıysa alternatif bir uygulama olarak rezonans frekansının 1/2 katından 1 katına kadar hızlı bir sinüs taraması yapıp geri dönmek gerekir. Motor rezonansı, sinyale otomatik olarak ortada bir vurgu verir.

Döndürme bileşeni için giriş parametreleri ve çıkış hızlandırma profili

Şekil 13. Giriş parametreleri ve döndürme öğesi için çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 150 ms

Tolerans: 20 ms

En yüksek çıkış ivmesi

Hedef: 0,5 G

Sınır: 0,25 G ile 0,75 G arasında

Sıklık

Hedef: 2/3 ila 1/3, ardından rezonans frekansının 1/2'sine geri dönün.

Alternatif: 2/3 ila 1 kat, ardından rezonans frekansının 1/2'sine geri dönme