پیاده‌سازی ثابت‌ها و عناصر اولیه

ثابت‌ها و عناصر اولیه لمسی توسط HAL لرزاننده تعریف می‌شوند و توسط چارچوب Android به APIهای عمومی نگاشت می‌شوند. این بررسی‌ها را انجام دهید تا مشخص شود آیا دستگاه شما حداقل الزامات لازم برای پیاده‌سازی فناوری لمسی را دارد یا خیر:

روندنمای فرایند پیاده‌سازی لمسی‌ها

شکل ۲. درحال پیاده‌سازی جلوه‌ها

روندنمای مراحل پیاده‌سازی
عناصر اولیه

شکل ۳. پیاده‌سازی عناصر اولیه

پیاده‌سازی ثابت‌ها

توسعه‌دهندگان می‌توانند از ثابت‌های لمسی در VibrationEffect ازطریق VibrationEffect.createPredefined() استفاده کنند. وضعیت پیاده‌سازی ثابت‌های لمسی زیر را بررسی کنید.

ثابت‌های فناوری لمسی مکان‌ها و خلاصه‌ها
EFFECT_TICK، EFFECT_CLICK، EFFECT_HEAVY_CLICK، EFFECT_DOUBLE_CLICK VibrationEffect کلاس
ثابت‌های لمسی در VibrationEffect هیچ مفهومی از رویدادهای ورودی ندارند و هیچ عنصر واسط کاربری ندارند. به‌جای آن، ثابت‌ها شامل مفهوم سطوح انرژی، مثل EFFECT_CLICK و EFFECT_HEAVY_CLICK، می‌شوند که با createPredefined() فراخوانده می‌شوند.

لرزش‌های جایگزین که در ادامه توضیح داده شده است در دستگاه‌هایی اجرا می‌شود که ثابت‌های VibrationEffect را پیاده‌سازی نمی‌کنند. توصیه می‌شود این پیکربندی‌ها را به‌روز کنید تا در این دستگاه‌ها بهترین عملکرد را داشته باشند.

  • EFFECT_CLICK

    لرزش شکل موج با VibrationEffect.createWaveform ایجاد شد و زمان‌بندی‌ها در frameworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern پیکربندی شد.

  • EFFECT_HEAVY_CLICK

    لرزش شکل موج با VibrationEffect.createWaveform ایجاد شد و زمان‌بندی‌ها در frameworks/base/core/res/res/values/config.xml##config_longPressVibePattern پیکربندی شد.

    • EFFECT_DOUBLE_CLICK

    لرزش شکل موج ایجادشده با VibrationEffect.createWaveform و زمان‌بندی‌ها (۰، ۳۰، ۱۰۰، ۳۰).

  • EFFECT_TICK

    لرزش شکل موج با VibrationEffect.createWaveform ایجاد شد و زمان‌بندی‌ها در frameworks/base/core/res/res/values/config.xml##config_clockTickVibePattern پیکربندی شد.

جریان‌نمای مراحل آزمایش بازخورد لمسی

شکل ۴. پیاده‌سازی ثابت‌های بازخورد

توسعه‌دهندگان می‌توانند از ثابت‌های لمسی در HapticFeedbackConstants ازطریق View.performHapticFeedback() استفاده کنند. وضعیت ثابت‌های بازخورد عمومی زیر را بررسی کنید.

ثابت‌های فناوری لمسی مکان‌ها و خلاصه‌ها
‫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
ثابت‌های لمسی در HapticFeedbackConstants به رویدادهای ورودی با عناصر میانای کاربر خاص، مانند KEYBOARD_PRESS و KEYBOARD_RELEASE، که توسط performHapticFeedback() فراخوانی می‌شوند، کمک می‌کنند.

پیاده‌سازی عناصر اولیه

عناصر لمسی در VibrationEffect.Composition شدت مقیاس‌پذیری دارند که توسعه‌دهندگان می‌توانند ازطریق addPrimitive(int primitiveId, float scale, int delay) از آن استفاده کنند. این عناصر اولیه را می‌توان به دو دسته تقسیم کرد:

  • عناصر اولیه کوتاه: عناصر اولیه با مدت کوتاه، معمولاً کمتر از ۲۰ میلی‌ثانیه. این عناصر CLICK، TICK، و LOW_TICK هستند.

  • اولیه جیک‌جیک: اولیه‌هایی با دامنه و فرکانس متغیر، معمولاً با مدت زمان طولانی‌تر از اولیه‌های کوتاه. این‌ها SLOW_RISE، QUICK_RISE،‏ QUCK_FALL،‏ THUD، و SPIN هستند.

عناصر اولیه کوتاه

عناصر اولیه کوتاه را می‌توان با نمایه شتاب خروجی موتور لرزاننده توصیف کرد. بسامد مطلق استفاده‌شده برای هر عنصر اولیه متفاوت است، بسته به بسامد تشدید محرک. برای کسب اطلاعات بیشتر درباره راه‌اندازی سخت‌افزار و ابزارهای اندازه‌گیری خروجی، راه‌اندازی تجهیزات آزمایش را ببینید.

نسبت نبض به زنگ (PRR) که در «شکل ۵» نشان داده شده است، سنجه کیفیت ارزشمندی برای لرزش‌های کوتاه است. «نسبت پالس به زنگ» (PRR) به‌عنوان نسبت بین پالس اصلی، که با سیگنال داخل پنجره مدت‌زمان تعریف می‌شود که در آن دامنه به ۱۰٪ دامنه اوج کاهش می‌یابد، و پالس زنگ، که با سیگنال تعریف می‌شود که در آن دامنه از ۱۰٪ دامنه اوج به کمتر از ۱٪ دامنه اوج کاهش می‌یابد، تعریف می‌شود. فرمول PRR به این صورت است:

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

برای اطلاعات بیشتر درباره PRR، به تجزیه‌وتحلیل شکل موج مراجعه کنید و برای اطلاعات بیشتر درباره تجزیه‌وتحلیل و مقایسه نتایج، به مقایسه نتایج بااستفاده از نقشه عملکرد مراجعه کنید.

نسبت نبض به زنگ

شکل ۵. تعریف نسبت پالس به زنگ

از عناصر اولیه کوتاه به‌عنوان بازخورد ورودی کاربر استفاده کنید یا در قطعات طولانی‌تر پخش کنید تا بافت‌های نرم ایجاد کنید. این یعنی معمولاً به‌طور مکرر راه‌اندازی می‌شوند و پشت سر هم پخش می‌شوند. شدت درک‌شده یک عنصر اولیه کوتاه می‌تواند شدت اثر بزرگ‌تر را تشدید کند. به‌همین دلیل، یک تیک تکی یا عنصر اولیه تیک پایین را با ترکیب بزرگ‌تری، برای مثال ۱۰۰ تیک متوالی، کالیبره کنید.

کلیک کردن روی عنصر اولیه

عنصر کلیک یک جلوه قوی و واضح است که معمولاً نزدیک به فرکانس تشدید دستگاه عمل می‌کند تا در مدت کوتاهی به حداکثر خروجی برسد. این احساس قوی‌تر و عمیق‌تر از احساسات اولیه دیگر است و با حداکثر شدت بروز می‌کند.

اگر دردسترس است، از «اَبَرگردش موتور» در ابتدا و از «ترمز فعال» در انتها استفاده کنید تا زمان افزایش و کاهش موتور کوتاه شود. برای برخی‌از موتورها، استفاده از موج مربعی به‌جای موج سینوسی می‌تواند به شتاب سریع‌تر منجر شود. شکل ۶ نمایه شتاب خروجی نمونه‌ای را برای عنصر اولیه کلیک نشان می‌دهد:

روی نمایه شتاب برونداد اولیه کلیک کنید

شکل ۶. نمونه‌ای از نمایه شتاب برونداد برای کلیک اولیه

پارامتر رهنمود
مدت

هدف: ۱۲ میلی‌ثانیه

محدودیت: < ۳۰ میلی‌ثانیه

شتاب برونداد اوج

هدف: 2 G

محدودیت: > ۱ گیگابایت

بسامد تقریباً در بسامد تشدید

تیک اولیه (تیک روشن)

واحد اولیه تیک یک جلوه کوتاه و تیز است که معمولاً در محدوده فرکانس بالاتر عمل می‌کند. این عنصر اولیه را می‌توان به‌عنوان کلیک با شدت متوسط در فرکانس بالاتر با دنباله کوتاه نیز توصیف کرد. همین راهنمایی برای دستیابی به زمان افزایش کوتاه بااستفاده از اوردرایو موتور یا موج مربعی برای شروع اولیه و ترمز فعال در افست اعمال می‌شود. شکل ۷ نمونه‌ای از برونداد نمایه شتاب برای عنصر اولیه تیک را نشان می‌دهد:

انتخاب کردن نمایه شتاب برونداد اولیه

شکل ۷. نمونه نمایه شتاب برونداد برای علامت تیک اولیه

پارامتر رهنمود
مدت

هدف: ۵ میلی‌ثانیه

محدودیت: < ۲۰ میلی‌ثانیه

شتاب برونداد اوج

هدف: نصف CLICK، ۱ G

محدودیت: بین ۰٫۵ G و ۱ G

بسامد

هدف: ۲ برابر بسامد تشدید

محدوده: < 500 Hz

واحد شمارش پایین

واحد اولیه تیک ضعیف نسخه نرم‌تر و ضعیف‌تری از تیک قوی است که در محدوده فرکانسی پایین‌تری کار می‌کند تا به جلوه حجم بیشتری بدهد. این عنصر اولیه را می‌توان به‌عنوان کلیک با شدت متوسط در فرکانس پایین‌تر نیز توصیف کرد که برای استفاده مکرر در بازخورد پویا درنظر گرفته شده است. همین راهنمایی برای دستیابی به زمان صعود کوتاه بااستفاده از موتور با سرعت بالا یا موج مربعی برای شروع اولیه اعمال می‌شود. شکل ۸ نمونه‌ای از نمایه شتاب برونداد را برای عنصر اولیه تیک پایین نشان می‌دهد:

نمایه شتاب برونداد اولیه با تیک پایین

شکل ۸. نمونه نمایه شتاب خروجی برای تیک پایین اولیه

پارامتر رهنمود
مدت

هدف: ۱۲ میلی‌ثانیه

محدودیت: < ۳۰ میلی‌ثانیه

شتاب برونداد اوج

هدف: ۱/۴ از TICK، ۰٫۲۵ گرم

محدودیت: بین ۰٫۲ G و ۰٫۵ G

بسامد

هدف: ۲/۳ بسامد تشدید

محدوده: < 100 هرتز

عناصر اولیه Chirp

عناصر اولیه Chirp را می‌توان با سیگنال‌های ورودی برای سطح ولتاژ و فرکانس لرزش توصیف کرد. شتابی که موتور می‌تواند در محدوده‌های فرکانسی مختلف تولید کند بسته به منحنی پاسخ فرکانسی عملگر متفاوت است. محدوده‌های فرکانس و سطوح ولتاژ باید براساس هر دستگاه تنظیم شوند.

افزایش آهسته اولیه

«افزایش آهسته» یک جاروب فرکانس و دامنه آهسته به‌سمت بالا با شروعی ملایم و افزایش مداوم شدت لرزش درطول جاروب است. این صدا می‌تواند با جاروب کردن مداوم هم دامنه و هم فرکانس، بااستفاده از محدوده فرکانسی پایین‌تر که خارج از رزونانس عمل می‌کند، پیاده‌سازی شود. شکل ۹ پارامترهای ورودی و نمونه‌ای از نمایه شتاب خروجی را برای این پیاده‌سازی نشان می‌دهد. (خط قرمز با برچسب‌های دامنه در سمت چپ مطابقت دارد و نشان می‌دهد که دامنه لرزش چگونه با زمان تغییر می‌کند. خط آبی با برچسب‌های بسامد در سمت چپ مطابقت دارد و نشان می‌دهد که بسامد لرزش چگونه با زمان تغییر می‌کند.)

پارامترهای ورودی و نمایه شتاب خروجی برای عنصر اولیه افزایش آهسته

شکل ۹. پارامترهای ورودی و نمونه نمایه شتاب خروجی برای عنصر اولیه با افزایش آهسته

اگر پاسخ فرکانسی موتور محدود باشد (به‌اندازه کافی خارج از فرکانس تشدید آن قوی نباشد)، پیاده‌سازی جایگزین، جاروب سینوسی از ۱/۲ برابر تا ۱ برابر فرکانس تشدید است. تشدید موتور به رسیدن به اوج سیگنال در پایان کمک می‌کند.

پارامتر رهنمود
مدت

هدف: ۵۰۰ میلی‌ثانیه

انعطاف‌پذیری: ۲۰ میلی‌ثانیه

شتاب برونداد اوج

هدف: ۰٫۵ گیگابایت

محدوده: بین ۰٫۵ گیگابایت و ۱ گیگابایت

بسامد

هدف: ۱/۲ تا ۲/۳ فرکانس تشدید

جایگزین: ۱/۲ تا بسامد تشدید

افزایش سریع اولیه

افزایش سریع عبارت است از جارو کردن سریع‌تر دامنه و بسامد به‌سمت بالا با شروع نرم و افزایش مداوم شدت لرزش در سراسر جارو. هدف‌های بسامد لرزش و شتاب خروجی باید با عنصر اولیه «افزایش تدریجی» یکسان باشد، با این تفاوت که در مدت زمان کوتاه‌تری به آن دست یابد. شکل ۱۰ پارامترهای ورودی لرزش و نمونه‌ای از نمایه شتاب خروجی برای عنصر اولیه «افزایش آهسته» را نشان می‌دهد. (خط قرمز با برچسب‌های دامنه در سمت چپ مطابقت دارد و نشان می‌دهد که دامنه لرزش چگونه با زمان تغییر می‌کند. خط آبی با برچسب‌های بسامد در سمت چپ مطابقت دارد و نشان می‌دهد که بسامد لرزش چگونه با زمان تغییر می‌کند.)

پارامترهای ورودی و نمایه شتاب خروجی برای عنصر اولیه «صعود سریع»

شکل ۱۰. پارامترهای ورودی و نمونه نمایه شتاب خروجی برای عنصر اولیه افزایش سریع

پارامتر رهنمود
مدت

هدف: ۱۵۰ میلی‌ثانیه

انعطاف‌پذیری: ۲۰ میلی‌ثانیه

شتاب خروجی اوج

هدف: مشابه SLOW_RISE

محدودیت: همانند SLOW_RISE

بسامد

هدف: مشابه SLOW_RISE

جایگزین: مشابه SLOW_RISE

سقوط سریع اولیه

افت سریع عبارت است از جارو سریع دامنه و بسامد به‌سمت پایین با شروعی ملایم. می‌توانید از فرکانس بالاتری به‌عنوان نقطه شروع استفاده کنید تا موتور به شتاب خروجی اوج برسد. فرکانس باید در سراسر جاروب به‌طور پیوسته کاهش یابد، حتی درطول زمان افزایش. شکل ۱۱ پارامترهای ورودی و یک نمایه شتاب خروجی نمونه را برای این پیاده‌سازی نشان می‌دهد. (خط قرمز با برچسب‌های دامنه در سمت چپ مطابقت دارد و نشان می‌دهد که دامنه لرزش چگونه با زمان تغییر می‌کند. خط آبی با برچسب‌های بسامد در سمت چپ مطابقت دارد و نشان می‌دهد که بسامد لرزش چگونه با زمان تغییر می‌کند.)

پارامترهای ورودی و نمایه شتاب خروجی برای سقوط سریع اولیه

شکل ۱۱. پارامترهای ورودی و نمونه نمایه شتاب خروجی برای نمونه اولیه سقوط سریع

پارامتر رهنمود
مدت

هدف: ۱۰۰ میلی‌ثانیه

انعطاف‌پذیری: ۲۰ میلی‌ثانیه

شتاب برونداد اوج

هدف: ۱ گیگابایت

محدودیت: بین ۰٫۵ G و ۲ G

بسامد

هدف: ۲ برابر تا ۱ برابر بسامد تشدید

Thud primitive

صدای بم، جلوه‌ای کوبه‌ای، بم، و ضربه‌ای است که حس فیزیکی ضربه زدن به چوب توخالی را شبیه‌سازی می‌کند. این عنصر اولیه در محدوده فرکانس پایین، مشابه عنصر اولیه تیک پایین، عمل می‌کند تا به جلوه عمق بیشتری ببخشد. می‌توانید عنصر اولیه «صدای ضربه» را به‌عنوان یک جاروب کاهشی در دامنه و بسامد در محدوده بسامد پایین‌تر (ترجیحاً کمتر از ۱۰۰ هرتز) پیاده‌سازی کنید. شکل ۱۲ پارامترهای ورودی و یک نمایه شتاب خروجی نمونه را برای این پیاده‌سازی نشان می‌دهد. (خط قرمز با برچسب‌های دامنه در سمت چپ مطابقت دارد و نشان می‌دهد که دامنه لرزش چگونه با زمان تغییر می‌کند. خط آبی با برچسب‌های بسامد در سمت چپ مطابقت دارد و نشان می‌دهد که بسامد لرزش چگونه با زمان تغییر می‌کند.)

پارامترهای ورودی و نمایه شتاب خروجی برای عنصر اولیه «صدای افتادن»

شکل ۱۲. پارامترهای ورودی و نمونه نمایه شتاب خروجی برای عنصر پایه صدای بم

اگر پاسخ فرکانسی موتور محدود باشد، پیاده‌سازی جایگزین این است که با سیگنال محرک با شدت کامل در فرکانس تشدید شروع شود و به پایین‌ترین فرکانس ممکن که هنوز قابل‌درک است کاهش یابد. این رویکرد ممکن است نیاز به افزایش شدت سیگنال درایو در فرکانس پایین‌تر داشته باشد تا لرزش احساس شود.

پارامتر رهنمود
مدت

هدف: ۳۰۰ میلی‌ثانیه

انعطاف‌پذیری: ۲۰ میلی‌ثانیه

شتاب برونداد اوج

هدف: ۰٫۲۵ G

محدودیت: بین ۰٫۲ G و ۰٫۵ G

بسامد

هدف: ۱/۲ تا ۱/۳ فرکانس تشدید

جایگزین: ۱ تا ۱/۲ فرکانس تشدید

چرخش اولیه

چرخش، حرکت چرخشی سریع به بالا و پایین را با تأکید جزئی در مرکز شبیه‌سازی می‌کند. چرخش را می‌توان با جاروب کردن دامنه و فرکانس به‌طور مستقل، در جهت‌های مخالف و به‌دنبال آن حرکت معکوس اجرا کرد. استفاده از محدوده بسامد پایین‌تر (ترجیحاً کمتر از ۱۰۰ هرتز) مهم است. شکل ۱۳ پارامترهای ورودی و یک نمایه شتاب خروجی نمونه را برای این پیاده‌سازی نشان می‌دهد. (خط قرمز با برچسب‌های دامنه در سمت چپ مطابقت دارد و نشان می‌دهد که دامنه لرزش چگونه با زمان تغییر می‌کند. خط آبی با برچسب‌های بسامد در سمت چپ مطابقت دارد و نشان می‌دهد که بسامد لرزش چگونه با زمان تغییر می‌کند.)

توصیه می‌کنیم که برای دستیابی به حس چرخش و ناپایداری، عنصر پایه چرخش دو بار پشت‌سرهم یا سه بار در ترکیب‌بندی‌ها فراخوانی شود.

اگر پاسخ فرکانسی موتور محدود باشد، پیاده‌سازی جایگزین این است که یک جاروب سینوسی سریع از ۱/۲ برابر تا ۱ برابر فرکانس تشدید و برعکس انجام شود. رزونانس موتور به‌طور خودکار به سیگنال در وسط تأکید می‌کند.

پارامترهای ورودی و نمایه شتاب خروجی برای چرخش اولیه

شکل ۱۳. پارامترهای ورودی و نمونه نمایه شتاب خروجی برای چرخش ابتدایی

پارامتر رهنمود
مدت

هدف: ۱۵۰ میلی‌ثانیه

انعطاف‌پذیری: ۲۰ میلی‌ثانیه

شتاب برونداد اوج

هدف: ۰٫۵ G

محدودیت: بین ۰٫۲۵ G و ۰٫۷۵ G

بسامد

هدف: ۲/۳ تا ۱/۳، سپس برگشت به ۱/۲ فرکانس تشدید

جایگزین: ۲/۳ تا ۱ برابر، سپس برگشت به ۱/۲ فرکانس تشدید