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