Sabit değerleri ve ilkelleri uygulama

Dokunma sabitleri ve primitifleri, titreşim HAL'i 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 gereken minimum koşulları karşılayıp karşılamadığını belirlemek üzere aşağıdaki kontrolleri yapın:

Dokunma geri bildirimi uygulama sürecinin akış şeması

Şekil 2. Efektleri uygulama

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

Şekil 3. İlkelleri uygulama

Sabitleri uygulama

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

Dokunma teknolojisi sabitleri Konumlar ve özetler
EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK, EFFECT_DOUBLE_CLICK VibrationEffect sınıf
VibrationEffect içindeki dokunma sabitleri, giriş etkinlikleri kavramı içermez ve kullanıcı arayüzü öğeleri içermez. Sabitler, createPredefined() tarafından çağrılan EFFECT_CLICK ve EFFECT_HEAVY_CLICK gibi enerji seviyesi kavramlarını içerir.

Aşağıda açıklanan alternatif titreşimler, VibrationEffect sabitlerini uygulamayan cihazlarda gerçekleştirilir. Bu yapılandırmaları, bu tür cihazlarda en iyi performansı sağlayacak şekilde güncellemeniz önerilir.

  • EFFECT_CLICK

    VibrationEffect.createWaveform ile oluşturulan dalga biçimi titreşimi ve frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern'da yapılandırılmış zamanlamalar.

  • EFFECT_HEAVY_CLICK

    VibrationEffect.createWaveform ile oluşturulan dalga biçimi titreşimi ve frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern'da yapılandırılmış zamanlamalar.

    • EFFECT_DOUBLE_CLICK

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

  • EFFECT_TICK

    VibrationEffect.createWaveform ile oluşturulan dalga biçimi titreşimi ve frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern'da yapılandırılmış zamanlamalar.

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

Şekil 4. Geri bildirim sabitlerini uygulama

HapticFeedbackConstants'taki 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'deki dokunma sabitleri, performHapticFeedback() tarafından çağrılan KEYBOARD_PRESS ve KEYBOARD_RELEASE gibi belirli kullanıcı arayüzü öğeleriyle giriş etkinliklerine yardımcı olur.

Temel öğeleri uygulama

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

  • Kısa primitifler: Genellikle 20 ms'den kısa süreli primitifler. Bunlar CLICK, TICK ve LOW_TICK'dir.

  • Titreşim primitifleri: Genellikle kısa primitiflerden daha uzun süreli olan, değişen genlik ve frekansa sahip primitifler. Bunlar SLOW_RISE, QUICK_RISE, QUCK_FALL, THUD ve SPIN.

Kısa primitifler

Kısa primitifler, titreşim motoru çıkışı ivme profili ile açıklanabilir. Kullanılan mutlak sıklık, aktüatörün rezonans frekansına bağlı olarak her primitif için değişir. Donanım kurulumu ve çıkışı ölçme 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, Şekil 5'te gösterilen darbe/zil oranıdır (PRR). PRR, genliğin zirve genliğinin% 10'una düştüğü süre aralığı içindeki sinyal tarafından tanımlanan ana darbe ile genliğin zirve genliğinin% 10'undan zirve genliğinin% 1'inden azına düştüğü sinyal tarafından tanımlanan halka darbesi arasındaki oran olarak tanımlanır. PRR'nin formülü:

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

PRR hakkında daha fazla bilgi için Dalgalı formunu analiz etme başlıklı makaleyi inceleyin. Sonuçları analiz etme ve karşılaştırma hakkında daha fazla bilgi için Performans haritasını kullanarak sonuçları karşılaştırma başlıklı makaleyi inceleyin.

Nabız/Çınlama Oranı

Şekil 5. Nabız/zil sesi oranı tanımı

Kullanıcı girişi geri bildirimi olarak kısa primitifler uygulayın veya yumuşak dokular oluşturmak için daha uzun kompozisyonlarda oynatın. Bu, genellikle sık sık tetiklendikleri ve arka arkaya hızlı bir şekilde oynatıldıkları anlamına gelir. Tek bir kısa primitifin algılanan yoğunluğu, daha büyük efekt yoğunluğunu artırabilir. Bu nedenle, tek bir onay işareti veya düşük onay işareti ilkelini daha büyük bir kompozisyonla (ör. art arda 100 onay işareti) kalibre edin.

Tıklama primitivi

Tıklama ilkel öğesi, genellikle kısa sürede maksimum çıkışa ulaşmak için cihazın rezonans frekansına yakın bir yerde çalışan güçlü ve net bir efekttir. Diğer primitiflerden daha güçlü ve daha derin olup maksimum yoğunlukta çalışır.

Motorun kısa sürede hızlanması ve yavaşlaması için varsa başlangıçta motor aşırı hızını, sonunda ise etkin 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:

Basit çıkış hızlandırma profilini tıklayın

Şekil 6. Tıklama ilkel öğ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ış hızlandırması

Hedef: 2 G

Sınır: > 1 G

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

Kene ilkel öğesi (hafif kene)

Tik primitifi, genellikle daha yüksek bir frekans aralığında çalışan keskin ve kısa bir efekttir. Bu ilkel, kısa bir kuyruğu olan daha yüksek bir sıklıktaki orta yoğunlukta bir tıklama olarak da açıklanabilir. Motorun aşırı hızını kullanarak veya ilk başlangıç için kare dalga kullanarak kısa bir yükselme süresine ulaşmak ve ofsette etkin frenleme yapmak için de aynı kılavuz geçerlidir. Şekil 7'de, tik primitifi için örnek bir çıkış hızlandırma profili gösterilmektedir:

Basit çıkış hızlandırma profilini işaretleyin

Şekil 7. Tik primitifi 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ış hızlandırması

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

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

Sıklık

Hedef: 2x rezonans frekansı

Sınır: < 500 Hz

Düşük onay işareti ilkel

Düşük tik primitifi, hafif tikin daha yumuşak ve zayıf bir sürümüdür. Etkiye daha fazla hacim kazandırmak için daha düşük bir sıklık aralığında çalışır. Bu primitif, dinamik geri bildirim için tekrar tekrar kullanılması amaçlanan, daha düşük bir sıklıktaki orta yoğunlukta bir tıklama olarak da açıklanabilir. Motor aşırı hızlandırması veya ilk başlangıç için kare dalga kullanarak kısa bir yükselme süresine ulaşmak için de aynı yönergeler geçerlidir. Şekil 8'de, düşük tıklama primitifi için örnek bir çıkış hızlandırma profili gösterilmektedir:

Düşük tik primitif çıkış hızlandırması profili

Şekil 8. Düşük tik primitifi 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ış hızlandırması

Hedef: TICK'ün 1/4'ü, 0,25 g

Sınır: 0,2 ila 0,5 GB

Sıklık

Hedef: 2/3 rezonans frekansı

Sınır: < 100 Hz

Chirp temel öğeleri

Chirp primitifleri, voltaj seviyesi ve titreşim sıklığı için giriş sinyalleriyle açıklanabilir. Motorun farklı frekans aralıklarında sağlayabileceği ivme, aktüatörün frekans yanıt eğrisine bağlı olarak değişir. Sıklık aralıkları ve voltaj seviyelerinin cihaza göre ayarlanması gerekir.

Yavaş artış temel öğesi

Yavaş artış, yumuşak bir başlangıç ve tarama boyunca sürekli artan titreşim yoğunluğuyla yukarı doğru yavaş bir genlik ve frekans taramasıdır. Hem genlik hem de sıklık için tutarlı bir tarama yapılarak, rezonans dışında çalışan daha düşük bir sıklık aralığı kullanılarak uygulanabilir. Şekil 9'da, bu uygulama için giriş parametreleri ve örnek bir çıkış hızlandırma 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 zaman içinde nasıl değiştiğini gösterir.)

Yavaş artış ilkel işlevi için giriş parametreleri ve çıkış ivme profili

Şekil 9. Yavaş artış ilkel işlevi için giriş parametreleri ve çıkış hızlandırma profili örneği

Motorun frekans yanıtı sınırlıysa (rezonans frekansından yeterince güçlü değilse) alternatif bir uygulama, rezonans frekansının 1/2 ila 1 katı arasında bir sinüs taramasıdır. Motor rezonansı, sonunda sinyal zirvesine ulaşılmasına katkıda bulunur.

Parametre Yönerge
Süre

Hedef: 500 ms

Tolerans: 20 ms

En yüksek çıkış hızlandırması

Hedef: 0,5 G

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

Sıklık

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

Alternatif: 1/2 ile rezonans frekansı

Hızlı artış temel öğesi

Hızlı artış, yumuşak başlangıç ve tarama boyunca sürekli artan titreşim yoğunluğuyla yukarı doğru daha hızlı bir genlik ve frekans taramasıdır. Çıkış ivmesi ve titreşim frekansı hedefleri, daha kısa sürede elde edilen yavaş artış ilkeliyle aynı olmalıdır. Şekil 10'da, titreşim giriş parametreleri ve yavaş artış ilkel işlevi için örnek bir çıkış ivme 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 zaman içinde nasıl değiştiğini gösterir.)

Hızlı artış ilkel işlevi için giriş parametreleri ve çıkış ivme profili

Şekil 10. Hızlı artış ilkel öğesi için giriş parametreleri ve çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 150 ms

Tolerans: 20 ms

En yüksek çıkış hızlandırması

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 temel öğesi

Hızlı düşüş, yumuşak bir başlangıçla aşağı doğru hızlı bir genlik ve frekans süpürme hareketidir. Motor, en yüksek çıkış hızına ulaşmak için hızlanırken başlangıç noktası olarak daha yüksek bir sıklık kullanabilirsiniz. Frekans, yükselme süresi boyunca bile tarama boyunca sürekli olarak azalmalıdır. Şekil 11'de, bu uygulama için giriş parametreleri ve örnek bir çıkış hızlandırma 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 zaman içinde nasıl değiştiğini gösterir.)

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

Şekil 11. Hızlı düşüş ilkel öğesi için giriş parametreleri ve çıkış ivme profili örneği

Parametre Yönerge
Süre

Hedef: 100 ms

Tolerans: 20 ms

En yüksek çıkış hızlandırması

Hedef: 1 G

Sınır: 0,5 ila 2 GB

Sıklık

Hedef: Rezonans frekansının 2 ila 1 katı

Vurma sesi temel öğesi

Gürültü, içi boş ahşabı tıklatmanın fiziksel hissini simüle eden, tok ve düşük bir vurmalı efekttir. Bu temel öğe, efekte daha fazla hacim sağlamak için düşük tik temel öğesine benzer şekilde düşük bir frekans aralığında çalışır. Vurma sesi ilkelini, daha düşük bir frekans aralığında (tercihen 100 Hz'den az) aşağı doğru bir genlik ve frekans taraması olarak uygulayabilirsiniz. Şekil 12'de, bu uygulama için giriş parametreleri ve örnek bir çıkış hızlandırma 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 zaman içinde nasıl değiştiğini gösterir.)

Vurma sesi ilkel öğesi için giriş parametreleri ve çıkış hızlandırma profili

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

Motorun frekans yanıtı sınırlıysa alternatif bir uygulama, rezonans frekansında tam yoğunlukta bir sürücü sinyali ile başlamak ve algılanmaya devam edebilecek en düşük frekansa düşürmektir. Bu yaklaşım, titreşimin hissedilebilmesi için düşük frekansta sürücü sinyali yoğunluğunun artırılması gerekebilir.

Parametre Yönerge
Süre

Hedef: 300 ms

Tolerans: 20 ms

En yüksek çıkış hızlandırması

Hedef: 0,25 G

Sınır: 0,2 ila 0,5 GB

Sıklık

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

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

Döndürme temel öğesi

Dönüş, ortada hafif bir vurguyla hızlı bir şekilde yukarı ve aşağı dönen bir momentumu simüle eder. Dönme, genliği ve frekansı bağımsız olarak ters yönlerde kaydırarak ve ardından ters hareketi uygulayarak uygulanabilir. Daha düşük bir frekans aralığı (tercihen 100 Hz'den az) kullanmanız önemlidir. Şekil 13'te, bu uygulama için giriş parametreleri ve örnek bir çıkış hızlandırma 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 zaman içinde nasıl değiştiğini gösterir.)

Dönen ve kararsız bir his elde etmek için spin ilkelinin art arda iki kez veya kompozisyonlarda üç kez çağrılmasını önermiştik.

Motorun frekans yanıtı sınırlıysa alternatif bir uygulama, rezonans frekansının 1/2 ila 1 katı arasında hızlı bir sinüs taraması yapmaktır. Motor rezonansı, sinyale otomatik olarak ortada bir vurgu verir.

Dönme ilkel öğesi için giriş parametreleri ve çıkış hızlandırma profili

Şekil 13. Dönme ilkeliyle ilgili giriş parametreleri ve çıkış hızlandırma profili örneği

Parametre Yönerge
Süre

Hedef: 150 ms

Tolerans: 20 ms

En yüksek çıkış hızlandırması

Hedef: 0,5 G

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

Sıklık

Hedef: 2/3 ila 1/3, ardından tekrar rezonans frekansının 1/2'sine

Alternatif: 2/3 ila 1x, ardından tekrar rezonans frekansının 1/2'sine