पीसवाइज़ लीनियर एनवलप (पीडब्लूएलई) इफ़ेक्ट, समय के साथ वाइब्रेशन की फ़्रीक्वेंसी और ऐक्सलरेशन तय करने वाले पॉइंट के सीक्वेंस होते हैं. पीडब्लूएलई, हैप्टिक फ़ीडबैक को ज़्यादा बेहतर और डाइनैमिक बनाते हैं.
Android 16 और इसके बाद के वर्शन में, पीडब्लूएलई इफ़ेक्ट बनाने के लिए, ऐप्लिकेशन डेवलपर को दो एपीआई मिलते हैं:
- बेसिक पीडब्लूएलई एपीआई: यह आसान है, लेकिन इसमें कुछ सीमाएं हैं. यह एपीआई, पीडब्लूएलई इफ़ेक्ट बनाने की शुरुआत करने के लिए अच्छा है. यह
BasicEnvelopeBuilderपर उपलब्ध है. - ऐडवांस पीडब्लूएलई एपीआई: इससे ज़्यादा कंट्रोल और फ़्लेक्सिबिलिटी मिलती है. इसके लिए, हैप्टिक्स की जानकारी और हार्डवेयर के बारे में थोड़ी जानकारी होना ज़रूरी है. यह
WaveformEnvelopeBuilderपर उपलब्ध है.
इन एपीआई के साथ काम करने के लिए, डिवाइसों को ये HAL एपीआई लागू करने होंगे:
- रेज़ोनेंट फ़्रीक्वेंसी: यह ऐक्चुएटर की रेज़ोनेंट फ़्रीक्वेंसी की जानकारी देता है.
- फ़्रीक्वेंसी से आउटपुट ऐक्सलरेशन मैपिंग (एफ़ओएएम): यह डिवाइस के लिए, वाइब्रेशन की फ़्रीक्वेंसी को ज़्यादा से ज़्यादा आउटपुट ऐक्सलरेशन से मैप करता है.
- कंपोज़ पीडब्लूएलई: यह वाइब्रेशन वेवफ़ॉर्म के पीडब्लूएलई से तय किया गया वाइब्रेशन चलाता है.
बेसिक पीडब्लूएलई एपीआई
हार्डवेयर या लोगों के परसेप्शन की बारीकियों में जाए बिना, पीडब्लूएलई इफ़ेक्ट बनाने के लिए, डेवलपर बेसिक पीडब्लूएलई एपीआई का इस्तेमाल कर सकते हैं. इसे इन पैरामीटर का इस्तेमाल करके तय किया जाता है:
- [0, 1] के दायरे में इंटेंसिटी की वैल्यू, वाइब्रेशन की परसीव्ड स्ट्रेंथ को दिखाती है. उदाहरण के लिए, 0.5 वैल्यू को, डिवाइस से हासिल की जा सकने वाली ग्लोबल मैक्सिमम इंटेंसिटी के आधे के तौर पर परसीव किया जाता है.
- [0, 1] के दायरे में शार्पनेस की वैल्यू, वाइब्रेशन की क्रिस्पनेस को दिखाती है. कम वैल्यू से वाइब्रेशन स्मूद होते हैं, जबकि ज़्यादा वैल्यू से ज़्यादा शार्प सेंसेशन मिलता है.
- ड्यूरेशन का मतलब है, मिलीसेकंड में, पीडब्लूएलई के आखिरी पॉइंट (यानी, इंटेंसिटी और शार्पनेस की जोड़ी) से नए पॉइंट पर ट्रांज़िशन में लगने वाला समय.
यहां एक वेवफ़ॉर्म का उदाहरण दिया गया है. इसमें 500 मिलीसेकंड में, कम पिच से ज़्यादा पिच वाली मैक्सिमम-स्ट्रेंथ वाइब्रेशन तक इंटेंसिटी बढ़ती है. इसके बाद, 100 मिलीसेकंड में यह 0 (बंद) हो जाती है:
VibrationEffect effect = new VibrationEffect.BasicEnvelopeBuilder()
.setInitialSharpness(0.0f)
.addControlPoint(1.0f, 1.0f, 500)
.addControlPoint(0.0f, 1.0f, 100)
.build();
कंस्ट्रेंट
स्मूद और सीमलेस हैप्टिक अनुभव देने के लिए, पीडब्लूएलई इफ़ेक्ट 0.0 की इंटेंसिटी से शुरू और खत्म होने चाहिए. एपीआई, शुरुआती इंटेंसिटी को 0 पर फ़िक्स करके, इस शर्त को लागू करता है. साथ ही, अगर आखिरी इंटेंसिटी 0 नहीं होती, तो यह एक अपवाद दिखाता है. इस कंस्ट्रेंट से, ऐम्प्लिट्यूड में होने वाली गड़बड़ियों की वजह से, वाइब्रेशन में अनचाहे डाइनैमिक इफ़ेक्ट नहीं होते. इससे, उपयोगकर्ता के हैप्टिक परसेप्शन पर बुरा असर पड़ सकता है.
Android इकोसिस्टम में, पीडब्लूएलई इफ़ेक्ट को एक जैसा रेंडर करने के लिए, फ़्रेमवर्क के लिए ज़रूरी है कि इस सुविधा के साथ काम करने वाले डिवाइस, पीडब्लूएलई पॉइंट के बीच कम से कम 20 मिलीसेकंड का ड्यूरेशन और पीडब्लूएलई इफ़ेक्ट के लिए कम से कम 16 पॉइंट हैंडल कर सकें. वीटीएस टेस्ट, इन ज़रूरी शर्तों को लागू करते हैं. इससे, Android डिवाइसों पर पीडब्लूएलई इफ़ेक्ट को भरोसेमंद तरीके से रेंडर किया जा सकता है.
ऐडवांस पीडब्लूएलई एपीआई
हैप्टिक्स की बेहतर जानकारी रखने वाले डेवलपर, इन शर्तों का इस्तेमाल करके पीडब्लूएलई इफ़ेक्ट तय कर सकते हैं:
- [0, 1] के दायरे में ऐम्प्लिट्यूड की वैल्यू, दी गई फ़्रीक्वेंसी पर हासिल की जा सकने वाली स्ट्रेंथ को दिखाती है. इसे डिवाइस के एफ़ओएएम से तय किया जाता है. उदाहरण के लिए, 0.5 वैल्यू से, दी गई फ़्रीक्वेंसी पर हासिल की जा सकने वाले मैक्सिमम आउटपुट ऐक्सलरेशन का आधा जनरेट होता है.
- फ़्रीक्वेंसी को सीधे हर्ट्ज़ में तय किया जाता है.
- ड्यूरेशन का मतलब है, मिलीसेकंड में, पीडब्लूएलई के आखिरी पॉइंट से नए पॉइंट पर ट्रांज़िशन में लगने वाला समय.
यहां एक वेवफ़ॉर्म का उदाहरण दिया गया है. इसमें वाइब्रेटर, 100 मिलीसेकंड में 120 हर्ट्ज़ पर बंद से पूरे ऐम्प्लिट्यूड तक वाइब्रेट करता है. इसके बाद, 200 मिलीसेकंड तक उसी स्थिति में रहता है. फिर, 100 मिलीसेकंड में वापस बंद हो जाता है:
VibrationEffect effect = new VibrationEffect.WaveformEnvelopeBuilder()
.addControlPoint(1.0f, 120f, 100)
.addControlPoint(1.0f, 120f, 200)
.addControlPoint(0.0f, 120f, 100)
.build();
कंस्ट्रेंट
फ़्रेमवर्क, डेवलपर की ओर से दी गई फ़्रीक्वेंसी और ऐम्प्लिट्यूड की वैल्यू में बदलाव नहीं करता. हालांकि, स्मूद ट्रांज़िशन के लिए, यह 0 ऐम्प्लिट्यूड का शुरुआती पॉइंट जोड़ता है.
डेवलपर को यह पक्का करना होता है कि उनके पीडब्लूएलई इफ़ेक्ट में तय की गई फ़्रीक्वेंसी, डिवाइस के एफ़ओएएम से तय किए गए डिवाइस के सपोर्टेड दायरे में हो. अगर वैल्यू इन सीमाओं से ज़्यादा होती हैं, तो डिवाइस कोई वाइब्रेशन नहीं चलाता.
फ़्रीक्वेंसी से आउटपुट ऐक्सलरेशन मैपिंग (एफ़ओएएम)
पीडब्लूएलई एपीआई के साथ काम करने के लिए, डिवाइस की फ़्रीक्वेंसी से आउटपुट ऐक्सलरेशन की क्षमताओं को सटीक तरीके से दिखाना ज़रूरी है. इस सेक्शन में, इस डेटा की अहमियत, पीडब्लूएलई एपीआई इसका इस्तेमाल कैसे करते हैं, और इसे जनरेट करने की प्रोसेस के बारे में बताया गया है.
मैपिंग को समझना
पीडब्लूएलई इफ़ेक्ट के साथ काम करने वाले डिवाइसों को, फ़्रीक्वेंसी से आउटपुट ऐक्सलरेशन मैप (एफ़ओएएम) देना होता है. एफ़ओएएम, HAL से जनरेट किया गया एक डेटा स्ट्रक्चर है. यह वाइब्रेशन की फ़्रीक्वेंसी (हर्ट्ज़ में) को, उस फ़्रीक्वेंसी पर ऐक्चुएटर के ज़्यादा से ज़्यादा आउटपुट ऐक्सलरेशन (जी पीक में) से मैप करता है. यह मैप, सपोर्टेड फ़्रीक्वेंसी के दायरे के लिए, वाइब्रेशन आउटपुट में होने वाले बदलावों को समझने और बेसिक पीडब्लूएलई एपीआई को तय करने के लिए ज़रूरी है.
नीचे दिए गए प्लॉट में, एक सामान्य रेज़ोनेंट ऐक्चुएटर के लिए एफ़ओएएम का उदाहरण दिखाया गया है. इसमें मोटर को सुरक्षित रखने के लिए, इनपुट वोल्टेज को रेज़ोनेंट फ़्रीक्वेंसी के आस-पास सीमित किया गया है:
पहली इमेज. एक सामान्य रेज़ोनेंट ऐक्चुएटर के लिए एफ़ओएएम का उदाहरण.
एफ़ओएएम, तीन मुख्य मकसद पूरे करता है:
- पूरी फ़्रीक्वेंसी का दायरा तय करना: एफ़ओएएम, डिवाइस की पूरी फ़्रीक्वेंसी का दायरा तय करता है. इसके लिए, सपोर्टेड वाइब्रेशन की कम से कम और ज़्यादा से ज़्यादा फ़्रीक्वेंसी तय की जाती है.
- इंटेंसिटी और शार्पनेस की वैल्यू तय करना: बेसिक पीडब्लूएलई एपीआई, इंटेंसिटी और शार्पनेस के लिए, लोगों के परसेप्शन के स्केल पर काम करता है. इसके बाद, इन्हें एफ़ओएएम में आउटपुट ऐक्सलरेशन की वैल्यू का इस्तेमाल करके, हार्डवेयर की फ़्रीक्वेंसी और ऐम्प्लिट्यूड पैरामीटर से मैप किया जाता है. इस मैपिंग से यह पक्का करने में मदद मिलती है कि हैप्टिक इफ़ेक्ट, हार्डवेयर की क्षमताओं के मुताबिक रेंडर किए जाएं. शार्पनेस का दायरा परसीव किए जा सकने वाले कम से कम थ्रेशोल्ड से तय होता है. यह उन फ़्रीक्वेंसी से मेल खाता है जहां डिवाइस, हैप्टिक इफ़ेक्ट जनरेट कर सकता है. इन इफ़ेक्ट को उपयोगकर्ता महसूस कर सकते हैं. फ़्रेमवर्क, चुनी गई फ़्रीक्वेंसी पर टारगेट आउटपुट ऐक्सलरेशन के आधार पर, इंटेंसिटी की वैल्यू को ऐम्प्लिट्यूड से मैप करता है. इससे यह पक्का करने में मदद मिलती है कि डिवाइस की क्षमताओं के दायरे में रहते हुए, इंटेंसिटी का चुना गया लेवल हासिल किया जाए.
- हार्डवेयर की क्षमताओं को दिखाना: एफ़ओएएम, डेवलपर को
VibratorFrequencyProfileमें दिखता है. इससे, फ़्रीक्वेंसी से आउटपुट ऐक्सलरेशन का पूरा डेटासेट मिलता है. इसमें डिवाइस की कुछ हैप्टिक क्षमताओं के बारे में जानकारी होती है. इस डेटा की मदद से, ऐडवांस पीडब्लूएलई एपीआई का इस्तेमाल करने वाले डेवलपर, वाइब्रेशन के कस्टम इफ़ेक्ट बना सकते हैं. ये इफ़ेक्ट, फ़्रेमवर्क से तय किए गए इंटेंसिटी और शार्पनेस के बेसिक दायरों से आगे होते हैं.
एफ़ओएएम और बेसिक पीडब्लूएलई एपीआई
एफ़ओएएम, वाइब्रेशन इफ़ेक्ट को आकार देने में अहम भूमिका निभाता है. इसका इस्तेमाल, बेसिक एनवलप एपीआई के लिए शार्पनेस का दायरा कैलकुलेट करने के लिए किया जाता है. इससे यह पक्का होता है कि वाइब्रेशन, उपयोगकर्ता को महसूस हो. यह दायरा, उन फ़्रीक्वेंसी से मेल खाता है जहां आउटपुट ऐक्सलरेशन, लोगों के परसेप्शन के डिटेक्शन थ्रेशोल्ड (यानी, परसीव किए जा सकने वाले कम से कम लेवल) से 10 डीबी ज़्यादा होता है. यह दायरा, वहां तक होता है जहां आउटपुट ऐक्सलरेशन, उस थ्रेशोल्ड से ज़्यादा होता है. इस दायरे में, ऐक्चुएटर की रेज़ोनेंट फ़्रीक्वेंसी शामिल होनी चाहिए.
इसके अलावा, फ़्रेमवर्क, एफ़ओएएम डेटा का इस्तेमाल करके, बेसिक पीडब्लूएलई एपीआई में इस्तेमाल की गई इंटेंसिटी और शार्पनेस की वैल्यू को, उनके संबंधित ऐम्प्लिट्यूड और फ़्रीक्वेंसी की वैल्यू से मैप करता है. इस मैपिंग से, अलग-अलग डिवाइसों पर परसीव किए जा सकने वाले हैप्टिक फ़ीडबैक जनरेट करने में मदद मिलती है.
वीटीएस टेस्ट, यह पक्का करते हैं कि एनवलप इफ़ेक्ट के साथ काम करने वाले डिवाइसों में, फ़्रीक्वेंसी का ऐसा दायरा हो जिससे परसीव किए जा सकने वाले वाइब्रेशन जनरेट हों. साथ ही, यह भी पक्का करते हैं कि उस दायरे में, ऐक्चुएटर की रेज़ोनेंट फ़्रीक्वेंसी शामिल हो. इससे यह पक्का करने में मदद मिलती है कि डिवाइस, इतनी इंटेंसिटी वाले वाइब्रेशन जनरेट कर सके जिन्हें उपयोगकर्ता साफ़ तौर पर महसूस कर सकें.
एफ़ओएएम और ऐडवांस पीडब्लूएलई एपीआई
एफ़ओएएम, डेवलपर को VibratorFrequencyProfile में दिखता है. इसमें यह
जानकारी शामिल होती है:
- फ़्रीक्वेंसी का दायरा: डेवलपर, डिवाइस की कम से कम और
ज़्यादा से ज़्यादा सपोर्टेड फ़्रीक्वेंसी (हर्ट्ज़ में) हासिल कर सकते हैं. इसके लिए, वे
getMinFrequencyHzऔरgetMaxFrequencyHzका इस्तेमाल कर सकते हैं. - मैक्सिमम आउटपुट ऐक्सलरेशन: डिवाइस का ज़्यादा से ज़्यादा आउटपुट
ऐक्सलरेशन (जी में),
getMaxOutputAccelerationGsके ज़रिए उपलब्ध होता है. - फ़्रीक्वेंसी से आउटपुट ऐक्सलरेशन मैपिंग:
getFrequenciesOutputAcceleration`getFrequenciesOutputAcceleration`, HAL में लागू की गई फ़्रीक्वेंसी से आउटपुट ऐक्सलरेशन मैपिंग की जानकारी देता है.
ऐडवांस पीडब्लूएलई एपीआई की मदद से, एनवलप इफ़ेक्ट बनाते समय, डेवलपर इस जानकारी का इस्तेमाल कर सकते हैं. उदाहरण के लिए, आउटपुट ऐक्सलरेशन (जी में) तय करते समय, उन्हें डिवाइस के ज़्यादा से ज़्यादा आउटपुट ऐक्सलरेशन के मुकाबले, इसे [0.0, 1.0] के दायरे में मौजूद वैल्यू के तौर पर नॉर्मलाइज़ करना होगा.
ऐडवांस पीडब्लूएलई एपीआई की मदद से, डेवलपर फ़्रीक्वेंसी के पूरे दायरे का इस्तेमाल कर सकते हैं. इसलिए, यह ज़रूरी है कि दिया गया एफ़ओएएम डेटा, वाइब्रेटर के लिए सुरक्षित हो और उसकी क्षमताओं से ज़्यादा न हो.
लोगों के परसेप्शन का डिटेक्शन थ्रेशोल्ड
लोगों के परसेप्शन का डिटेक्शन थ्रेशोल्ड, वाइब्रेशन के उस कम से कम ऐक्सलरेशन को दिखाता है जिसे कोई व्यक्ति भरोसेमंद तरीके से डिटेक्ट कर सकता है. यह लेवल, वाइब्रेशन की फ़्रीक्वेंसी के आधार पर अलग-अलग होता है.
नीचे दिए गए प्लॉट में, लोगों के हैप्टिक परसेप्शन का डिटेक्शन थ्रेशोल्ड1, ऐक्सलरेशन में, टेंपोरल फ़्रीक्वेंसी के फ़ंक्शन के तौर पर दिखाया गया है:
दूसरी इमेज. लोगों के हैप्टिक परसेप्शन का डिटेक्शन थ्रेशोल्ड.
ताकि उपयोगकर्ता, हैप्टिक इफ़ेक्ट को लगातार महसूस कर सकें, इसलिए वीटीएस टेस्ट यह पुष्टि करते हैं कि एनवलप की क्षमताओं वाले डिवाइसों में, फ़्रीक्वेंसी का ऐसा दायरा हो जिससे वाइब्रेशन ऐम्प्लिट्यूड जनरेट हो सकें. ये ऐम्प्लिट्यूड, लोगों के परसेप्शन के डिटेक्शन थ्रेशोल्ड से 10 डीबी ज़्यादा होने चाहिए.
परसीव्ड वाइब्रेशन इंटेंसिटी बनाम वाइब्रेशन ऐक्सलरेशन ऐम्प्लिट्यूड
वाइब्रेशन इंटेंसिटी (परसेप्शन मेज़र) का लोगों का परसेप्शन, वाइब्रेशन ऐम्प्लिट्यूड (फ़िज़िकल पैरामीटर) के साथ लीनियर तरीके से नहीं बढ़ता. पीडब्लूएलई एपीआई मानता है कि जब कोई डिज़ाइनर या डेवलपर, वाइब्रेशन की स्ट्रेंथ में होने वाले बदलावों के बारे में सोचता है, तो वह उम्मीद करता है कि परसीव्ड इंटेंसिटी, पीडब्लूएलई को फ़ॉलो करे. परसीव्ड इंटेंसिटी को सेंसेशन लेवल (एसएल) से दिखाया जाता है. इसे, उसी फ़्रीक्वेंसी पर डिटेक्शन थ्रेशोल्ड से ज़्यादा डीबी के तौर पर तय किया जाता है. इसलिए, वाइब्रेशन ऐक्सलरेशन ऐम्प्लिट्यूड (जी पीक में) को इस तरह कैलकुलेट किया जा सकता है:
\(Amplitude(G) =10^\frac{Amplitude(db)}{20}\)
इसमें, ऐम्प्लिट्यूड डीबी, एसएल और डिटेक्शन थ्रेशोल्ड (नीचे दिए गए प्लॉट में ऑर्डिनेट के साथ वैल्यू) का योग होता है. यह योग, किसी खास फ़्रीक्वेंसी पर होता है.
इस तरह, पीडब्लूएलई एपीआई यह पक्का करता है कि कंट्रोल पॉइंट की लगातार जोड़ियों के बीच, परसीव्ड इंटेंसिटी लीनियर तरीके से बदले.
नीचे दिए गए प्लॉट में, टेंपोरल फ़्रीक्वेंसी के फ़ंक्शन के तौर पर, 10, 20, 30, 40, और 50 डीबी एसएल पर वाइब्रेशन ऐक्सलरेशन लेवल2 दिखाए गए हैं. इनके साथ, लोगों के हैप्टिक परसेप्शन का डिटेक्शन थ्रेशोल्ड (0 डीबी एसएल) भी दिखाया गया है.
तीसरी इमेज. वाइब्रेशन ऐक्सलरेशन लेवल.
फ़्रीक्वेंसी से मैक्सिमम आउटपुट ऐक्सलरेशन का कर्व तय करना
इस सेक्शन में, डिवाइस से फ़्रीक्वेंसी से मैक्सिमम आउटपुट ऐक्सलरेशन का कर्व पाने के बारे में सामान्य दिशा-निर्देश दिया गया है. इसका इस्तेमाल, एफ़ओएएम डेटा जनरेट करने के लिए किया जाता है.
मैक्सिमम वोल्टेज कर्व (वी) पाना
V , वाइब्रेटर पर उसकी ऑपरेटिंग फ़्रीक्वेंसी के दायरे में सुरक्षित तरीके से लागू किया जा सकने वाला मैक्सिमम वोल्टेज है. इससे यह पक्का होता है कि वाइब्रेटर, सुरक्षित सीमाओं के अंदर काम करे. इससे, वाइब्रेटर को नुकसान नहीं होता और वाइब्रेशन आउटपुट ज़्यादा से ज़्यादा होता है.
अगर हार्डवेयर में वोल्टेज लिमिटेशन की सुविधा शामिल है, तो इसका इस्तेमाल करके, सपोर्टेड फ़्रीक्वेंसी के दायरे में हासिल किए जा सकने वाले मैक्सिमम वोल्टेज को सीधे मेज़र करें.
मैक्सिमम ऐक्सलरेशन (एम) कैलकुलेट करना
M, मैक्सिमम ऐक्सलरेशन है. इसे अलग-अलग तरीकों से कैलकुलेट किया जा सकता है. इस सेक्शन में, लीनियर रेज़ोनेंट ऐक्चुएटर (एलआरए) का इस्तेमाल करने वाले डिवाइसों के लिए एक तरीका दिखाया गया है.
इस तरीके में, दी गई फ़्रीक्वेंसी पर लागू किए गए मैक्सिमम वोल्टेज को, जी पीक में दिखाए गए संबंधित मैक्सिमम ऐक्सलरेशन की वैल्यू में बदला जाता है.
इस कन्वर्ज़न के लिए इस्तेमाल किया जाने वाला मुख्य इक्वेशन यह है:
\(\text{Accel}(w)= (\text{Vsys}\times\text{BLsys}\times\text{Loc_coeff}/\text{Rsys}/\text{MPhone})\times{w^2}/\text{Psys_abs}/{9.81}\)
इसमें:
Vsys: हैप्टिक ऐक्चुएटर पर लागू किया गया मौजूदा वोल्टेज लेवल
BLsys: वाइब्रेशन मोटर के मैग्नेटिक फ़ील्ड स्ट्रेंथ (B) और कंडक्टर लेंथ (L) का प्रॉडक्ट
Loc_coeff: मॉड्यूल लेवल के ऐक्सलरेशन को फ़ोन लेवल के ऐक्सलरेशन में बदलने के लिए, लोकेशन कोएफ़िशिएंट
Rsys: वाइब्रेशन मोटर कॉइल का इलेक्ट्रिकल रेसिस्टेंस
MPhone: डिवाइस (उदाहरण के लिए, फ़ोन) का मास
w: ड्राइविंग सिग्नल की ऐंगुलर फ़्रीक्वेंसी (रेडियन प्रति सेकंड). इसे इस तरह कैलकुलेट किया जाता है:
\(w = 2 \pi f\)
Psys_abs: दूसरे ऑर्डर के मास, डैम्पर, और स्प्रिंग सिस्टम का ऐम्प्लिट्यूड रिस्पॉन्स. इसे इस तरह कैलकुलेट किया जाता है:
\(\text{Psys_abs} = (\text{Wnsys}^2-w^2)^2+({w}\times(\text{Wnsys}/\text{Qsys}))^2\)
Wnsys: वाइब्रेटिंग सिस्टम की नैचुरल फ़्रीक्वेंसी
Qsys: वाइब्रेटिंग सिस्टम का क्वालिटी फ़ैक्टर
Loc_coeff , फ़ोन लेवल पर मेज़र किए गए ऐक्सलरेशन और मॉड्यूल लेवल पर मेज़र किए गए ऐक्सलरेशन का रेशियो है. इस अनुपात का इस्तेमाल, मॉड्यूल-लेवल के ऐक्सलरेशन रीडिंग को, फ़ोन-लेवल के बराबर ऐक्सलरेशन रीडिंग में बदलने के लिए किया जाता है. फ़ोन लेवल पर, मॉड्यूल के मूवमेंट के ऐंगुलर ऐक्सलरेशन की वजह से, ऐक्सलरेशन बढ़ जाता है. यह कोएफ़िशिएंट, उस तरह के इफ़ेक्ट के लिए होता है. इसे इस तरह कैलकुलेट किया जाता है:
\(\text{Loc_coeff} = \text{phone_acceleration} / \text{module_acceleration}\)
उदाहरण के लिए, अगर मॉड्यूल ऐक्सलरेशन 1 g है और फ़ोन ऐक्सलरेशन 2.5 g है, तो Loc_coeff = 2.5. इससे 2.5x ऐम्प्लिफ़िकेशन दिखता है.
Android फ़्रेमवर्क, फ़्रीक्वेंसी को हर्ट्ज़ की यूनिट में लेता है. इसलिए, एफ़ओएएम डेटा जनरेट करते समय, HAL को फ़्रीक्वेंसी की यूनिट को रेडियन प्रति सेकंड से हर्ट्ज़ में बदलना होगा.
एफ़ओएएम कर्व जनरेट करना
एफ़ओएएम कर्व तय करने के लिए, मैक्सिमम वोल्टेज कर्व (V) और ऐक्सलरेशन कैलकुलेशन (M) को मिलाएं:
- अपनी पसंद के दायरे में मौजूद हर फ़्रीक्वेंसी (
f) के लिए, संबंधित मैक्सिमम वोल्टेजV(f)अपने मैक्सिमम वोल्टेज कर्व से ढूंढें. - ऊपर दिए गए इक्वेशन
का इस्तेमाल करके, उस फ़्रीक्वेंसी पर मैक्सिमम ऐक्सलरेशन कैलकुलेट करें. इसके लिए,
Vsysकी जगहV(f)औरwकी जगह संबंधितfका इस्तेमाल करें. इससे आपकोM(V(f), f)मिलता है. - कैलकुलेट किया गया यह ऐक्सलरेशन, आपकी
FOAM(f)वैल्यू है.
एफ़ओएएम डेटा दिखाना
एफ़ओएएम कर्व जनरेट होने के बाद, HAL इस कर्व को FrequencyAccelerationMapEntry ऑब्जेक्ट की सूची के तौर पर दिखाता है. हर एंट्री, मैपिंग में एक पॉइंट तय करती है. इसमें, फ़्रीक्वेंसी (हर्ट्ज़ में) और उससे संबंधित मैक्सिमम आउटपुट ऐक्सलरेशन (जी पीक में) की जानकारी होती है.
इंटरमीडिएट ऐक्सलरेशन की वैल्यू तय करते समय, लीनियर इंटरपोलेशन की सटीक जानकारी को ऑप्टिमाइज़ करने के लिए, हमारा सुझाव है कि मैक्सिमम आउटपुट ऐक्सलरेशन वाली फ़्रीक्वेंसी के आस-पास, ज़्यादा फ़्रीक्वेंसी रिज़ॉल्यूशन तय करें. उदाहरण के लिए, इस फ़्रीक्वेंसी के +/- 10 हर्ट्ज़ के दायरे में, 1 हर्ट्ज़ के चरणों का इस्तेमाल करें.
डिवाइस की क्षमताएं और सीमाएं
Android 16 और इसके बाद के वर्शन के लिए, डेवलपर को अपने पीडब्लूएलई इफ़ेक्ट ऑप्टिमाइज़ करने और अलग-अलग डिवाइसों पर कंपैटिबिलिटी पक्का करने में मदद करने के लिए, Android में डिवाइस की पीडब्लूएलई क्षमताओं के बारे में क्वेरी करने के लिए, HAL एपीआई शामिल हैं. इन तरीकों से, डिवाइस की सीमाओं के बारे में जानकारी मिलती है. जैसे, पीडब्लूएलई प्रिमिटिव का कम से कम या ज़्यादा से ज़्यादा ड्यूरेशन और पीडब्लूएलई कंपोज़िशन में इस्तेमाल किए जा सकने वाले प्रिमिटिव की संख्या.
HAL एपीआई में ये शामिल हैं:
CAP_COMPOSE_PWLE_EFFECTS_V2: जब डिवाइस इस सुविधा के साथ काम करता है, तबIVibrator.getCapabilitiesसे यह वैल्यू मिलती है.getFrequencyToOutputAccelerationMap: यह एफ़ओएएम डेटा को वापस लाता है.getPwleV2PrimitiveDurationMinMillis: यह किसी भी प्रिमिटिव पीडब्लूएलई के लिए, मिलीसेकंड में तय किया गया कम से कम ड्यूरेशन वापस लाता है.getPwleV2PrimitiveDurationMaxMillis: यह किसी भी प्रिमिटिव पीडब्लूएलई के लिए, मिलीसेकंड में तय किया गया ज़्यादा से ज़्यादा ड्यूरेशन वापस लाता है.getPwleV2CompositionSizeMax: यहIVibrator.composePwleV2के साथ काम करने वाले पीडब्लूएलई प्रिमिटिव की ज़्यादा से ज़्यादा संख्या वापस लाता है.
यह जानकारी, डेवलपर को इसलिए दी जाती है, ताकि वे टारगेट डिवाइस की खास क्षमताओं के हिसाब से अपने इफ़ेक्ट तैयार कर सकें. खास तौर पर, ऐडवांस पीडब्लूएलई एपीआई का इस्तेमाल करते समय.
बेसिक एपीआई की मदद से बनाए गए इफ़ेक्ट को हैंडल करते समय भी, फ़्रेमवर्क इन एपीआई का इस्तेमाल करता है. अगर कोई इफ़ेक्ट, डिवाइस की सीमाओं से ज़्यादा होता है (उदाहरण के लिए, पीडब्लूएलई पॉइंट की संख्या बहुत ज़्यादा होना या ड्यूरेशन, ज़्यादा से ज़्यादा ड्यूरेशन से ज़्यादा होना), तो फ़्रेमवर्क, इफ़ेक्ट को अपने-आप अडजस्ट करके, तय की गई सीमाओं के अंदर कर देता है. अडजस्टमेंट की इस प्रोसेस में, डिज़ाइन के मूल मकसद और फ़ील को ज़्यादा से ज़्यादा बनाए रखने की कोशिश की जाती है.
-
थ्रेशोल्ड डेटा को, बोलानोवस्की जूनियर, एस. जे., वगैरह के लेख की पहली इमेज में दिए गए डिसप्लेसमेंट थ्रेशोल्ड से बदला गया है. "Four channels mediate the mechanical aspects of touch." Journal of the Acoustical Society of America 84(5): 1680-1694 (1988). इस ऑनलाइन ट्यूटोरियल में, ऐक्सलरेशन ऐम्प्लिट्यूड और डिसप्लेसमेंट ऐम्प्लिट्यूड के बीच कन्वर्ज़न के बारे में बताया गया है. ↩
-
डेटा का अनुमान, वेरिलो, आर. टी., वगैरह के लेख की आठवीं इमेज से लगाया गया है. "Sensation magnitude of vibrotactile stimuli." Perception &Psychophysics 6: 366-372 (1969). ↩