পিসওয়াইজ লিনিয়ার এনভেলপ (PWLE) ইফেক্ট হল বিন্দুর ক্রম যা সময়ের সাথে সাথে কম্পনের ফ্রিকোয়েন্সি এবং ত্বরণ নির্ধারণ করে। PWLE গুলি আরও সমৃদ্ধ এবং গতিশীল হ্যাপটিক প্রতিক্রিয়া প্রদান করে।
অ্যান্ড্রয়েড ১৬ এবং উচ্চতর সংস্করণগুলি PWLE প্রভাব তৈরি করতে সাহায্য করার জন্য দুটি অ্যাপ ডেভেলপার API প্রদান করে:
- বেসিক PWLE API: সহজ, কিন্তু সীমাবদ্ধতা সহ। দ্রুত শুরু করার জন্য ভালো। এটি
BasicEnvelopeBuilderএ উপলব্ধ। - উন্নত PWLE API: আরও নিয়ন্ত্রণ এবং নমনীয়তা, হ্যাপটিক জ্ঞান এবং হার্ডওয়্যারের সাথে কিছু পরিচিতি প্রয়োজন।
WaveformEnvelopeBuilderএ উপলব্ধ।
এই API গুলি সমর্থন করার জন্য, ডিভাইসগুলিকে নিম্নলিখিত HAL API গুলি বাস্তবায়ন করতে হবে:
- ফ্রিকোয়েন্সি থেকে আউটপুট ত্বরণ ম্যাপিং (FOAM): ডিভাইসের জন্য সর্বাধিক অর্জনযোগ্য আউটপুট ত্বরণের জন্য কম্পন ফ্রিকোয়েন্সির ম্যাপিং প্রদান করে।
- কম্পোজ PWLE: কম্পন তরঙ্গরূপের একটি PWLE দ্বারা সংজ্ঞায়িত একটি কম্পন বাজায়।
বেসিক PWLE API
হার্ডওয়্যার বা মানুষের উপলব্ধির সূক্ষ্মতায় ডুব না দিয়ে দ্রুত PWLE ইফেক্ট তৈরি করার জন্য, ডেভেলপাররা এই প্যারামিটারগুলি ব্যবহার করে সংজ্ঞায়িত মৌলিক PWLE API ব্যবহার করতে পারেন:
- [0, 1] পরিসরে তীব্রতার মান কম্পনের অনুভূত শক্তিকে প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, 0.5 মানকে ডিভাইস দ্বারা অর্জন করা যেতে পারে এমন বিশ্বব্যাপী সর্বোচ্চ তীব্রতার অর্ধেক হিসাবে ধরা হয়।
- [0, 1] পরিসরে তীক্ষ্ণতার মান কম্পনের তীব্রতাকে প্রতিনিধিত্ব করে। নিম্ন মানগুলি মসৃণ কম্পনে অনুবাদ করে, যখন উচ্চতর মানগুলি আরও তীক্ষ্ণ সংবেদন তৈরি করে।
- সময়কাল হলো শেষ PWLE বিন্দু (অর্থাৎ, তীব্রতা এবং তীক্ষ্ণতা জোড়া) থেকে নতুন বিন্দুতে রূপান্তর করতে মিলিসেকেন্ডে সময় লাগে।
এখানে একটি উদাহরণ তরঙ্গরূপ দেওয়া হল যা ৫০০ মিলিসেকেন্ডের বেশি গতিতে নিম্ন পিচ থেকে উচ্চ পিচের সর্বোচ্চ-শক্তির কম্পনের তীব্রতা বৃদ্ধি করে এবং তারপর ১০০ মিলিসেকেন্ডের বেশি গতিতে ০ (অফ) পর্যন্ত নামিয়ে আনে:
VibrationEffect effect = new VibrationEffect.BasicEnvelopeBuilder()
.setInitialSharpness(0.0f)
.addControlPoint(1.0f, 1.0f, 500)
.addControlPoint(0.0f, 1.0f, 100)
.build();
সীমাবদ্ধতা
একটি মসৃণ এবং নির্বিঘ্ন হ্যাপটিক অভিজ্ঞতা তৈরি করতে, PWLE প্রভাবগুলি 0.0 তীব্রতা দিয়ে শুরু এবং শেষ করতে হবে । API 0 এ শুরুর তীব্রতা স্থির করে এটি প্রয়োগ করে এবং যদি শেষের তীব্রতা 0 না হয় তবে একটি ব্যতিক্রম দেয়। এই সীমাবদ্ধতা প্রশস্ততার অসঙ্গতির কারণে কম্পনে অবাঞ্ছিত গতিশীল প্রভাবগুলিকে প্রতিরোধ করে যা ব্যবহারকারীর হ্যাপটিক উপলব্ধিকে নেতিবাচকভাবে প্রভাবিত করতে পারে।
অ্যান্ড্রয়েড ইকোসিস্টেম জুড়ে ধারাবাহিক PWLE এফেক্ট রেন্ডারিং নিশ্চিত করার জন্য, ফ্রেমওয়ার্কের জন্য প্রয়োজন যে এই বৈশিষ্ট্যটি সমর্থনকারী ডিভাইসগুলি PWLE পয়েন্টের মধ্যে ন্যূনতম 20 মিলিসেকেন্ড এবং PWLE এফেক্টের জন্য কমপক্ষে 16 পয়েন্ট সময়কাল পরিচালনা করতে পারে। এই প্রয়োজনীয়তাগুলি VTS পরীক্ষা দ্বারা প্রয়োগ করা হয়, যা অ্যান্ড্রয়েড ডিভাইস জুড়ে নির্ভরযোগ্য PWLE এফেক্ট নিশ্চিত করতে সহায়তা করে।
উন্নত PWLE API
হ্যাপটিক্সে উন্নত জ্ঞানসম্পন্ন ডেভেলপাররা এই মানদণ্ডগুলি ব্যবহার করে PWLE প্রভাবগুলি সংজ্ঞায়িত করতে পারেন:
- [0, 1] পরিসরে প্রশস্ততা মান FOAM ডিভাইস দ্বারা নির্ধারিত প্রদত্ত ফ্রিকোয়েন্সিতে অর্জনযোগ্য শক্তির প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, 0.5 মান প্রদত্ত ফ্রিকোয়েন্সিতে অর্জন করা যেতে পারে এমন সর্বোচ্চ আউটপুট ত্বরণের অর্ধেক উৎপন্ন করে।
- ফ্রিকোয়েন্সি সরাসরি হার্টজে নির্দিষ্ট করা হয়।
- সময়কাল হলো শেষ PWLE বিন্দু থেকে নতুন বিন্দুতে রূপান্তরের জন্য মিলিসেকেন্ডে সময়।
এখানে একটি উদাহরণ তরঙ্গরূপ দেওয়া হল যা একটি ভাইব্রেটরকে ১০০ মিলিসেকেন্ডের বেশি সময়ে ১২০ হার্জে পূর্ণ প্রশস্ততায় বন্ধ অবস্থা থেকে পূর্ণ প্রশস্ততায় র্যাম্প করে, ২০০ মিলিসেকেন্ডের জন্য সেই অবস্থা ধরে রাখে এবং তারপর ১০০ মিলিসেকেন্ডের বেশি সময়ে আবার নিচে নামিয়ে দেয়:
VibrationEffect effect = new VibrationEffect.WaveformEnvelopeBuilder()
.addControlPoint(1.0f, 120f, 100)
.addControlPoint(1.0f, 120f, 200)
.addControlPoint(0.0f, 120f, 100)
.build();
সীমাবদ্ধতা
ফ্রেমওয়ার্কটি ডেভেলপার কর্তৃক প্রদত্ত অনুরোধকৃত ফ্রিকোয়েন্সি এবং প্রশস্ততা মান পরিবর্তন করে না বরং একটি মসৃণ রূপান্তর নিশ্চিত করতে একটি 0 প্রশস্ততা সূচনা বিন্দু যোগ করে।
ডেভেলপারদের দায়িত্ব হল তাদের PWLE ইফেক্টে উল্লেখিত ফ্রিকোয়েন্সি ডিভাইসের FOAM দ্বারা নির্ধারিত সমর্থিত পরিসরের মধ্যে পড়ে কিনা তা নিশ্চিত করা। যদি মানগুলি এই সীমা অতিক্রম করে, তাহলে ডিভাইসটি কোনও কম্পন চালাবে না ।
ফ্রিকোয়েন্সি থেকে আউটপুট ত্বরণ ম্যাপিং (FOAM)
PWLE API গুলিকে সমর্থন করার জন্য একটি ডিভাইসের ফ্রিকোয়েন্সি থেকে আউটপুট ত্বরণ ক্ষমতার সঠিক উপস্থাপনা অপরিহার্য। এই বিভাগে এই ডেটার তাৎপর্য, PWLE API গুলি কীভাবে এটি ব্যবহার করে এবং এটি তৈরির প্রক্রিয়া সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
ম্যাপিং বুঝুন
PWLE ইফেক্ট সমর্থনকারী ডিভাইসগুলিকে একটি ফ্রিকোয়েন্সি টু আউটপুট অ্যাক্সিলারেশন ম্যাপ (FOAM) প্রদান করতে হবে। FOAM হল HAL দ্বারা তৈরি একটি ডেটা স্ট্রাকচার যা কম্পন ফ্রিকোয়েন্সি (হার্টজে) ম্যাপ করে অ্যাকচুয়েটরের সর্বোচ্চ অর্জনযোগ্য আউটপুট অ্যাক্সিলারেশন (G পিক) এর সাথে। সমর্থিত ফ্রিকোয়েন্সি রেঞ্জের জন্য কম্পন আউটপুট কীভাবে পরিবর্তিত হয় তা বোঝার জন্য এবং মৌলিক PWLE API সংজ্ঞায়িত করার জন্য এই মানচিত্রটি অত্যন্ত গুরুত্বপূর্ণ।
নিচের প্লটে একটি সাধারণ অনুরণনকারী অ্যাকচুয়েটরের জন্য FOAM-এর একটি উদাহরণ দেখানো হয়েছে, যেখানে মোটরকে সুরক্ষিত রাখার জন্য অনুরণনকারী ফ্রিকোয়েন্সির চারপাশে ইনপুট ভোল্টেজ সীমিত থাকে:
চিত্র ১. একটি সাধারণ অনুরণনকারী অ্যাকচুয়েটরের জন্য FOAM-এর উদাহরণ।
FOAM তিনটি মূল উদ্দেশ্যে কাজ করে:
- পূর্ণ ফ্রিকোয়েন্সি পরিসর নির্ধারণ: FOAM ডিভাইসের পূর্ণ ফ্রিকোয়েন্সি পরিসর নির্ধারণ করে সর্বনিম্ন এবং সর্বোচ্চ কম্পন ফ্রিকোয়েন্সি সমর্থিত করে।
- তীব্রতা এবং তীক্ষ্ণতার মান নির্ধারণ: মৌলিক PWLE API তীব্রতা এবং তীক্ষ্ণতার জন্য একটি মানবিক উপলব্ধি স্কেলে কাজ করে, যা পরে FOAM-এ আউটপুট ত্বরণ মান ব্যবহার করে হার্ডওয়্যার ফ্রিকোয়েন্সি এবং প্রশস্ততা পরামিতিগুলিতে ম্যাপ করা হয়। এই ম্যাপিং নিশ্চিত করতে সাহায্য করে যে হ্যাপটিক প্রভাবগুলি হার্ডওয়্যার ক্ষমতা অনুসারে রেন্ডার করা হয়েছে। তীক্ষ্ণতার পরিসর ন্যূনতম উপলব্ধিযোগ্য থ্রেশহোল্ড দ্বারা সংজ্ঞায়িত করা হয় এবং সেই ফ্রিকোয়েন্সিগুলির সাথে মিলে যায় যেখানে ডিভাইসটি হ্যাপটিক প্রভাব তৈরি করতে পারে যা ব্যবহারকারীরা অনুভব করতে পারে। ফ্রেমওয়ার্কটি নির্বাচিত ফ্রিকোয়েন্সিতে লক্ষ্য আউটপুট ত্বরণের উপর ভিত্তি করে তীব্রতার মানগুলিকে প্রশস্ততার সাথে ম্যাপ করে। এটি নিশ্চিত করতে সাহায্য করে যে ডিভাইসের ক্ষমতার মধ্যে থাকা অবস্থায় নির্বাচিত তীব্রতা স্তর অর্জন করা হয়েছে।
- হার্ডওয়্যার ক্ষমতা প্রকাশ: FOAM
VibratorFrequencyProfileডেভেলপারদের কাছে উন্মুক্ত করা হয়, যা ডিভাইসের কিছু হ্যাপটিক ক্ষমতার বিশদ বিবরণ সহ ত্বরণ ডেটাসেট আউটপুট করার জন্য সম্পূর্ণ ফ্রিকোয়েন্সি প্রদান করে। এই ডেটা উন্নত PWLE API ব্যবহার করে ডেভেলপারদের ফ্রেমওয়ার্ক দ্বারা সংজ্ঞায়িত মৌলিক তীব্রতা এবং তীক্ষ্ণতা সীমার বাইরে কাস্টম কম্পন প্রভাব তৈরি করতে সক্ষম করে।
FOAM এবং বেসিক PWLE API
কম্পনের প্রভাব তৈরিতে FOAM গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি মৌলিক এনভেলপ API-এর জন্য তীক্ষ্ণতা পরিসর গণনা করতে ব্যবহৃত হয়, যাতে ব্যবহারকারীর কাছে কম্পনগুলি উপলব্ধিযোগ্য হয় তা নিশ্চিত করা যায়। এই পরিসরটি এমন ফ্রিকোয়েন্সিগুলির সাথে মিলে যায় যেখানে আউটপুট ত্বরণ প্রতিটি ফ্রিকোয়েন্সির জন্য মানুষের উপলব্ধি সনাক্তকরণ থ্রেশহোল্ডের (অর্থাৎ, সর্বনিম্ন উপলব্ধিযোগ্য স্তর) চেয়ে 10 dB- এর কম নয়। এটি নিশ্চিত করে যে কম্পনগুলি অনুভব করার জন্য যথেষ্ট শক্তিশালী।
উপরন্তু, ফ্রেমওয়ার্কটি FOAM ডেটা ব্যবহার করে মৌলিক PWLE API-তে ব্যবহৃত তীব্রতা এবং তীক্ষ্ণতার মানগুলিকে তাদের সংশ্লিষ্ট প্রশস্ততা এবং ফ্রিকোয়েন্সি মানের সাথে ম্যাপ করে। এই ম্যাপিং বিভিন্ন ডিভাইস জুড়ে উপলব্ধিযোগ্য হ্যাপটিক প্রতিক্রিয়া তৈরি করতে সহায়তা করে।
এনভেলপ ইফেক্ট সমর্থনকারী ডিভাইসগুলির একটি খালি ফ্রিকোয়েন্সি রেঞ্জ নেই যা উপলব্ধিযোগ্য কম্পন তৈরি করে তা নিশ্চিত করার জন্য VTS পরীক্ষাগুলি কার্যকর। এটি নিশ্চিত করতে সাহায্য করে যে ডিভাইসটি ব্যবহারকারীদের দ্বারা স্পষ্টভাবে অনুভব করার জন্য পর্যাপ্ত তীব্রতার সাথে কম্পন তৈরি করতে পারে।
FOAM এবং উন্নত PWLE API
VibratorFrequencyProfile দ্বারা FOAM ডেভেলপারদের কাছে নিম্নলিখিত তথ্য সহ প্রকাশিত হয়:
- ফ্রিকোয়েন্সি রেঞ্জ: ডেভেলপাররা যথাক্রমে
getMinFrequencyHzএবংgetMaxFrequencyHzব্যবহার করে হার্টজে ডিভাইসের সর্বনিম্ন এবং সর্বাধিক সমর্থিত ফ্রিকোয়েন্সি পুনরুদ্ধার করতে পারে। - সর্বোচ্চ আউটপুট ত্বরণ: ডিভাইসের সর্বোচ্চ অর্জনযোগ্য আউটপুট ত্বরণ (G তে)
getMaxOutputAccelerationGsএর মাধ্যমে পাওয়া যায়। - ফ্রিকোয়েন্সি থেকে আউটপুট ত্বরণ ম্যাপিং:
getFrequenciesOutputAccelerationHAL-তে বাস্তবায়িত ফ্রিকোয়েন্সি থেকে আউটপুট ত্বরণ ম্যাপিং প্রদান করে।
উন্নত PWLE API ব্যবহার করে এনভেলপ ইফেক্ট তৈরি করার সময় ডেভেলপাররা এই তথ্য ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আউটপুট ত্বরণ (G তে) নির্দিষ্ট করার সময়, তাদের অবশ্যই এটিকে [0.0, 1.0] পরিসরের মধ্যে একটি মানের সাথে স্বাভাবিক করতে হবে, যা ডিভাইসের সর্বোচ্চ আউটপুট ত্বরণের সাথে সম্পর্কিত।
উন্নত PWLE API এর সাহায্যে, ডেভেলপাররা সম্পূর্ণ ফ্রিকোয়েন্সি রেঞ্জ ব্যবহার করতে পারে, তাই এটি অত্যন্ত গুরুত্বপূর্ণ যে প্রদত্ত FOAM ডেটা ভাইব্রেটরের জন্য নিরাপদ এবং এর ক্ষমতা অতিক্রম না করে।
মানুষের উপলব্ধি সনাক্তকরণের থ্রেশহোল্ড
মানুষের উপলব্ধি সনাক্তকরণের সীমা বলতে বোঝায় কম্পনের ন্যূনতম ত্বরণ যা একজন ব্যক্তি নির্ভরযোগ্যভাবে সনাক্ত করতে পারে। এই স্তরটি কম্পনের ফ্রিকোয়েন্সির উপর নির্ভর করে পরিবর্তিত হয়।
নিম্নলিখিত প্লটটি টেম্পোরাল ফ্রিকোয়েন্সির ফাংশন হিসাবে ত্বরণে মানুষের হ্যাপটিক উপলব্ধি সনাক্তকরণ থ্রেশহোল্ড 1 দেখায়:
চিত্র ২। মানুষের হ্যাপটিক উপলব্ধি সনাক্তকরণের থ্রেশহোল্ড।
ব্যবহারকারীরা যাতে ধারাবাহিকভাবে হ্যাপটিক প্রভাব অনুভব করতে পারেন, VTS পরীক্ষাগুলি যাচাই করে যে এনভেলপ ক্ষমতা সম্পন্ন ডিভাইসগুলির একটি ফ্রিকোয়েন্সি রেঞ্জ রয়েছে যা মানুষের উপলব্ধি সনাক্তকরণ থ্রেশহোল্ডকে 10 dB ছাড়িয়ে কম্পন প্রশস্ততা তৈরি করতে পারে।
অনুভূত কম্পনের তীব্রতা বনাম কম্পন ত্বরণ প্রশস্ততা
কম্পনের তীব্রতা সম্পর্কে মানুষের ধারণা (একটি উপলব্ধি পরিমাপ) কম্পনের প্রশস্ততা (একটি ভৌত পরামিতি) এর সাথে রৈখিকভাবে বৃদ্ধি পায় না। PWLE API ধরে নেয় যে যখন একজন ডিজাইনার বা ডেভেলপার কম্পনের শক্তির পরিবর্তন সম্পর্কে চিন্তা করেন, তখন তারা আশা করেন যে অনুভূত তীব্রতা PWLE অনুসরণ করবে। অনুভূত তীব্রতা সংবেদন স্তর (SL) দ্বারা চিহ্নিত করা হয়, যা একই ফ্রিকোয়েন্সিতে সনাক্তকরণ থ্রেশহোল্ডের উপরে dB হিসাবে সংজ্ঞায়িত করা হয়। সুতরাং, কম্পন ত্বরণ প্রশস্ততা (G শিখরে) নিম্নরূপ গণনা করা যেতে পারে:
\(Amplitude(G) =10^\frac{Amplitude(db)}{20}\)
যেখানে প্রশস্ততা dB হল একটি নির্দিষ্ট ফ্রিকোয়েন্সিতে SL এবং সনাক্তকরণ থ্রেশহোল্ডের (নিম্নলিখিত প্লটে অর্ডিনেট বরাবর মান) যোগফল।
এইভাবে, PWLE API নিশ্চিত করে যে অনুভূত তীব্রতা ধারাবাহিক জোড়া নিয়ন্ত্রণ বিন্দুর মধ্যে রৈখিকভাবে পরিবর্তিত হয়।
নিম্নলিখিত প্লটটি টেম্পোরাল ফ্রিকোয়েন্সির ফাংশন হিসাবে 10, 20, 30, 40, এবং 50 dB SL-এ কম্পন ত্বরণ স্তর 2 , মানব হ্যাপটিক উপলব্ধি সনাক্তকরণ থ্রেশহোল্ড (0 dB SL) সহ দেখায়।
চিত্র ৩. কম্পন ত্বরণের মাত্রা।
সর্বোচ্চ আউটপুট ত্বরণ বক্ররেখা থেকে ফ্রিকোয়েন্সি নির্ধারণ করুন
এই বিভাগটি ডিভাইস থেকে সর্বোচ্চ আউটপুট ত্বরণ বক্ররেখা থেকে ফ্রিকোয়েন্সি কীভাবে পেতে হয় তার একটি সাধারণ নির্দেশিকা প্রদান করে, যা আপনি FOAM ডেটা তৈরি করতে ব্যবহার করেন।
সর্বোচ্চ ভোল্টেজ বক্ররেখা (V) বের করো
V হলো সর্বোচ্চ ভোল্টেজ যা ভাইব্রেটরের অপারেটিং ফ্রিকোয়েন্সি রেঞ্জের উপরে নিরাপদে প্রয়োগ করা যেতে পারে। এটি নিশ্চিত করে যে ভাইব্রেটরটি নিরাপদ সীমার মধ্যে কাজ করে, ক্ষতি রোধ করে এবং কম্পনের আউটপুট সর্বাধিক করে।
যদি হার্ডওয়্যারে ভোল্টেজ সীমাবদ্ধতা বৈশিষ্ট্য থাকে, তাহলে সমর্থিত ফ্রিকোয়েন্সি পরিসরে সর্বাধিক অর্জনযোগ্য ভোল্টেজ সরাসরি পরিমাপ করতে এটি ব্যবহার করুন।
সর্বোচ্চ ত্বরণ (M) গণনা করুন
M হল সর্বোচ্চ ত্বরণ, যা আপনি বিভিন্ন পদ্ধতির মাধ্যমে গণনা করতে পারেন। এই বিভাগটি রৈখিক অনুরণনকারী অ্যাকচুয়েটর (LRA) ব্যবহার করে ডিভাইসগুলির জন্য একটি পদ্ধতি দেখায়।
এই পদ্ধতিটি একটি নির্দিষ্ট ফ্রিকোয়েন্সিতে সর্বাধিক প্রয়োগিত ভোল্টেজকে একটি সংশ্লিষ্ট সর্বোচ্চ ত্বরণ মানে রূপান্তর করে, যা G পিক-এ প্রকাশ করা হয়।
এই রূপান্তরের জন্য ব্যবহৃত মূল সমীকরণটি হল:
\(\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}\)
উদাহরণস্বরূপ, যদি মডিউল ত্বরণ ১ গ্রাম হয় এবং ফোন ত্বরণ ২.৫ গ্রাম হয়, তাহলে Loc_coeff = ২.৫। এটি ২.৫x পরিবর্ধন নির্দেশ করে।
অ্যান্ড্রয়েড ফ্রেমওয়ার্ক হার্টজ ইউনিটে ফ্রিকোয়েন্সি নেয়, তাই FOAM ডেটা তৈরি করার সময় HAL কে প্রতি সেকেন্ডে ফ্রিকোয়েন্সি ইউনিটকে রেডিয়ান থেকে হার্টজে রূপান্তর করতে হবে।
FOAM কার্ভ তৈরি করুন
FOAM বক্ররেখা নির্ধারণ করতে সর্বোচ্চ ভোল্টেজ বক্ররেখা ( V ) এবং ত্বরণ গণনা ( M ) একত্রিত করুন:
- আপনার পছন্দসই পরিসরের প্রতিটি ফ্রিকোয়েন্সি (
f) এর জন্য, আপনার সর্বোচ্চ ভোল্টেজ বক্ররেখা থেকে সংশ্লিষ্ট সর্বোচ্চ ভোল্টেজV(f)খুঁজুন। - উপরের সমীকরণটি ব্যবহার করে সেই ফ্রিকোয়েন্সিতে সর্বোচ্চ ত্বরণ গণনা করুন,
Vsysএর পরিবর্তেV(f)এবংwএর পরিবর্তে সংশ্লিষ্টfব্যবহার করুন। এটি আপনাকেM(V(f), f)দেবে। - এই গণনা করা ত্বরণ হল আপনার
FOAM(f)মান।
FOAM ডেটা প্রকাশ করুন
FOAM বক্ররেখা তৈরি হওয়ার পর, HAL বক্ররেখাটিকে FrequencyAccelerationMapEntry অবজেক্টের তালিকা হিসেবে উপস্থাপন করে। প্রতিটি এন্ট্রি ম্যাপিংয়ে একটি বিন্দু সংজ্ঞায়িত করে, একটি ফ্রিকোয়েন্সি (হার্টজে) এবং এর সংশ্লিষ্ট সর্বোচ্চ আউটপুট ত্বরণ (G পিক) নির্দিষ্ট করে।
যদিও FOAM-এর রেজোলিউশনের জন্য কোনও কঠোর প্রয়োজনীয়তা নেই, আমরা একটি সর্বোচ্চ শিখর দিয়ে বক্ররেখা সংজ্ঞায়িত করার পরামর্শ দিচ্ছি। কম্পনের প্রভাবগুলি ম্যাপ করার জন্য বেসিক এনভেলপ API-তে শুধুমাত্র প্রথম শিখর ব্যবহার করা হয়। মধ্যবর্তী ত্বরণ মান নির্ধারণের সময় রৈখিক ইন্টারপোলেশনের নির্ভুলতা অপ্টিমাইজ করার জন্য, আমরা শিখরের চারপাশে একটি উচ্চ ফ্রিকোয়েন্সি রেজোলিউশন সংজ্ঞায়িত করার পরামর্শ দিচ্ছি। উদাহরণস্বরূপ, শিখর ফ্রিকোয়েন্সির +/- 10 Hz সীমার মধ্যে 1 Hz ধাপ ব্যবহার করুন।
ডিভাইসের ক্ষমতা এবং সীমাবদ্ধতা
অ্যান্ড্রয়েড ১৬ এবং উচ্চতর সংস্করণের জন্য, ডেভেলপারদের তাদের PWLE প্রভাবগুলি অপ্টিমাইজ করতে এবং ডিভাইস জুড়ে সামঞ্জস্যতা নিশ্চিত করতে সহায়তা করার জন্য, অ্যান্ড্রয়েড ডিভাইসের PWLE ক্ষমতাগুলি অনুসন্ধানের জন্য HAL API অন্তর্ভুক্ত করে। এই পদ্ধতিগুলি ডিভাইসের সীমাবদ্ধতা সম্পর্কে তথ্য প্রদান করে, যেমন সর্বনিম্ন বা সর্বাধিক PWLE আদিম সময়কাল এবং একটি PWLE রচনায় অনুমোদিত আদিম সংখ্যা।
HAL API গুলির মধ্যে রয়েছে:
-
CAP_COMPOSE_PWLE_EFFECTS_V2: ডিভাইসটি এই বৈশিষ্ট্যটি সমর্থন করলেIVibrator.getCapabilitiesদ্বারা ফেরত পাঠানো হয়। -
getFrequencyToOutputAccelerationMap: FOAM ডেটা উদ্ধার করে। -
getPwleV2PrimitiveDurationMinMillis: যেকোনো আদিম PWLE-এর জন্য অনুমোদিত সর্বনিম্ন সময়কাল মিলিসেকেন্ডে পুনরুদ্ধার করে। -
getPwleV2PrimitiveDurationMaxMillis: মিলিসেকেন্ডে যেকোনো আদিম PWLE-এর জন্য অনুমোদিত সর্বোচ্চ সময়কাল পুনরুদ্ধার করে। -
getPwleV2CompositionSizeMax:IVibrator.composePwleV2দ্বারা সমর্থিত সর্বাধিক সংখ্যক PWLE প্রিমিটিভ উদ্ধার করে।
এই তথ্য ডেভেলপারদের কাছে প্রকাশ করা হয় যাতে তারা তাদের প্রভাবগুলিকে লক্ষ্য ডিভাইসের নির্দিষ্ট ক্ষমতার সাথে খাপ খাইয়ে নিতে পারে, বিশেষ করে যখন উন্নত PWLE API ব্যবহার করা হয়।
বেসিক API ব্যবহার করে তৈরি করা ইফেক্ট পরিচালনা করার সময়ও ফ্রেমওয়ার্ক এই API গুলি ব্যবহার করে। যদি কোনও ইফেক্ট ডিভাইসের সীমাবদ্ধতা অতিক্রম করে (উদাহরণস্বরূপ, অনেক বেশি PWLE পয়েন্ট বা সর্বোচ্চ সময়কাল অতিক্রম করে), তাহলে ফ্রেমওয়ার্ক স্বয়ংক্রিয়ভাবে অনুমোদিত সীমানার মধ্যে ফিট করার জন্য ইফেক্টটিকে সামঞ্জস্য করে। এই সমন্বয় প্রক্রিয়াটি যতটা সম্ভব ডিজাইনের মূল উদ্দেশ্য এবং অনুভূতি সংরক্ষণ করার চেষ্টা করে।
বোলানোস্কি জুনিয়র, এসজে, এবং অন্যান্যদের চিত্র ১-এ স্থানচ্যুতি থ্রেশহোল্ড থেকে থ্রেশহোল্ড ডেটা রূপান্তরিত করা হয়েছে। " চারটি চ্যানেল স্পর্শের যান্ত্রিক দিকগুলিকে মধ্যস্থতা করে ।" জার্নাল অফ দ্য অ্যাকোস্টিক্যাল সোসাইটি অফ আমেরিকা 84(5): 1680-1694 (1988)। এই অনলাইন টিউটোরিয়ালটি ত্বরণ প্রশস্ততা এবং স্থানচ্যুতি প্রশস্ততার মধ্যে রূপান্তর ব্যাখ্যা করে। ↩
ভেরিলো, আরটি, ইত্যাদির চিত্র ৮ থেকে তথ্যটি অনুমান করা হয়েছে। " ভাইব্রোট্যাকটাইল উদ্দীপনার সংবেদন মাত্রা ।" উপলব্ধি এবং মনোপদার্থবিদ্যা 6: 366-372 (1969)। ↩