কম্পন তরঙ্গরূপ বিশ্লেষণ করুন

অ্যান্ড্রয়েড ডিভাইসে সবচেয়ে সাধারণ ভাইব্রেশন অ্যাকচুয়েটর হল লিনিয়ার রেজোন্যান্ট অ্যাকচুয়েটর (এলআরএ)। LRAs অনুকরণ করে একটি বোতামে ক্লিক করার অনুভূতি যা অন্যথায় একটি প্রতিক্রিয়াহীন কাচের পৃষ্ঠ। একটি পরিষ্কার এবং খাস্তা ক্লিক প্রতিক্রিয়া সংকেত সাধারণত 10 থেকে 20 মিলিসেকেন্ডের মধ্যে স্থায়ী হয়। এই সংবেদন ব্যবহারকারীর মিথস্ক্রিয়া আরও স্বাভাবিক বোধ করে। ভার্চুয়াল কীবোর্ডের জন্য, এই ক্লিক প্রতিক্রিয়া টাইপিং গতি বাড়াতে পারে এবং ত্রুটি কমাতে পারে।

LRA এর কয়েকটি সাধারণ অনুরণিত ফ্রিকোয়েন্সি রয়েছে:

  • কিছু LRA-এর 200 থেকে 300 Hz পরিসরে অনুরণিত ফ্রিকোয়েন্সি ছিল, যা মানুষের ত্বক কম্পনের জন্য সবচেয়ে সংবেদনশীল ফ্রিকোয়েন্সির সাথে মিলে যায়। এই ফ্রিকোয়েন্সি পরিসরে কম্পনের সংবেদনগুলি সাধারণত মসৃণ, তীক্ষ্ণ এবং অনুপ্রবেশকারী হিসাবে বর্ণনা করা হয়।
  • LRA-এর অন্যান্য মডেলের অনুরণন ফ্রিকোয়েন্সি কম থাকে, প্রায় 150 Hz এ। সংবেদন গুণগতভাবে নরম এবং পূর্ণ (মাত্রায়)।
উপাদানগুলির মধ্যে রয়েছে, উপরে থেকে নীচে, একটি কভার, প্লেট, মাঝখানে        চুম্বক, 2 সাইড ম্যাগনেট, ভর, 2 স্প্রিংস, কয়েল, নমনীয় সার্কিট, বেস,        এবং আঠালো।
লিনিয়ার রেজোন্যান্ট অ্যাকচুয়েটর (LRA) এর উপাদান।

দুটি ভিন্ন ফ্রিকোয়েন্সিতে একই ইনপুট ভোল্টেজ দেওয়া হলে, কম্পন আউটপুট প্রশস্ততা ভিন্ন হতে পারে। এলআরএর অনুরণন ফ্রিকোয়েন্সি থেকে ফ্রিকোয়েন্সি যত দূরে থাকবে, এর কম্পনের প্রশস্ততা তত কম হবে।

একটি প্রদত্ত ডিভাইসের হ্যাপটিক প্রভাবগুলি ভাইব্রেশন অ্যাকচুয়েটর এবং এর ড্রাইভার উভয়ই ব্যবহার করে। ওভারড্রাইভ এবং সক্রিয় ব্রেকিং বৈশিষ্ট্যগুলি অন্তর্ভুক্ত হ্যাপটিক ড্রাইভারগুলি এলআরএগুলির বৃদ্ধির সময় এবং রিং কমাতে পারে, যা আরও প্রতিক্রিয়াশীল এবং স্পষ্ট কম্পনের দিকে পরিচালিত করে।

ডিভাইসে ডিফল্ট ওয়েভফর্ম স্মুথিং

উদাহরণের জন্য, জেনেরিক ডিভাইসে একটি কাস্টম ওয়েভফর্ম প্যাটার্ন কীভাবে আচরণ করে তা বিবেচনা করুন:

কোটলিন

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 // Don't repeat.

vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex))

জাভা

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 // Don't repeat.

vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, repeatIndex));

নিম্নলিখিত প্লটগুলি পূর্ববর্তী কোড স্নিপেটের সাথে সম্পর্কিত ইনপুট তরঙ্গরূপ এবং আউটপুট ত্বরণ দেখায়। লক্ষ্য করুন যে ত্বরণ ধীরে ধীরে বৃদ্ধি পায়, হঠাৎ নয়, যখনই প্যাটার্নে প্রশস্ততার একটি ধাপ পরিবর্তন হয়—অর্থাৎ, 0ms, 150ms, 200ms, 250ms এবং 700ms। প্রশস্ততা পরিবর্তনের প্রতিটি ধাপে একটি ওভারশুটও রয়েছে এবং ইনপুট প্রশস্ততা হঠাৎ 0-এ নেমে গেলে কমপক্ষে 50ms স্থায়ী হয় এমন দৃশ্যমান রিংিং রয়েছে।

ধাপ ফাংশন ইনপুট তরঙ্গরূপ প্লট.
প্রকৃত পরিমাপকৃত তরঙ্গরূপের প্লট, স্তরগুলির মধ্যে আরও জৈব রূপান্তর দেখায়।

উন্নত হ্যাপটিক প্যাটার্ন

ওভারশুট এড়াতে এবং রিং করার সময় কমাতে, প্রশস্ততাগুলি আরও ধীরে ধীরে পরিবর্তন করুন। নিম্নলিখিত সংশোধিত সংস্করণের তরঙ্গরূপ এবং ত্বরণ প্লট দেখায়:

কোটলিন

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))

জাভা

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));

অতিরিক্ত পদক্ষেপ সহ ইনপুট তরঙ্গরূপের প্লট।
মাপা তরঙ্গরূপের প্লট, মসৃণ রূপান্তর দেখায়।

আরও জটিল হ্যাপটিক প্রভাব তৈরি করুন

একটি সন্তোষজনক ক্লিক প্রতিক্রিয়ার অন্যান্য উপাদানগুলি আরও জটিল, একটি ডিভাইসে ব্যবহৃত LRA সম্পর্কে কিছু জ্ঞান প্রয়োজন। সেরা ফলাফলের জন্য, ডিভাইসের প্রি-ফেব্রিকেটেড ওয়েভফর্ম এবং প্ল্যাটফর্ম-প্রদত্ত ধ্রুবক ব্যবহার করুন, যা আপনাকে নিম্নলিখিতগুলি করতে দেয়:

  • স্পষ্ট প্রভাব এবং আদিম সঞ্চালন.
  • নতুন হ্যাপটিক প্রভাব রচনা করতে তাদের সংযুক্ত করুন।

এই পূর্বনির্ধারিত হ্যাপটিক ধ্রুবক এবং আদিম উচ্চ মানের হ্যাপটিক প্রভাব তৈরি করার সময় আপনার কাজের গতি বাড়াতে পারে।