ویبراتور (موتور لرزشی) — یک دستگاه الکترومکانیکی است که برای بازخورد لمسی و اعلانها در تلفنهای همراه لرزش ایجاد میکند. در گوشیهای هوشمند مدرن دو نوع اصلی ویبراتور به کار میرود: گریز از مرکز (ERM) و محرکهای تشدید خطی (LRA). به گزارش All About Circuits, 2024، محرکهای LRA 3 برابر زمان پاسخ سریعتری نسبت به ERM ارائه میدهند.
نکات اصلی
ویبراتور (موتور لرزشی) — یک دستگاه الکترومکانیکی مینیاتوری است که انرژی الکتریکی را به نوسانات مکانیکی برای ایجاد لرزش بدنه گوشی هوشمند تبدیل میکند. هدف اصلی ویبراتور — اعلام لمسی تماسهای ورودی، پیامها و اعلانها به کاربر بدون استفاده از سیگنال صوتی است. در دستگاههای مدرن از ویبراتور همچنین برای بازخورد لمسی هنگام تعامل با صفحه لمسی استفاده میشود.
اولین ویبراتور در تلفن همراه در سال ۱۹۹۲ در مدل Motorola Startac برای اعلام بیصدای تماسها ظاهر شد. امروزه لرزش نه تنها برای اعلانها، بلکه برای تأیید اقدامات کاربر نیز استفاده میشود: فشار دادن کلیدها، کشیدن، لمس کردن. در گوشیهای هوشمند مدرن، ویبراتور همراه با Taptic Engine و محرکهای پیزوالکتریک بخشی از سیستم Haptic Feedback است. کیفیت لرزش مستقیماً بر درک دستگاه تأثیر میگذارد: لرزش دقیق و سریع با پریمیوم بودن مرتبط است.
در صنعت موبایل از دو نوع اصلی ویبراتور استفاده میشود: ERM (Eccentric Rotating Mass) با وزنه چرخان نامتعادل و LRA (Linear Resonant Actuator) با حرکت خطی آهنربا. انتخاب نوع به الزامات کیفیت حسهای لمسی، هزینه و فضای موجود داخل بدنه گوشی هوشمند بستگی دارد. در دستگاههای اقتصادی بیشتر از ERM و در مدلهای پریمیوم از LRA استفاده میشود.
ERM (Eccentric Rotating Mass) — ویبراتور کلاسیک متشکل از یک موتور الکتریکی جریان مستقیم با وزنه نامتقارن روی محور. با اعمال ولتاژ، روتور شروع به چرخش میکند و نیروی گریز از مرکز وزنه نامتعادل به بدنه دستگاه منتقل شده و لرزش ایجاد میکند. دامنه لرزش با ولتاژ (۲–۵ ولت) و فرکانس با سرعت چرخش تنظیم میشود. ERM تولید ارزانی دارد، اما دارای اینرسی است: زمان شتاب تا سرعت کاری ۲۰–۵۰ میلیثانیه و پس از توقف ۱۰–۲۰ میلیثانیه اینرسی باقیمانده است.
LRA (Linear Resonant Actuator) — ویبراتوری که در آن آهنربا در امتداد یک محور در میدان مغناطیسی سیمپیچ حرکت میکند. آهنربا بر روی عناصر الاستیک آویزان شده است که بازگشت به موقعیت اولیه را تضمین میکند. LRA در فرکانس تشدید (معمولاً ۱۵۰–۲۰۰ هرتز) کار میکند که دستیابی به حداکثر دامنه با حداقل مصرف انرژی را ممکن میسازد. زمان پاسخ LRA ۵–۱۵ میلیثانیه است که آن را به طور قابل توجهی پاسخگوتر نسبت به ERM میکند. LRA در قدرت لرزش قابل مقایسه فشردهتر از ERM است و برای دستگاههای پریمیوم بهینه است.
| پارامتر | ERM | LRA |
|---|---|---|
| اصل | چرخش وزنه نامتعادل | حرکت خطی آهنربا |
| زمان پاسخ | ۲۰–۵۰ میلیثانیه | ۵–۱۵ میلیثانیه |
| پسلرزه | ۱۰–۲۰ میلیثانیه | ۱–۳ میلیثانیه |
| دقت | کم | زیاد |
| هزینه | کم | متوسط |
هنگام انتخاب ویبراتور برای گوشی هوشمند، تولیدکنندگان چندین پارامتر کلیدی را در نظر میگیرند: زمان پاسخ، دقت کنترل دامنه، مصرف انرژی و اندازه. موتورهای ERM از نظر هزینه و سادگی کنترل برنده هستند — برای کار کافی است ولتاژ ثابت اعمال شود. محرکهای LRA به درایور پیچیدهتری با تولید سیگنال متناوب فرکانس تشدید نیاز دارند، اما ۳–۴ برابر حسهای لمسی واضحتری ارائه میدهند.
بر اساس تحقیق Precision Microdrives، محرکهای LRA ۴۰–۵۰٪ انرژی کمتری نسبت به موتورهای ERM هنگام ایجاد لرزش قابل مقایسه از نظر درک مصرف میکنند. این به دلیل حالت کار تشدید است: حداکثر دامنه با حداقل توان ورودی به دست میآید. در عین حال، موتورهای ERM میتوانند در محدوده فرکانس گستردهتری کار کنند و با تغییر ساده ولتاژ، لرزش با شدتهای مختلف ایجاد کنند.
ویبراتور در گوشی هوشمند از طریق درایوری کنترل میشود که دستورات را از پردازنده اصلی یا کنترلکننده اختصاصی بازخورد لمسی دریافت میکند. درایور دستورات دیجیتال را به سیگنالهای الکتریکی تبدیل میکند: برای ERM — ولتاژ ثابت با سطح مشخص، برای LRA — سیگنال متناوب فرکانس تشدید با دامنه قابل تنظیم. ولتاژ تغذیه ویبراتورها معمولاً ۲–۵ ولت با جریان ۵۰–۲۰۰ میلیآمپر است.
چیپستهای مدرن Snapdragon (Qualcomm) و Dimensity (MediaTek) دارای بلوکهای داخلی کنترل لرزش هستند که از الگوهای لمسی سفارشی پشتیبانی میکنند. پردازنده دنبالهای از دستورات را با مشخص کردن دامنه، مدت و شکل سیگنال برای هر پالس به درایور ارسال میکند. بر اساس کتابخانه افکتهای از پیش تعیین شده، سیستم میتواند لرزش را برای ۱۰–۳۰ نوع مختلف اعلان با ویژگیهای فردی حس لمسی تولید کند.
در iOS، کنترل ویبراتور از طریق Core Haptics با پشتیبانی از الگوهای پیچیده انجام میشود. در Android تا نسخه ۸.۰ (API 26) کنترل محدود بود: توسعهدهنده فقط میتوانست لرزش با مدت ثابت را روشن و خاموش کند. از Android ۸.۰ به بعد، کلاس VibrationEffect با پشتیبانی از اشکال موج مرکب، افکتهای موجی و دامنه قابل تنظیم اضافه شد.
لرزش در برنامههای موبایل برای چندین سناریو استفاده میشود: اعلان رویدادها (تماسها، پیامها)، تأیید لمسی اقدامات (فشار دادن دکمهها، تغییر کلیدها)، بازخورد لمسی بازی و قابلیتهای ویژه برای کاربران کمشنوا. هر سناریو پارامترهای لرزش متفاوتی نیاز دارد: پالس کوتاه برای تأیید، لرزش طولانی برای اعلان.
لرزش به درستی پیکربندی شده تجربه کاربر را به طور قابل توجهی بهبود میبخشد. پاسخ لمسی کوتاه هنگام فشار دادن دکمه حس تعامل فیزیکی ایجاد میکند و بار شناختی را کاهش میدهد. در بازیها از لرزش برای اثر غوطهوری استفاده میشود: شبیهسازی شلیک، برخورد، کار موتور. طبق Google Material Design، توصیه میشود از لرزش با مدت ۱۰–۴۰ میلیثانیه برای تأیید لمسی و ۲۰۰–۱۰۰۰ میلیثانیه برای اعلانها استفاده شود تا باعث تحریک کاربر نشود.
برای قابلیتهای ویژه (accessibility) لرزش نقش کلیدی ایفا میکند: به کاربران کمبینا امکان دریافت بازخورد لمسی درباره رویدادهای صفحه را میدهد. TalkBack در Android و VoiceOver در iOS هنگام برجستهسازی عناصر رابط، تأیید اقدامات و دریافت اعلانها سیگنالهای لرزشی ارسال میکنند. الگوهای لرزش تطبیقی به تشخیص انواع رویدادها بدون کنترل بینایی کمک میکنند.
برای کار با ویبراتور در Android از سرویس سیستمی Vibrator استفاده میشود که از طریق متد getSystemService() قابل دسترسی است. از Android ۱۰ (API 29) به بعد VibratorManager — API یکپارچه برای کنترل لرزش در دستگاههای دارای چندین ویبراتور اضافه شد. برای سازگاری با نسخههای قدیمیتر، توسعهدهندگان مستقیماً از Vibrator با بررسی در دسترس بودن متد createOneShot() استفاده میکنند.
import android.os.VibrationEffect
import android.os.Vibrator
import android.os.VibratorManager
import android.content.Context
class VibrationHelper(private val context: Context) {
private val vibrator: Vibrator get() {
return if (Build.VERSION.SDK_INT >= 31) {
val manager = context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE)
as VibratorManager
manager.getDefaultVibrator()
} else {
context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
}
}
fun playShortClick() {
val effect = VibrationEffect.createOneShot(30L, VibrationEffect.DEFAULT_AMPLITUDE)
vibrator.vibrate(effect)
}
fun playWaveform() {
val timings = longArrayOf(0L, 50L, 100L, 50L)
val amplitudes = intArrayOf(128, 255, 64, 255)
val effect = VibrationEffect.createWaveform(timings, amplitudes, -1)
vibrator.vibrate(effect)
}
}
کلاس VibrationEffect از دو نوع افکت پشتیبانی میکند: createOneShot — پالس تکی با مدت و دامنه مشخص، و createWaveform — الگوی موج مرکب با آرایهای از زمانبندیها و دامنهها. هنگام استفاده از createWaveform، آرایه زمانبندیها توالی روشن شدن و مکثها را مشخص میکند و آرایه دامنهها سطح لرزش (۰–۲۵۵) را برای هر بخش تعیین میکند. پارامتر repeat شاخص شروع تکرار الگو را مشخص میکند (-1 برای پخش یکباره).
سوالات متداول
در گوشیهای هوشمند مدرن از دو نوع اصلی ویبراتور استفاده میشود: ERM (گریز از مرکز با وزنه چرخان) در دستگاههای اقتصادی و LRA (محرکهای تشدید خطی) در مدلهای پریمیوم. ERM ارزانتر اما کندتر و کمدقتتر است، LRA حسهای لمسی واضحی ارائه میدهد.
ERM با چرخش وزنه نامتقارن لرزش ایجاد میکند، زمان پاسخ ۲۰–۵۰ میلیثانیه و پسلرزه اینرسی دارد. LRA آهنربا را در میدان مغناطیسی سیمپیچ به صورت خطی حرکت میدهد با پاسخ ۵–۱۵ میلیثانیه و عملاً بدون پسلرزه. LRA حسهای لمسی واضحتر و متنوعتری ارائه میدهد.
بله، کاربر میتواند لرزش را در تنظیمات صدا و سیگنالهای لمسی گوشی هوشمند خاموش کند. در Android این کار از طریق «صداها و لرزش» ← «بازخورد لمسی»، در iOS از طریق «صداها و سیگنالهای لمسی» ← «سیگنالهای لمسی سیستم» انجام میشود. خاموش کردن شامل همه برنامهها میشود.
ویبراتور را میتوان از طریق منوی مهندسی بررسی کرد: در Samsung کد *#0*# و در Xiaomi کد *#*#6484#*#* را شمارهگیری کرده و تست لرزش را انتخاب کنید. در iPhone: تنظیمات ← دسترسی عمومی ← سیگنالهای لمسی ← «سیگنالهای لمسی در حالت زنگ» را فعال کنید. اگر لرزش وجود نداشته باشد، احتمال خرابی موتور وجود دارد.
در Android میتوان لرزش را برای برنامههای جداگانه از طریق تنظیمات ← اعلانها ← دستهبندی اعلانهای برنامه پیکربندی کرد. در iOS لرزش از طریق «صداها و سیگنالهای لمسی» ← نوع اعلان را انتخاب کنید ← «سیگنالهای لمسی» با انتخاب الگوی از پیش تعیین شده پیکربندی میشود.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید