震動致動器入門

在 Android 裝置上設計觸覺技術之前, 振動致動器的運作方式總覽。

觸覺回饋的 LRA 元件

最常見的震動致動器是線性共振致動器 (LRA)。每項 LRA 包含聲音線圈,用來壓平磁力移動的質量, 每個春季都有連結聲音線圈使用的 AC 電壓會產生 造成質量移動的電磁力。「彈簧」提供 使質量回到起始位置的恢復力。 在質量的上下移動會讓 LRA 振動。他們的 輸出的最大共振頻率。

由於輸入電壓在兩種不同的頻率時相同,震動輸出就會是 振幅可能會有所不同頻率與 LRA 的 振動頻率越低,振動幅度越低。

LRA 的其中一項常見功能是模擬按鈕的感受 然後按一下無回應的玻璃表面。能帶給使用者 更自然當你在虛擬鍵盤上輸入內容時,點選意見回饋可以 加快輸入速度並減少錯誤清楚明瞭的點擊意見回饋信號 時間長度通常不超過 10 至 20 毫秒。獲得良好點擊 需要具備裝置所用 LRA 的一些知識。這也說明瞭 預先製作的波形可針對點擊提供最佳回饋別擔心!您可以使用 每當有人按下按鈕獲得點擊回饋時 。

裝置中的觸覺效應取決於振動 與相關手法含過度駕駛和活躍作用的觸覺回饋駕駛 煞車功能有助於減少 LRA 的啟動時間和響鈴,進而 回應速度和震動以下為說明 波形模式在一般裝置上運作。

Kotlin

val timings: LongArray = longArrayOf(50, 50, 50, 50, 50, 100, 350, 250)
val amplitudes: IntArray = intArrayOf(77, 79, 84, 99, 143, 255, 0, 255)
val repeatIndex = -1 // Do not repeat.

vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex))

Java

long[] timings = new long[] { 50, 50, 50, 50, 50, 100, 350, 250 };
int[] amplitudes = new int[] { 77, 79, 84, 99, 143, 255, 0, 255 };
int repeatIndex = -1 // Do not repeat.

vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex));

下圖顯示與程式碼片段相對應的波形 。

步驟函式輸入波形圖

相應的加速功能如下:

實際測量波形的圖表,顯示更多關卡之間的自然轉換數

請注意,每次 模式中的振幅變化 (例如,0 毫秒、150 毫秒、200 毫秒、250 毫秒、 700 毫秒)。每步幅增加時都要過度衝擊 可見的「響鈴」,持續至少 50 毫秒 降 0。

只要增加和減少振幅,就能改善這種觸覺回饋模式 逐漸避免過度射擊並減少響鈴時間。下列程式碼顯示 修正後的波形和加速度圖。

Kotlin

val timings: LongArray = longArrayOf(
    25, 25, 50, 25, 25, 25, 25, 25, 25, 25, 75, 25, 25,
    300, 25, 25, 150, 25, 25, 25
)
val amplitudes: IntArray = intArrayOf(
    38, 77, 79, 84, 92, 99, 121, 143, 180, 217, 255, 170, 85,
    0, 85, 170, 255, 170, 85, 0
)
val repeatIndex = -1 // Do not repeat.

vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex))

Java

long[] timings = new long[] {
        25, 25, 50, 25, 25, 25, 25, 25, 25, 25, 75, 25, 25,
        300, 25, 25, 150, 25, 25, 25
    };
int[] amplitudes = new int[] {
        38, 77, 79, 84, 92, 99, 121, 143, 180, 217, 255, 170, 85,
        0, 85, 170, 255, 170, 85, 0
    };
int repeatIndex = -1; // Do not repeat.

vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex));

包含額外步驟的輸入波形圖

測量的波形圖,顯示更順暢的轉場效果

在 Android 裝置上建立觸覺效應需要超過 提供頻率和振幅值設計 觸覺技術會產生觸覺效應,但無法完全查看工程規格 震動致動器和驅動程式Android API 提供常數 讓您執行以下操作:

  • 執行清晰的效果和原始效果

  • 串連這些按鈕,即可創造新的觸覺效果。

這些預先定義的觸覺常數和基本功能,可大幅提升作業速度 同時確保高品質的觸覺回饋