वाइब्रेशन एक्चुएटर प्राइमर

Android डिवाइस पर हैप्टिक इफ़ेक्ट डिज़ाइन करने से पहले, वाइब्रेशन एक्चुएटर के काम करने के तरीके के बारे में खास जानकारी.

हैप्टिक एलआरए के कॉम्पोनेंट का इलस्ट्रेशन

लीनियर रेज़ोनेंट ऐक्चुएटर (एलआरए) सबसे सामान्य वाइब्रेशन हैं. हर LRA में चुंबकीय गति वाले द्रव्यमान के ऊपर दबाया जाने वाला वॉइस कॉइल होता है जो स्प्रिंग से जुड़ी हुई है. वॉइस कॉइल पर लगाया गया एसी वोल्टेज एक इलेक्ट्रोमैग्नेटिक फ़ोर्स, जिसकी वजह से द्रव्यमान में हलचल होती है. वसंत में आपको वह बल बहाल करना जिसकी वजह से द्रव्यमान यानी मास अपनी शुरुआती स्थिति पर वापस आ जाए. कॉन्टेंट बनाने द्रव्यमान के आगे और पीछे हलचल होने से एलआरए वाइब्रेट होता है. उनके पास रेज़ोनेंस फ़्रीक्वेंसी, जिस पर आउटपुट सबसे ज़्यादा होता है.

दो अलग-अलग फ़्रीक्वेंसी पर एक ही इनपुट वोल्टेज मिलने पर, वाइब्रेशन आउटपुट और डाइमेंशन में फ़र्क़ हो सकता है. एलआरए की फ़्रीक्वेंसी से बहुत दूर है रेज़ोनेंट फ़्रीक्वेंसी, इसका वाइब्रेशन एम्प्लिट्यूड जितना कम होता है.

किसी डिवाइस पर एलआरए का एक सामान्य फ़ंक्शन, बटन के अनुभव को सिम्युलेट करना है जवाब नहीं देने वाली कांच की सतह पर क्लिक करें. इससे लोगों को यह एहसास होता है कि और प्राकृतिक. वर्चुअल कीबोर्ड पर टाइपिंग के लिए लागू किए जाने पर, फ़ीडबैक बटन पर क्लिक करके टाइपिंग की स्पीड को बढ़ाने और गड़बड़ियों को कम करने के लिए. क्लिक करने पर मिलने वाला साफ़ और सटीक सुझाव आम तौर पर, यह अवधि 10 से 20 मिलीसेकंड से कम होती है. अच्छा क्लिक पाना को डिवाइस में इस्तेमाल होने वाले LRA की थोड़ी जानकारी की ज़रूरत होती है. इसलिए, इन प्री-फ़ैब्रिकेटेड वेवफ़ॉर्म, किसी क्लिक के लिए सबसे अच्छा फ़ीडबैक देते हैं. Google Analytics 4 पर माइग्रेट करने के लिए, इसमें प्लैटफ़ॉर्म के ज़रिए मिलने वाले कॉन्सटेंट शामिल किए जाते हैं. की ज़रूरत नहीं है.

डिवाइस में होने वाले हैप्टिक इफ़ेक्ट, दोनों वाइब्रेशन से तय होते हैं एक्चुएटर और उसके ड्राइवर. हैप्टिक ड्राइवर, जिनमें ओवरड्राइव और ऐक्टिव मोड शामिल हैं ब्रेकिंग फ़ीचर से, एलआरए के घटने और आवाज़ को कम करने में मदद मिलती है. इससे रिस्पॉन्सिव और साफ़ वाइब्रेशन. उदाहरण के लिए, आइए देखते हैं कि कस्टम वेवफ़ॉर्म पैटर्न, सामान्य डिवाइस पर काम करता है.

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 मि॰से॰ तक चलती है घटकर शून्य हो जाता है.

आयाम को बढ़ाकर या घटाकर इस हैप्टिक पैटर्न को बेहतर बनाया जा सकता है ओवरशूट से बचने और घंटी बजने का समय कम करने के लिए, धीरे-धीरे कॉल करें. नीचे दी गई जानकारी से पता चलता है कि अपडेट किए गए वर्शन के वेवफ़ॉर्म और ऐक्सलरेशन प्लॉट.

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 के एपीआई ऐसे कॉन्सटेंट उपलब्ध कराते हैं जो आपको ये काम करने होंगे:

  • साफ़ इफ़ेक्ट और प्राइमिटिव इस्तेमाल करें.

  • इन्हें जोड़ें और नए हैप्टिक इफ़ेक्ट तैयार करें.

ये पहले से तय हैप्टिक कॉन्सटेंट और प्रिमिटिव हैं. इनकी मदद से, काफ़ी तेज़ी से काम किया जा सकता है साथ ही, अच्छी क्वालिटी का हैप्टिक इफ़ेक्ट दें.