هاپتیک ها را پیاده سازی کنید

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

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

این صفحه یک چک لیست گام به گام برای تنظیم انطباق سخت افزار برای بهترین استفاده از API های لمسی اندروید ارائه می دهد.

شکل زیر ایجاد دانش مشترک بین سازندگان دستگاه و توسعه دهندگان را نشان می دهد که گامی حیاتی در ایجاد یک اکوسیستم منسجم است:

نمودار موارد استفاده لمسی برای توسعه دهندگان برنامه و دستگاه تولید کنندگان

شکل 1. ایجاد دانش بین سازندگان دستگاه و توسعه دهندگان

چک لیست پیاده سازی هاپتیک

  1. ثابت ها را پیاده سازی کنید

    • لیست ثابت ها برای پیاده سازی هاپتیک
  2. ابتدایی ها را پیاده سازی کنید

    • راهنمای پیاده سازی برای ترکیبات اولیه HAL.
  3. ثابت های بین HAL و API را نگاشت

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

    • دستورالعمل در مورد اثرات لمسی هدف. از این دستورالعمل ها برای بررسی سریع سخت افزار خود استفاده کنید.

در ادامه هر یک از این مراحل را با جزئیات بیشتری بررسی خواهیم کرد.

مرحله 1: ثابت ها را پیاده سازی کنید

این بررسی ها را برای تعیین اینکه آیا دستگاه شما حداقل شرایط لازم برای پیاده سازی هاپتیک را دارد انجام دهید:

فلوچارت اجرای لمسی فرآیند

شکل 2. پیاده سازی اثرات

فلوچارت مراحل پیاده سازی بدوی ها

شکل 3. پیاده سازی اولیه

وضعیت اجرای ثابت های لمسی زیر را بررسی کنید.

ثابت های هپتیک مکان ها و خلاصه ها
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 و زمان‌بندی‌ها (0، 30، 100، 30) ایجاد شد.

  • EFFECT_TICK

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

فلوچارت مراحل آزمایش لمسی بازخورد

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

وضعیت ثابت های بازخورد عمومی زیر را بررسی کنید.

ثابت های هپتیک مکان ها و خلاصه ها
CLOCK_TICK , CONTEXT_CLICK , KEYBOARD_PRESS , KEYBOARD_RELEASE , KEYBOARD_TAP , LONG_PRESS , TEXT_HANDLE_MOVE , VIRTUAL_KEY , VIRTUAL_KEY_RELEASE , CONFIRM , GESTURE_START GESTURE_END REJECT کلاس HapticFeedbackConstants
ثابت‌های هپتیک در HapticFeedbackConstants به رویدادهای ورودی با عناصر رابط کاربری خاص، مانند KEYBOARD_PRESS و KEYBOARD_RELEASE کمک می‌کنند، که توسط performHapticFeedback() فراخوانی می‌شوند.

مرحله 2: پیاده سازی اولیه

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

  • اولیه های کوتاه: ابتدایی های با مدت کوتاه، معمولا کمتر از 20 میلی ثانیه. اینها CLICK ، TICK و LOW_TICK هستند.

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

ابتدایی های کوتاه

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

یک معیار کیفیت با ارزش برای ارتعاشات کوتاه، نسبت پالس به حلقه (PRR) است که در شکل 5 نشان داده شده است. PRR به عنوان نسبت بین پالس اصلی تعریف می شود که توسط سیگنال داخل پنجره مدت زمان که دامنه به 10٪ از اوج کاهش می یابد، تعریف می شود. دامنه، و پالس حلقه ، با سیگنالی که دامنه از 10٪ دامنه اوج کاهش می یابد، تعریف می شود. به کمتر از 1٪ از دامنه پیک. برای اطلاعات بیشتر در مورد PRR، به تجزیه و تحلیل شکل موج و برای اطلاعات بیشتر در مورد تجزیه و تحلیل و مقایسه نتایج، به مقایسه نتایج با استفاده از نقشه عملکرد مراجعه کنید.

نسبت نبض به حلقه

شکل 5. تعریف نسبت پالس به حلقه

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

روی primitive کلیک کنید

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

اگر در دسترس است، از اوردرایو موتور در ابتدا و از ترمز فعال در انتها استفاده کنید تا به زمان کوتاهی برای بالا و پایین رفتن موتور برسید. برای برخی از موتورها، استفاده از موج مربعی به جای موج سینوسی می تواند به شتاب سریعتری دست یابد. شکل 6 نمونه ای از مشخصات شتاب خروجی را برای کلیک اولیه نشان می دهد:

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

شکل 6. نمونه ای از مشخصات شتاب خروجی برای کلیک اولیه

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

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

محدودیت: <30 میلی ثانیه

حداکثر شتاب خروجی

هدف: 2 گرم

محدودیت: > 1 گرم

فرکانس تقریباً در فرکانس تشدید

تیک ابتدایی (تیک سبک)

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

نمایه شتاب خروجی اولیه را علامت بزنید

شکل 7. نمونه ای از مشخصات شتاب خروجی برای تیک اولیه

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

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

محدودیت: < 20 میلی ثانیه

حداکثر شتاب خروجی

هدف: نیمی از CLICK ، 1 گرم

حد: بین 0.5 گرم و 1 گرم

فرکانس

هدف: فرکانس تشدید 2 برابر

محدودیت: < 500 هرتز

تیک کم اولیه

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

مشخصات شتاب خروجی اولیه با تیک کم

شکل 8. نمونه ای از مشخصات شتاب خروجی برای تیک ابتدایی کم

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

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

محدودیت: <30 میلی ثانیه

حداکثر شتاب خروجی

هدف: 1/4 TICK ، 0.25 گرم

حد: بین 0.2 G و 0.5 G

فرکانس

هدف: فرکانس تشدید 2/3

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

صدای جیر جیر بدوی ها

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

خیز آهسته بدوی

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

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

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

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

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

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

میزان تحمل: 20 میلی‌ثانیه

حداکثر شتاب خروجی

هدف: 0.5 گرم

حد: بین 0.5 گرم و 1 گرم

فرکانس

هدف: 1/2 تا 2/3 فرکانس تشدید

جایگزین: 1/2 به فرکانس تشدید

خیز سریع اولیه

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

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

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

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

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

میزان تحمل: 20 میلی‌ثانیه

حداکثر شتاب خروجی

هدف: مانند SLOW_RISE

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

فرکانس

هدف: مانند SLOW_RISE

جایگزین: مانند SLOW_RISE

ابتدایی سقوط سریع

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

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

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

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

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

میزان تحمل: 20 میلی‌ثانیه

حداکثر شتاب خروجی

هدف: 1 گرم

حد: بین 0.5 G و 2 G

فرکانس

هدف: 2 برابر تا 1 برابر فرکانس تشدید

Thud ابتدایی

ضربه ضربان یک اثر ضربه‌ای، کم و ضربی است که حس فیزیکی ضربه زدن به چوب توخالی را شبیه‌سازی می‌کند. این بدوی در محدوده فرکانس پایین، مشابه با تیک ابتدایی پایین، عمل می کند تا بدنه بیشتری را به اثر ارائه دهد. شما می توانید thud primitive را به عنوان یک دامنه و فرکانس رو به پایین در محدوده فرکانس پایین تر (ترجیحا کمتر از 100 هرتز) پیاده سازی کنید. شکل 12 پارامترهای ورودی و نمونه ای از مشخصات شتاب خروجی را برای این پیاده سازی نشان می دهد. (خط قرمز با برچسب‌های دامنه در سمت چپ مطابقت دارد و نشان می‌دهد که چگونه دامنه ارتعاش با زمان تغییر می‌کند. خط آبی با برچسب‌های فرکانس سمت راست مطابقت دارد و نشان‌دهنده تغییر فرکانس ارتعاش با زمان است.)

پارامترهای ورودی و مشخصات شتاب خروجی برای thud primitive

شکل 12. پارامترهای ورودی و نمونه مشخصات شتاب خروجی برای thud primitive

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

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

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

میزان تحمل: 20 میلی‌ثانیه

حداکثر شتاب خروجی

هدف: 0.25 گرم

حد: بین 0.2 G و 0.5 G

فرکانس

هدف: 1/2 تا 1/3 فرکانس تشدید

جایگزین: 1x تا 1/2 فرکانس تشدید

بدوی بدوی

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

ما توصیه می کنیم که اسپین اولیه دو بار پشت سر هم یا سه بار در ترکیبات نامیده شود تا به یک حس چرخش و ناپایدار برسد.

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

پارامترهای ورودی و مشخصات شتاب خروجی برای spin primitive

شکل 13. پارامترهای ورودی و نمونه مشخصات شتاب خروجی برای اسپین اولیه

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

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

میزان تحمل: 20 میلی‌ثانیه

حداکثر شتاب خروجی

هدف: 0.5 گرم

حد: بین 0.25 G و 0.75 G

فرکانس

هدف: 2/3 تا 1/3، سپس به 1/2 فرکانس تشدید بازگشت

جایگزین: 2/3 به 1x، سپس به 1/2 فرکانس رزونانس بازگشت

مرحله 3: ثابت ها را بین HAL و API ترسیم کنید

مرحله 3 نگاشت های توصیه شده بین ثابت های HAL عمومی و ثابت های API را ارائه می دهد. اگر سخت افزار ارزیابی شده در مرحله 1، ثابت های HAL را پیاده سازی نمی کند، از مرحله 3 برای به روز رسانی الگوهای بازگشتی توضیح داده شده در مرحله 1 به منظور تولید خروجی های مشابه استفاده کنید. نقشه برداری توسط دو مدل پیش فرض مختلف کمک می شود:

  • مدل گسسته (ساده)

    • دامنه متغیر کلیدی این مدل است. هر موجود در HAL دامنه لمسی متفاوتی را نشان می دهد.
    • این مدل حداقل نیاز مورد نیاز برای اجرای UX لمسی اولیه است.
    • یک UX لمسی پیشرفته تر به سخت افزار پیشرفته و یک مدل پیشرفته (مدل پیوسته) نیاز دارد.
  • مدل پیوسته (پیشرفته)

    • بافت و دامنه متغیرهای کلیدی این مدل هستند. هر موجود در HAL نشان دهنده بافت های لمسی متفاوتی است. دامنه هر موجودیت HAL توسط ضریب مقیاس ( S ) کنترل می شود.
    • این مدل به سخت افزار پیشرفته نیاز دارد. اگر OEM ها بخواهند از UX لمسی پیشرفته با VibrationEffect.Composition (برای بهترین استفاده از آخرین API های لمسی) استفاده کنند، پیاده سازی سخت افزار آنها با استفاده از این مدل توصیه می شود.

مدل گسسته

نگاشت تمام ثابت های عمومی ارائه شده در API با ثابت های HAL مناسب توصیه می شود. برای شروع این فرآیند، دریابید که دستگاه چند شکل موج لمسی با دامنه گسسته را می تواند در HAL تعریف کند. یک سوال خاص که حول این مفهوم ساختار یافته است به این صورت است: چند اثر لمسی تک ضربه ای با تفاوت های دامنه قابل درک انسان را می توان در تلفن من تعریف کرد؟ پاسخ به این سوال نقشه برداری را مشخص می کند.

تعریف ثابت های HAL یک فرآیند وابسته به سخت افزار است. به عنوان مثال، یک تلفن سطح پایه ممکن است تنها قابلیت های سخت افزاری برای تولید یک شکل موج لمسی را داشته باشد. دستگاه‌هایی با اجزای سخت‌افزاری پیشرفته‌تر، طیف وسیع‌تری از سطوح دامنه گسسته را تولید می‌کنند و می‌توانند شکل موج‌های لمسی متعدد را در HAL تعریف کنند. نگاشت ثابت HAL-API ثابت HAL را می گیرد (با استفاده از دامنه متوسط ​​به عنوان خط پایه)، سپس اثرات قوی تر یا ضعیف تر را از آنجا مرتب می کند.

نمودار محدوده ثابت HAL و بازخورد دامنه ها

شکل 14. محدوده ثابت HAL بر اساس دامنه

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

مدل گسسته برای ثابت HAL-API نقشه برداری

شکل 15. نگاشت ثابت HAL-API: مدل گسسته

اگر دستگاه شما فقط از دو ثابت HAL با دامنه‌های گسسته پشتیبانی می‌کند، ثابت‌های HAL سطح دامنه متوسط ​​و بالا را ادغام کنید. نمونه ای از این مفهوم در عمل، نگاشت EFFECT_CLICK و EFFECT_HEAVY_CLICK به همان ثابت HAL است که ثابت HAL سطح دامنه متوسط ​​خواهد بود. اگر دستگاه شما فقط از یک ثابت HAL با دامنه گسسته پشتیبانی می کند، هر سه سطح را در یک سطح ادغام کنید.

مدل پیوسته

مدل پیوسته با مقیاس پذیری دامنه می تواند برای تعریف ثابت های HAL اعمال شود. یک ضریب مقیاس ( S ) را می توان برای ثابت های HAL اعمال کرد (به عنوان مثال، HAL_H0 ، HAL_H1 ) برای تولید HAL مقیاس شده ( HAL_H0 x S ). در این مورد، HAL مقیاس شده برای تعریف ثابت های API ( HAL_H0 x S1 = H0S1 = EFFECT_TICK ) همانطور که در شکل 16 نشان داده شده است، نگاشت می شود. با استفاده از مقیاس پذیری دامنه مدل پیوسته، یک دستگاه می تواند تعداد کمی از ثابت های HAL را با بافت های متمایز ذخیره کند. و تغییرات دامنه را با تنظیم ضریب مقیاس ( S ) اضافه کنید. سازندگان دستگاه می‌توانند تعداد ثابت‌های HAL را بر اساس تعداد بافت‌های لمسی مختلف که می‌خواهند ارائه کنند، تعریف کنند.

دامنه ثابت HAL توسط بافت و دامنه

شکل 16. محدوده ثابت HAL بر اساس بافت (HAL_H0) و مقیاس دامنه (S)

مدل پیوسته برای ثابت HAL-API نقشه برداری

شکل 17. نگاشت ثابت HAL-API: مدل پیوسته

در مدل پیوسته، ثابت‌های HAL مختلف به جای دامنه‌های مختلف، بافت‌های لمسی متفاوتی را نشان می‌دهند. ضریب مقیاس ( S ) می تواند دامنه را پیکربندی کند. اما به دلیل اینکه درک بافت (مثلاً وضوح) با درک مدت و دامنه مرتبط است، ترکیب بافت و ضریب مقیاس (در فرآیند طراحی نقشه برداری HAL-API) توصیه می شود.

شکل 18 نگاشت ثابت را با افزایش تغییرات از یک HAL به بسیاری از ثابت های API با مقیاس پذیری دامنه نشان می دهد.

افزایش تنوع 1

افزایش تنوع 2

شکل 18. افزایش تنوع با مقیاس پذیری دامنه

برای همه ثابت‌های API مقیاس‌پذیر مانند PRIMITIVE_TICK و PRIMITIVE_CLICK در VibrationEffect.Composition ، سطح انرژی ثابت API به پارامتر float scale بستگی دارد زمانی که ثابت API از طریق addPrimitive(int primitiveID, float scale, int delay) اعلام می‌شود. PRIMITIVE_TICK و PRIMITIVE_CLICK را می توان با یک تمایز واضح با استفاده از ثابت های مختلف HAL ​​طراحی کرد. اگر می خواهید تنوعی به بافت اضافه کنید، این رویکرد توصیه می شود.

مرحله 4: سخت افزار را ارزیابی کنید

ارزیابی سخت‌افزاری شامل تعریف سه اثر لمسی با برچسب‌گذاری اثرات 1، 2 و 3 برای این ارزیابی خاص است.

اثر 1: ثابت های لمسی کوتاه از پیش تعریف شده

ثابت VibrationEffect.EFFECT_CLICK اثر خط پایه یا مخرج مشترک در نگاشت HAL-API است که در مرحله 2 ارائه شده است. این اثر با بیشترین استفاده، HapticFeedbackConstants.KEYBOARD_PRESS نگاشت شده است. ارزیابی این اثر به تعیین آمادگی دستگاه هدف شما برای لمس شفاف کمک می کند.

جلوه 2: جلوه لمسی سفارشی کوتاه

ثابت VibrationEffect.createOneShot(20,255) برای جلوه های لمسی سفارشی است. به طور خلاصه، تکانه های سفارشی منفرد، 20 میلی ثانیه حداکثر آستانه توصیه شده برای تعریف مدت زمان است. یک تکانه بیشتر از 20 میلی ثانیه توصیه نمی شود زیرا به عنوان یک لرزش وزوز درک می شود.

شکل موج لمسی کوتاه سفارشی اثر

شکل 19. جلوه لمسی سفارشی کوتاه

جلوه 3: جلوه لمسی سفارشی طولانی با تنوع دامنه

ثابت VibrationEffect.createWaveform(timings[], amplitudes[], int repeat) برای جلوه های سفارشی طولانی با تنوع دامنه است. توانایی تولید دامنه های مختلف برای جلوه های لمسی سفارشی یکی از شاخص های ارزیابی قابلیت های دستگاه برای لمسی غنی است. timings [] و amplitudes [] به ترتیب {500, 500} و {128, 255} هستند که روند افزایشی دامنه را از 50٪ به 100٪ با نرخ نمونه برداری 500 میلی ثانیه نشان می دهد.

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

شکل 20. جلوه لمسی سفارشی طولانی با تنوع دامنه

برای بررسی قابلیت های سخت افزاری کنترل دامنه برای افکت 3، از روش Vibrator.hasAmplitudeControl() استفاده کنید. برای اجرای VibrationEffect.createWaveform با دامنه متفاوت همانطور که در نظر گرفته شده است، نتیجه باید true باشد.

نمودار جریان اثر لمسی ذهنی ارزیابی

شکل 21. ارزیابی موضوع اثر لمسی 1، 2، و 3

یک ارزیابی ذهنی انجام دهید

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

یک سوال خاص که حول این مفهوم ساختار یافته است به این صورت است: آیا دستگاه می‌تواند اثرات لمسی قابل‌توجهی را برای کاربران ایجاد کند؟ پاسخ به این سوال به شما کمک می‌کند از لمسی ناموفق جلوگیری کنید، از جمله لمسی نامحسوسی که کاربران نمی‌توانند آن را احساس کنند، یا لمسی ناخواسته که در آن شکل‌موج‌ها الگوهای مورد نظر را تولید نمی‌کنند.

یک ارزیابی پیشرفته انجام دهید

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