সেন্সর প্রকার

এই বিভাগটি সেন্সর অক্ষ, বেস সেন্সর এবং যৌগিক সেন্সর (ক্রিয়াকলাপ, মনোভাব, আনক্যালিব্রেটেড, এবং মিথস্ক্রিয়া) বর্ণনা করে।

সেন্সর অক্ষ

অনেক সেন্সর থেকে সেন্সর ইভেন্ট মানগুলি একটি নির্দিষ্ট ফ্রেমে প্রকাশ করা হয় যা ডিভাইসের সাথে স্থির।

মোবাইল ডিভাইস অক্ষ

সেন্সর এপিআই শুধুমাত্র স্ক্রিনের স্বাভাবিক স্থিতির সাথে আপেক্ষিক (যখন ডিভাইসের স্ক্রীনের অভিযোজন পরিবর্তন হয় তখন অক্ষগুলি অদলবদল করা হয় না।

মোবাইল ডিভাইসের জন্য সেন্সর API এর সমন্বয় ব্যবস্থা

চিত্র 1. সেন্সর API দ্বারা ব্যবহৃত সমন্বয় সিস্টেম (একটি মোবাইল ডিভাইসের সাথে সম্পর্কিত)

স্বয়ংচালিত অক্ষ

অ্যান্ড্রয়েড অটোমোটিভ বাস্তবায়নে, গাড়ির বডি ফ্রেমের ক্ষেত্রে অক্ষগুলিকে সংজ্ঞায়িত করা হয়। গাড়ির রেফারেন্স ফ্রেমের উৎপত্তি হল পিছনের এক্সেলের কেন্দ্র। গাড়ির রেফারেন্স ফ্রেমটি ভিত্তিক যাতে:

  • X-অক্ষ ডানদিকে নির্দেশ করে এবং একটি অনুভূমিক সমতলে রয়েছে, যা প্রতিসাম্যের যানবাহনের সমতলের লম্ব।
  • Y-অক্ষ সামনের দিকে নির্দেশ করে এবং একটি অনুভূমিক সমতলে রয়েছে।
স্বয়ংচালিত ডিভাইসের জন্য সেন্সর API এর সমন্বয় ব্যবস্থা

চিত্র 2. সেন্সর API দ্বারা ব্যবহৃত সমন্বয় সিস্টেম (একটি স্বয়ংচালিত ডিভাইসের সাথে সম্পর্কিত)

গাড়ির রেফারেন্স ফ্রেম হল একটি ডান হাতের সমন্বয় ব্যবস্থা। অতএব, Z-অক্ষ উপরে নির্দেশ করে।

রেফারেন্স ফ্রেমের Z-অক্ষ মহাকর্ষের সাথে সারিবদ্ধ, যার অর্থ হল X-অক্ষ এবং Y-অক্ষ উভয়ই অনুভূমিক। ফলস্বরূপ, Y-অক্ষটি সর্বদা সামনের অক্ষের মধ্য দিয়ে যেতে পারে না।

বেস সেন্সর

বেস সেন্সর প্রকারের নামকরণ করা হয় তাদের প্রতিনিধিত্ব করা শারীরিক সেন্সরগুলির নামানুসারে। এই সেন্সরগুলি একটি একক শারীরিক সেন্সর থেকে ডেটা রিলে করে (যৌগিক সেন্সরগুলির বিপরীতে যা অন্যান্য সেন্সর থেকে ডেটা তৈরি করে)। বেস সেন্সর ধরনের উদাহরণ অন্তর্ভুক্ত:

  • SENSOR_TYPE_ACCELEROMETER
  • SENSOR_TYPE_GYROSCOPE
  • SENSOR_TYPE_MAGNETOMETER

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

উদাহরণস্বরূপ, একটি বেস সেন্সরের বৈশিষ্ট্যগুলি নিম্নলিখিত ব্যবহারের ক্ষেত্রে তার অন্তর্নিহিত শারীরিক সেন্সরের বৈশিষ্ট্য থেকে আলাদা হতে পারে:

  • একটি জাইরোস্কোপ চিপ 1 ডিগ্রী/সেকেন্ডের বায়াস রেঞ্জের জন্য রেট করা হয়েছে।
    • ফ্যাক্টরি ক্রমাঙ্কন, তাপমাত্রা ক্ষতিপূরণ এবং পক্ষপাতের ক্ষতিপূরণ প্রয়োগ করার পরে, Android সেন্সরের প্রকৃত পক্ষপাত হ্রাস করা হবে, এমন একটি বিন্দুতে হতে পারে যেখানে পক্ষপাতটি 0.01 ডিগ্রি/সেকেন্ডের নীচে থাকার নিশ্চয়তা দেওয়া হয়৷
    • এই পরিস্থিতিতে, আমরা বলি যে অ্যান্ড্রয়েড সেন্সরের 0.01 ডিগ্রি/সেকেন্ডের নিচে একটি পক্ষপাত রয়েছে, যদিও অন্তর্নিহিত সেন্সরের ডেটা শীট 1 ডিগ্রি/সেকেন্ড বলেছে।
  • 100 uW শক্তি খরচ সহ একটি ব্যারোমিটার।
    • যেহেতু জেনারেট করা ডেটা চিপ থেকে SoC-তে স্থানান্তর করা প্রয়োজন, তাই ব্যারোমিটার অ্যান্ড্রয়েড সেন্সর থেকে ডেটা সংগ্রহ করার জন্য প্রকৃত পাওয়ার খরচ অনেক বেশি হতে পারে, উদাহরণস্বরূপ 1000 uW।
    • এই পরিস্থিতিতে, আমরা বলি যে অ্যান্ড্রয়েড সেন্সরের পাওয়ার খরচ 1000 uW, যদিও ব্যারোমিটার চিপ লিডগুলিতে পাওয়ার খরচ 100uW হয়।
  • একটি ম্যাগনেটোমিটার যা ক্যালিব্রেট করার সময় 100uW খরচ করে, কিন্তু ক্যালিব্রেট করার সময় বেশি খরচ করে।
    • এর ক্রমাঙ্কন রুটিনের জন্য জাইরোস্কোপ সক্রিয় করা, 5000 uW ব্যবহার করা এবং কিছু অ্যালগরিদম চালানোর প্রয়োজন হতে পারে, আরও 900 uW খরচ হবে।
    • এই পরিস্থিতিতে, আমরা বলি যে (ম্যাগনেটোমিটার) অ্যান্ড্রয়েড সেন্সরের সর্বাধিক শক্তি খরচ 6000 uW।
    • এই ক্ষেত্রে, গড় বিদ্যুত খরচ হল আরও দরকারী পরিমাপ, এবং এটি HAL এর মাধ্যমে সেন্সর স্ট্যাটিক বৈশিষ্ট্যগুলিতে রিপোর্ট করা হয়।

অ্যাক্সিলোমিটার

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি অ্যাক্সিলোমিটার সেন্সর তিনটি সেন্সর অক্ষ বরাবর ডিভাইসের ত্বরণ রিপোর্ট করে। পরিমাপ করা ত্বরণের মধ্যে শারীরিক ত্বরণ (বেগের পরিবর্তন) এবং অভিকর্ষ উভয়ই অন্তর্ভুক্ত। sensors_event_t.acceleration-এর x, y, এবং z ক্ষেত্রে পরিমাপ রিপোর্ট করা হয়।

সমস্ত মান SI ইউনিটে (m/s^2) এবং তিনটি সেন্সর অক্ষ বরাবর মাধ্যাকর্ষণ বল বিয়োগ করে ডিভাইসের ত্বরণ পরিমাপ করে।

এখানে উদাহরণ আছে:

  • (x, y, z) এর আদর্শ শূন্যের কাছাকাছি থাকা উচিত।
  • যখন ডিভাইসটি টেবিলের উপর সমতল থাকে এবং তার বাম দিকে ডান দিকে ঠেলে দেওয়া হয়, তখন x ত্বরণ মান ধনাত্মক হয়।
  • যখন ডিভাইসটি একটি টেবিলে সমতল থাকে, তখন z বরাবর ত্বরণের মান +9.81 alo হয়, যা ডিভাইসের ত্বরণ (0 m/s^2) বিয়োগ মাধ্যাকর্ষণ শক্তি (-9.81 m/s^2) এর সাথে মিলে যায়।
  • যখন ডিভাইসটি টেবিলের উপর সমতল থাকে এবং আকাশের দিকে ধাক্কা দেওয়া হয়, তখন ত্বরণ মান +9.81-এর চেয়ে বেশি হয়, যা ডিভাইসের ত্বরণ (+A m/s^2) বিয়োগ মাধ্যাকর্ষণ বল (-9.81 m) এর সাথে মিলে যায় /s^2)।

রিডিংগুলি ব্যবহার করে ক্রমাঙ্কিত করা হয়:

  • তাপমাত্রা ক্ষতিপূরণ
  • অনলাইন পক্ষপাত ক্রমাঙ্কন
  • অনলাইন স্কেল ক্রমাঙ্কন

পক্ষপাত এবং স্কেল ক্রমাঙ্কন শুধুমাত্র সেন্সর নিষ্ক্রিয় থাকাকালীন আপডেট করতে হবে, যাতে স্ট্রিমিংয়ের সময় মানগুলি লাফানোর কারণ না হয়।

অ্যাক্সিলোমিটারও রিপোর্ট করে যে এটি কতটা নির্ভুল আশা করে sensors_event_t.acceleration.status এর মাধ্যমে রিডিং হবে। এই ক্ষেত্রের সম্ভাব্য মান সম্পর্কে আরও তথ্যের জন্য SensorManager এর SENSOR_STATUS_* ধ্রুবক দেখুন।

পরিবেষ্টিত তাপমাত্রা

রিপোর্টিং-মোড: অন-চেঞ্জ

getDefaultSensor(SENSOR_TYPE_AMBIENT_TEMPERATURE) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

এই সেন্সর ডিগ্রী সেলসিয়াসে পরিবেষ্টিত (রুম) তাপমাত্রা প্রদান করে।

চৌম্বক ক্ষেত্র সেন্সর

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

SENSOR_TYPE_GEOMAGNETIC_FIELD == SENSOR_TYPE_MAGNETIC_FIELD

একটি চৌম্বক ক্ষেত্র সেন্সর (এটি ম্যাগনেটোমিটার নামেও পরিচিত) পরিবেষ্টিত চৌম্বক ক্ষেত্র রিপোর্ট করে, যেমনটি তিনটি সেন্সর অক্ষ বরাবর পরিমাপ করা হয়।

sensors_event_t.magnetic এর x, y, এবং z ক্ষেত্রগুলিতে পরিমাপ করা হয়েছে এবং সমস্ত মান মাইক্রো-টেসলা (uT) এ রয়েছে।

sensors_event_t.magnetic.status মাধ্যমে এটির রিডিং কতটা সঠিক বলে আশা করে ম্যাগনেটোমিটারও রিপোর্ট করে। এই ক্ষেত্রের সম্ভাব্য মান সম্পর্কে আরও তথ্যের জন্য SensorManager এর SENSOR_STATUS_* ধ্রুবক দেখুন।

রিডিংগুলি ব্যবহার করে ক্রমাঙ্কিত করা হয়:

  • তাপমাত্রা ক্ষতিপূরণ
  • কারখানা (বা অনলাইন) নরম-লোহা ক্রমাঙ্কন
  • অনলাইন হার্ড-লোহা ক্রমাঙ্কন

জাইরোস্কোপ

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_GYROSCOPE) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি জাইরোস্কোপ সেন্সর তিনটি সেন্সর অক্ষের চারপাশে ডিভাইসের ঘূর্ণনের হার রিপোর্ট করে।

ঘূর্ণন ঘড়ির কাঁটার বিপরীত দিকে ধনাত্মক (ডান-হাতের নিয়ম)। অর্থাৎ, উৎপত্তিস্থলে অবস্থানরত কোনো ডিভাইসে x, y, বা z অক্ষের কিছু ইতিবাচক অবস্থান থেকে দেখে একজন পর্যবেক্ষক ইতিবাচক ঘূর্ণন রিপোর্ট করবে যদি ডিভাইসটিকে ঘড়ির কাঁটার বিপরীতে ঘোরানো হয়। মনে রাখবেন যে এটি ইতিবাচক ঘূর্ণনের মানক গাণিতিক সংজ্ঞা এবং রোলের মহাকাশ সংজ্ঞার সাথে একমত নয়।

sensors_event_t.gyro এর x, y, এবং z ক্ষেত্রগুলিতে পরিমাপ রিপোর্ট করা হয়েছে এবং সমস্ত মান রেডিয়ান প্রতি সেকেন্ডে (rad/s)।

রিডিংগুলি ব্যবহার করে ক্রমাঙ্কিত করা হয়:

  • তাপমাত্রা ক্ষতিপূরণ
  • কারখানা (বা অনলাইন) স্কেল ক্ষতিপূরণ
  • অনলাইন পক্ষপাত ক্রমাঙ্কন (ড্রিফট অপসারণ করতে)

gyroscope এছাড়াও রিপোর্ট করে যে এটি sensors_event_t.gyro.status মাধ্যমে এর রিডিং কতটা সঠিক বলে আশা করে। এই ক্ষেত্রের সম্ভাব্য মান সম্পর্কে আরও তথ্যের জন্য SensorManager এর SENSOR_STATUS_* ধ্রুবক দেখুন।

ম্যাগনেটোমিটার এবং অ্যাক্সিলোমিটারের উপর ভিত্তি করে জাইরোস্কোপকে অনুকরণ করা যায় না, কারণ এটি স্থানীয় সামঞ্জস্যতা এবং প্রতিক্রিয়াশীলতা হ্রাস করতে পারে। এটি অবশ্যই একটি সাধারণ জাইরোস্কোপ চিপের উপর ভিত্তি করে তৈরি করা উচিত।

হৃদ কম্পন

রিপোর্টিং-মোড: অন-চেঞ্জ

getDefaultSensor(SENSOR_TYPE_HEART_RATE) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি হার্ট রেট সেন্সর ডিভাইসটি স্পর্শকারী ব্যক্তির বর্তমান হার্ট রেট রিপোর্ট করে।

প্রতি মিনিটে স্পন্দনের বর্তমান হার্ট রেট (BPM) sensors_event_t.heart_rate.bpm এ রিপোর্ট করা হয় এবং সেন্সরের স্থিতি sensors_event_t.heart_rate.status এ রিপোর্ট করা হয়। এই ক্ষেত্রের সম্ভাব্য মান সম্পর্কে আরও তথ্যের জন্য SensorManager এর SENSOR_STATUS_* ধ্রুবক দেখুন। বিশেষ করে, প্রথম অ্যাক্টিভেশনের সময়, ডিভাইসটি বডিতে নেই বলে জানা না থাকলে, প্রথম ইভেন্টের স্থিতি ক্ষেত্রটি SENSOR_STATUS_UNRELIABLE তে সেট করতে হবে। যেহেতু এই সেন্সরটি অন-চেঞ্জ, ইভেন্টগুলি তৈরি হয় যখন এবং শুধুমাত্র যখন heart_rate.bpm বা heart_rate.status শেষ ইভেন্ট থেকে পরিবর্তিত হয়। ইভেন্টগুলি প্রতিটি sampling_period চেয়ে দ্রুত তৈরি হয় না।

sensor_t.requiredPermission সর্বদা SENSOR_PERMISSION_BODY_SENSORS হয়।

আলো

রিপোর্টিং-মোড: অন-চেঞ্জ

getDefaultSensor(SENSOR_TYPE_LIGHT) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি লাইট সেন্সর এসআই লাক্স ইউনিটে বর্তমান আলোকসজ্জার প্রতিবেদন করে।

পরিমাপ sensors_event_t.light এ রিপোর্ট করা হয়েছে।

প্রক্সিমিটি

রিপোর্টিং-মোড: অন-চেঞ্জ

সাধারণত একটি জেগে ওঠা সেন্সর হিসাবে সংজ্ঞায়িত করা হয়

getDefaultSensor(SENSOR_TYPE_PROXIMITY) একটি ওয়েক-আপ সেন্সর প্রদান করে

একটি প্রক্সিমিটি সেন্সর সেন্সর থেকে নিকটতম দৃশ্যমান পৃষ্ঠের দূরত্ব রিপোর্ট করে।

অ্যান্ড্রয়েড 4.4 পর্যন্ত, প্রক্সিমিটি সেন্সরগুলি সর্বদা ওয়েক-আপ সেন্সর ছিল, যখন প্রক্সিমিটি পরিবর্তন শনাক্ত করে তখন SoC কে জাগিয়ে তোলে। Android 4.4-এর পরে, আমরা প্রথমে এই সেন্সরের ওয়েক-আপ সংস্করণটি প্রয়োগ করার পরামর্শ দিই, কারণ এটি ফোন কল করার সময় স্ক্রিন চালু এবং বন্ধ করতে ব্যবহৃত হয়।

পরিমাপটি sensors_event_t.distance দূরত্বে সেন্টিমিটারে রিপোর্ট করা হয়েছে। মনে রাখবেন যে কিছু প্রক্সিমিটি সেন্সর শুধুমাত্র একটি বাইনারি "কাছের" বা "দূর" পরিমাপ সমর্থন করে। এই ক্ষেত্রে, সেন্সর "দূর" অবস্থায় তার sensor_t.maxRange মান এবং "নিকট" অবস্থায় sensor_t.maxRange থেকে কম একটি মান রিপোর্ট করে।

চাপ

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_PRESSURE) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি চাপ সেন্সর (ব্যারোমিটার নামেও পরিচিত) হেক্টোপাস্কাল (এইচপিএ) এ বায়ুমণ্ডলীয় চাপ রিপোর্ট করে।

রিডিং ব্যবহার করে ক্রমাঙ্কিত করা হয়

  • তাপমাত্রা ক্ষতিপূরণ
  • কারখানার পক্ষপাত ক্রমাঙ্কন
  • কারখানার স্কেল ক্রমাঙ্কন

ব্যারোমিটার প্রায়ই উচ্চতার পরিবর্তন অনুমান করতে ব্যবহৃত হয়। পরম উচ্চতা অনুমান করার জন্য, সমুদ্রপৃষ্ঠের চাপ (আবহাওয়ার উপর নির্ভর করে পরিবর্তিত) একটি রেফারেন্স হিসাবে ব্যবহার করা আবশ্যক।

আপেক্ষিক আদ্রতা

রিপোর্টিং-মোড: অন-চেঞ্জ

getDefaultSensor(SENSOR_TYPE_RELATIVE_HUMIDITY) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি আপেক্ষিক আর্দ্রতা সেন্সর আপেক্ষিক পরিবেষ্টিত বায়ু আর্দ্রতা পরিমাপ করে এবং শতাংশে একটি মান প্রদান করে।

কম্পোজিট সেন্সর প্রকার

একটি যৌগিক সেন্সর এক বা একাধিক শারীরিক সেন্সর থেকে ডেটা প্রক্রিয়াকরণ এবং/অথবা ফিউজ করে ডেটা তৈরি করে। (যেকোন সেন্সর যেটি বেস সেন্সর নয় তাকে একটি যৌগিক সেন্সর বলা হয়।) যৌগিক সেন্সরগুলির উদাহরণগুলির মধ্যে রয়েছে:

  • স্টেপ ডিটেক্টর এবং উল্লেখযোগ্য গতি , যা সাধারণত একটি অ্যাক্সিলোমিটারের উপর ভিত্তি করে থাকে, তবে অন্যান্য সেন্সরগুলির উপরও ভিত্তি করে হতে পারে, যদি শক্তি খরচ এবং নির্ভুলতা গ্রহণযোগ্য হয়।
  • গেম রোটেশন ভেক্টর , একটি অ্যাক্সিলোমিটার এবং একটি জাইরোস্কোপের উপর ভিত্তি করে।
  • আন-ক্যালিব্রেটেড জাইরোস্কোপ , যা জাইরোস্কোপ বেস সেন্সরের মতো, কিন্তু বায়াস ক্রমাঙ্কন পরিমাপে সংশোধন করার পরিবর্তে আলাদাভাবে রিপোর্ট করা হচ্ছে।

বেস সেন্সরগুলির মতো, যৌগিক সেন্সরগুলির বৈশিষ্ট্যগুলি তাদের চূড়ান্ত ডেটার বৈশিষ্ট্যগুলি থেকে আসে। উদাহরণস্বরূপ, একটি গেম রোটেশন ভেক্টরের শক্তি খরচ সম্ভবত অ্যাক্সিলোমিটার চিপ, জাইরোস্কোপ চিপ, ডেটা প্রক্রিয়াকরণকারী চিপ এবং ডেটা পরিবহনকারী বাসগুলির শক্তি খরচের সমষ্টির সমান। আরেকটি উদাহরণ হিসাবে, একটি গেম রোটেশন ভেক্টরের ড্রিফ্ট শারীরিক সেন্সরের বৈশিষ্ট্যগুলির মতো ক্রমাঙ্কন অ্যালগরিদমের মানের উপর নির্ভর করে।

নিম্নলিখিত সারণী উপলব্ধ যৌগিক সেন্সর প্রকারের তালিকা করে। প্রতিটি যৌগিক সেন্সর এক বা একাধিক শারীরিক সেন্সর থেকে ডেটার উপর নির্ভর করে। আনুমানিক ফলাফলের জন্য অন্যান্য অন্তর্নিহিত শারীরিক সেন্সর নির্বাচন করা এড়িয়ে চলুন কারণ তারা একটি দুর্বল ব্যবহারকারীর অভিজ্ঞতা প্রদান করে।

সেন্সর প্রকার শ্রেণী অন্তর্নিহিত শারীরিক সেন্সর রিপোর্টিং মোড

খেলা ঘূর্ণন ভেক্টর

মনোভাব

অ্যাক্সিলোমিটার, জাইরোস্কোপ, ম্যাগনেটোমিটার ব্যবহার করা উচিত নয়

একটানা

ভূ-চৌম্বকীয় ঘূর্ণন ভেক্টর কম পাওয়ার সেন্সর

মনোভাব

অ্যাক্সিলোমিটার, ম্যাগনেটোমিটার, জাইরোস্কোপ ব্যবহার করা উচিত নয়

একটানা

দৃষ্টিভঙ্গি কম পাওয়ার সেন্সর

মিথষ্ক্রিয়া

অনির্ধারিত

এক সুযোগ

মহাকর্ষ

মনোভাব

অ্যাক্সিলোমিটার, জাইরোস্কোপ

একটানা

জাইরোস্কোপ ক্যালিব্রেটেড

ক্যালিব্রেটেড

জাইরোস্কোপ

একটানা

রৈখিক ত্বরণ

কার্যকলাপ

অ্যাক্সিলোমিটার, জাইরোস্কোপ (যদি উপস্থিত থাকে), বা ম্যাগনেটোমিটার (যদি গাইরো উপস্থিত না থাকে)

একটানা

চৌম্বক ক্ষেত্র অক্যালিব্রেটেড

ক্যালিব্রেটেড

ম্যাগনেটোমিটার

একটানা

ওরিয়েন্টেশন (অবঞ্চিত)

মনোভাব

অ্যাক্সিলোমিটার, ম্যাগনেটোমিটার, জাইরোস্কোপ (যদি উপস্থিত থাকে)

একটানা

অঙ্গভঙ্গি পিক আপ কম পাওয়ার সেন্সর

মিথষ্ক্রিয়া

অনির্ধারিত

এক সুযোগ

ঘূর্ণন ভেক্টর

মনোভাব

অ্যাক্সিলোমিটার, ম্যাগনেটোমিটার, জাইরোস্কোপ

একটানা

উল্লেখযোগ্য গতি কম পাওয়ার সেন্সর

কার্যকলাপ

অ্যাক্সিলোমিটার (অথবা খুব কম শক্তি পর্যন্ত অন্য)

এক সুযোগ

ধাপ কাউন্টার কম পাওয়ার সেন্সর

কার্যকলাপ

অ্যাক্সিলোমিটার

পরিবর্তন বিষয়ক

স্টেপ ডিটেক্টর কম পাওয়ার সেন্সর

কার্যকলাপ

অ্যাক্সিলোমিটার

বিশেষ

টিল্ট ডিটেক্টর কম পাওয়ার সেন্সর

কার্যকলাপ

অ্যাক্সিলোমিটার

বিশেষ

জেগে ওঠার ভঙ্গি কম পাওয়ার সেন্সর

মিথষ্ক্রিয়া

অনির্ধারিত

এক সুযোগ

কম পাওয়ার সেন্সর = কম শক্তির সেন্সর

কার্যকলাপ যৌগিক সেন্সর

রৈখিক ত্বরণ

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার এবং (যদি উপস্থিত থাকে) জাইরোস্কোপ (বা ম্যাগনেটোমিটার যদি জাইরোস্কোপ না থাকে)

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_LINEAR_ACCELERATION) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি রৈখিক ত্বরণ সেন্সর সেন্সর ফ্রেমে ডিভাইসের রৈখিক ত্বরণ রিপোর্ট করে, মাধ্যাকর্ষণ সহ নয়।

আউটপুটটি ধারণাগতভাবে: অ্যাক্সিলোমিটারের আউটপুট বিয়োগ মাধ্যাকর্ষণ সেন্সরের আউটপুট। এটি sensors_event_t.acceleration এর x, y, এবং z ক্ষেত্রে m/s^2 এ রিপোর্ট করা হয়েছে।

যখন ডিভাইসটি অচল থাকে তখন সমস্ত অক্ষের রিডিং 0 এর কাছাকাছি হওয়া উচিত।

যদি ডিভাইসটিতে একটি জাইরোস্কোপ থাকে, তবে লিনিয়ার অ্যাক্সিলারেশন সেন্সরকে অবশ্যই জাইরোস্কোপ এবং অ্যাক্সিলোমিটারকে ইনপুট হিসাবে ব্যবহার করতে হবে।

যদি ডিভাইসে জাইরোস্কোপ না থাকে, তাহলে রৈখিক ত্বরণ সেন্সরকে অবশ্যই অ্যাক্সিলোমিটার এবং ম্যাগনেটোমিটারকে ইনপুট হিসেবে ব্যবহার করতে হবে।

উল্লেখযোগ্য গতি

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার (অথবা কম শক্তি হিসাবে অন্য)

রিপোর্টিং-মোড: এক-শট

স্বল্প শক্তি

এই সেন্সরের শুধুমাত্র জাগ্রত সংস্করণ প্রয়োগ করুন।

getDefaultSensor(SENSOR_TYPE_SIGNIFICANT_MOTION) একটি ওয়েক-আপ সেন্সর প্রদান করে

একটি উল্লেখযোগ্য গতি শনাক্ত করার সময় একটি উল্লেখযোগ্য গতি আবিষ্কারক ট্রিগার করে: একটি গতি যা ব্যবহারকারীর অবস্থানে পরিবর্তন আনতে পারে।

এই ধরনের উল্লেখযোগ্য গতির উদাহরণ হল:

  • হাঁটা বা বাইক চালানো
  • চলন্ত গাড়ি, কোচ বা ট্রেনে বসা

এমন পরিস্থিতির উদাহরণ যা উল্লেখযোগ্য গতিকে ট্রিগার করে না:

  • পকেটে ফোন এবং ব্যক্তি নড়ছে না
  • ফোনটি একটি টেবিলে রয়েছে এবং কাছাকাছি ট্র্যাফিক বা ওয়াশিং মেশিনের কারণে টেবিলটি কিছুটা কাঁপছে৷

উচ্চ স্তরে, অবস্থান নির্ধারণের শক্তি খরচ কমাতে উল্লেখযোগ্য গতি আবিষ্কারক ব্যবহার করা হয়। যখন স্থানীয়করণ অ্যালগরিদমগুলি সনাক্ত করে যে ডিভাইসটি স্থির, তারা একটি কম-পাওয়ার মোডে স্যুইচ করতে পারে, যেখানে ব্যবহারকারীর অবস্থান পরিবর্তন করার সময় তারা ডিভাইসটিকে জাগানোর জন্য উল্লেখযোগ্য গতির উপর নির্ভর করে।

এই সেন্সর কম শক্তি হতে হবে. এটি পাওয়ার খরচের জন্য একটি ট্রেডঅফ করে যার ফলে অল্প পরিমাণে মিথ্যা নেতিবাচক হতে পারে। এটি কয়েকটি কারণে করা হয়:

  • এই সেন্সরের লক্ষ্য শক্তি সঞ্চয় করা।
  • একটি ইভেন্ট ট্রিগার করা যখন ব্যবহারকারী নড়ছে না (ফলস ইতিবাচক) ক্ষমতার দিক থেকে ব্যয়বহুল, তাই এটি এড়ানো উচিত।
  • ব্যবহারকারী যখন সরে যাচ্ছেন তখন কোনো ইভেন্ট ট্রিগার না করা (মিথ্যা নেতিবাচক) গ্রহণযোগ্য যতক্ষণ না এটি বারবার করা হয়। ব্যবহারকারী যদি 10 সেকেন্ড ধরে হাঁটতে থাকে, তাহলে সেই 10 সেকেন্ডের মধ্যে কোনো ইভেন্ট ট্রিগার না করা গ্রহণযোগ্য নয়।

প্রতিটি সেন্সর ইভেন্ট sensors_event_t.data[0]1 রিপোর্ট করে।

স্টেপ ডিটেক্টর

অন্তর্নিহিত ফিজিক্যাল সেন্সর: অ্যাক্সিলোমিটার (+ সম্ভবত কম শক্তি যতক্ষণ পর্যন্ত অন্য)

রিপোর্টিং-মোড: বিশেষ (প্রতি পদক্ষেপে একটি ইভেন্ট নেওয়া)

স্বল্প শক্তি

getDefaultSensor(SENSOR_TYPE_STEP_DETECTOR) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি স্টেপ ডিটেক্টর প্রতিবার ব্যবহারকারীর দ্বারা একটি পদক্ষেপ নেওয়ার সময় একটি ইভেন্ট তৈরি করে।

ইভেন্ট sensors_event_t.timestamp এর টাইমস্ট্যাম্প যখন পা মাটিতে আঘাত করে তখন ত্বরণে একটি উচ্চ বৈচিত্র তৈরি করে।

স্টেপ কাউন্টারের তুলনায়, স্টেপ ডিটেক্টরের কম লেটেন্সি থাকা উচিত (দুই সেকেন্ডের কম)। স্টেপ ডিটেক্টর এবং স্টেপ কাউন্টার উভয়ই শনাক্ত করে যে ব্যবহারকারী কখন হাঁটছেন, দৌড়াচ্ছেন এবং সিঁড়ি বেয়ে উঠছেন। ব্যবহারকারী যখন বাইক চালাচ্ছেন, গাড়ি চালাচ্ছেন বা অন্য যানবাহনে যাচ্ছেন তখন তাদের ট্রিগার করা উচিত নয়৷

এই সেন্সর কম শক্তি হতে হবে. অর্থাৎ, যদি ধাপ সনাক্তকরণ হার্ডওয়্যারে করা না যায় তবে এই সেন্সরটি সংজ্ঞায়িত করা উচিত নয়। বিশেষ করে, যখন স্টেপ ডিটেক্টর সক্রিয় থাকে এবং অ্যাক্সিলোমিটার না থাকে, তখন শুধুমাত্র পদক্ষেপগুলি বাধা সৃষ্টি করে (প্রতিটি অ্যাক্সিলোমিটার রিডিং নয়)।

sampling_period_ns স্টেপ ডিটেক্টরের উপর কোন প্রভাব ফেলে না।

প্রতিটি সেন্সর ইভেন্ট sensors_event_t.data[0]1 রিপোর্ট করে।

ধাপ কাউন্টার

অন্তর্নিহিত ফিজিক্যাল সেন্সর: অ্যাক্সিলোমিটার (+ সম্ভবত কম শক্তি যতক্ষণ পর্যন্ত অন্য)

রিপোর্টিং-মোড: অন-চেঞ্জ

স্বল্প শক্তি

getDefaultSensor(SENSOR_TYPE_STEP_COUNTER) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি স্টেপ কাউন্টার সক্রিয় করার সময় শেষ রিবুট করার পর থেকে ব্যবহারকারীর দ্বারা নেওয়া পদক্ষেপের সংখ্যা রিপোর্ট করে।

পরিমাপটি sensors_event_t.step_counteruint64_t হিসাবে রিপোর্ট করা হয়েছে এবং শুধুমাত্র একটি সিস্টেম রিবুটে শূন্যে রিসেট করা হয়েছে।

ইভেন্টের টাইমস্ট্যাম্প সেই সময়ে সেট করা হয় যখন সেই ইভেন্টের জন্য শেষ পদক্ষেপ নেওয়া হয়েছিল।

একটি ধাপের সময় বোঝার জন্য স্টেপ ডিটেক্টর সেন্সর টাইপ দেখুন।

স্টেপ ডিটেক্টরের তুলনায়, স্টেপ কাউন্টারে উচ্চতর লেটেন্সি থাকতে পারে (10 সেকেন্ড পর্যন্ত)। এই লেটেন্সি ধন্যবাদ, এই সেন্সর একটি উচ্চ নির্ভুলতা আছে; পুরো দিনের ব্যবস্থার পর ধাপ গণনা প্রকৃত ধাপ গণনার 10% এর মধ্যে হওয়া উচিত। স্টেপ ডিটেক্টর এবং স্টেপ কাউন্টার উভয়ই শনাক্ত করে যে ব্যবহারকারী কখন হাঁটছেন, দৌড়াচ্ছেন এবং সিঁড়ি বেয়ে উঠছেন। ব্যবহারকারী যখন বাইক চালাচ্ছেন, গাড়ি চালাচ্ছেন বা অন্য যানবাহনে যাচ্ছেন তখন তাদের ট্রিগার করা উচিত নয়৷

হার্ডওয়্যারকে অবশ্যই নিশ্চিত করতে হবে যে অভ্যন্তরীণ ধাপের সংখ্যা কখনই ওভারফ্লো না হয়। হার্ডওয়্যারের অভ্যন্তরীণ কাউন্টারের সর্বনিম্ন আকার 16 বিট হতে হবে। আসন্ন ওভারফ্লোর ক্ষেত্রে (সর্বাধিক প্রতি ~2^16 ধাপে), SoC জাগ্রত করা যেতে পারে যাতে ড্রাইভার কাউন্টার রক্ষণাবেক্ষণ করতে পারে।

ইন্টারঅ্যাকশনে যেমন বলা হয়েছে, এই সেন্সরটি কাজ করার সময়, এটি অন্য কোনো সেন্সর, বিশেষ করে, অ্যাক্সিলোমিটার, যা খুব ভালোভাবে ব্যবহার করা যেতে পারে, ব্যাহত করবে না।

যদি একটি নির্দিষ্ট ডিভাইস অপারেশনের এই মোডগুলিকে সমর্থন করতে না পারে, তাহলে এই সেন্সর প্রকারটি HAL দ্বারা রিপোর্ট করা উচিত নয়৷ অর্থাৎ, HAL-এ এই সেন্সরটিকে "অনুকরণ" করা গ্রহণযোগ্য নয়৷

এই সেন্সর কম শক্তি হতে হবে. অর্থাৎ, যদি ধাপ সনাক্তকরণ হার্ডওয়্যারে করা না যায়, তাহলে এই সেন্সরটি সংজ্ঞায়িত করা উচিত নয়। বিশেষ করে, যখন স্টেপ কাউন্টারটি সক্রিয় করা হয় এবং অ্যাক্সিলোমিটারটি না থাকে, তখন শুধুমাত্র পদক্ষেপগুলি বাধা সৃষ্টি করে (অ্যাক্সিলোমিটার ডেটা নয়)।

টিল্ট ডিটেক্টর

অন্তর্নিহিত ফিজিক্যাল সেন্সর: অ্যাক্সিলোমিটার (+ সম্ভবত কম শক্তি যতক্ষণ পর্যন্ত অন্য)

রিপোর্টিং-মোড: বিশেষ

স্বল্প শক্তি

এই সেন্সরের শুধুমাত্র জাগ্রত সংস্করণ প্রয়োগ করুন।

getDefaultSensor(SENSOR_TYPE_TILT_DETECTOR) একটি জেগে ওঠা সেন্সর প্রদান করে

একটি টিল্ট ডিটেক্টর প্রতিবার একটি টিল্ট ইভেন্ট সনাক্ত করা হলে একটি ইভেন্ট তৈরি করে।

একটি টিল্ট ইভেন্টকে 2-সেকেন্ডের উইন্ডোর গড় মাধ্যাকর্ষণটি অ্যাক্টিভেশন বা সেন্সর দ্বারা উত্পন্ন শেষ ঘটনা থেকে কমপক্ষে 35 ডিগ্রি পরিবর্তনের দিক দ্বারা সংজ্ঞায়িত করা হয়। এখানে অ্যালগরিদম:

  • reference_estimated_gravity = অ্যাক্টিভেশনের পর প্রথম সেকেন্ডে অ্যাক্সিলোমিটার পরিমাপের গড় বা যখন শেষ টিল্ট ইভেন্ট তৈরি হয়েছিল তখন আনুমানিক মাধ্যাকর্ষণ।
  • current_estimated_gravity = শেষ 2 সেকেন্ডে অ্যাক্সিলোমিটার পরিমাপের গড়।
  • ট্রিগার যখন angle(reference_estimated_gravity, current_estimated_gravity) > 35 degrees

ফোনের অভিযোজন পরিবর্তন না করে বড় ত্বরণ একটি কাত ইভেন্টকে ট্রিগার করবে না। উদাহরণস্বরূপ, একটি গাড়ি চালানোর সময় একটি তীক্ষ্ণ বাঁক বা শক্তিশালী ত্বরণ একটি কাত ইভেন্টকে ট্রিগার করবে না, যদিও গড় ত্বরণের কোণ 35 ডিগ্রির বেশি পরিবর্তিত হতে পারে। সাধারণত, এই সেন্সরটি শুধুমাত্র একটি অ্যাক্সিলোমিটারের সাহায্যে প্রয়োগ করা হয়। অন্যান্য সেন্সরগুলিও ব্যবহার করা যেতে পারে যদি তারা বিদ্যুৎ খরচ উল্লেখযোগ্যভাবে না বাড়ায়। এটি একটি কম-পাওয়ার সেন্সর যা SoC কে সাসপেন্ড মোডে যেতে দেয়। এইচএএল-এ এই সেন্সরটি অনুকরণ করবেন না। প্রতিটি সেন্সর ইভেন্ট sensors_event_t.data[0]1 রিপোর্ট করে।

মনোভাব যৌগিক সেন্সর

ঘূর্ণন ভেক্টর

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার, ম্যাগনেটোমিটার এবং জাইরোস্কোপ

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_ROTATION_VECTOR) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি ঘূর্ণন ভেক্টর সেন্সর পূর্ব-উত্তর-আপ স্থানাঙ্ক ফ্রেমের সাথে সম্পর্কিত ডিভাইসের অভিযোজন রিপোর্ট করে। এটি সাধারণত অ্যাক্সিলোমিটার, জাইরোস্কোপ এবং ম্যাগনেটোমিটার রিডিংয়ের একীকরণের মাধ্যমে প্রাপ্ত হয়। পূর্ব-উত্তর-আপ সমন্বয় ব্যবস্থাকে একটি সরাসরি অর্থনর্মাল ভিত্তি হিসাবে সংজ্ঞায়িত করা হয় যেখানে:

  • X পূর্বদিকে নির্দেশ করে এবং স্থলের স্পর্শক।
  • Y উত্তরে নির্দেশ করে এবং স্থলের স্পর্শক।
  • Z আকাশের দিকে নির্দেশ করে এবং ভূমিতে লম্ব।

ফোনের স্থিতিবিন্যাস ফোনের স্থানাঙ্কের সাথে পূর্ব-উত্তর-আপ স্থানাঙ্কগুলিকে সারিবদ্ধ করার জন্য প্রয়োজনীয় ঘূর্ণন দ্বারা প্রতিনিধিত্ব করা হয়। অর্থাৎ, ওয়ার্ল্ড ফ্রেমে (X,Y,Z) ঘূর্ণন প্রয়োগ করা তাদের ফোন স্থানাঙ্ক (x,y,z) এর সাথে সারিবদ্ধ করবে।

রেফারেন্স (পূর্ব-উত্তর-উপরের সারিবদ্ধ) ডিভাইসের অবস্থান থেকে বর্তমান ডিভাইসের অভিযোজনে যাওয়ার জন্য একটি অক্ষ rot_axis এর চারপাশে একটি কোণ থিটা দ্বারা ফোনটিকে ঘোরানো হিসাবে ঘূর্ণনকে দেখা যায়। ঘূর্ণনটি একটি ইউনিট কোয়াটারনিয়নের চারটি ইউনিট-কম x, y, z, w উপাদান হিসাবে এনকোড করা হয়:

  • sensors_event_t.data[0] = rot_axis.x*sin(theta/2)
  • sensors_event_t.data[1] = rot_axis.y*sin(theta/2)
  • sensors_event_t.data[2] = rot_axis.z*sin(theta/2)
  • sensors_event_t.data[3] = cos(theta/2)

কোথায়:

  • rot_axis এর x, y, এবং z ক্ষেত্রগুলি হল ঘূর্ণন অক্ষের প্রতিনিধিত্বকারী একক দৈর্ঘ্যের ভেক্টরের পূর্ব-উত্তর-উপরের স্থানাঙ্ক
  • theta হল ঘূর্ণন কোণ

কোয়াটারনিয়ন একটি ইউনিট চতুর্ভুজ: এটি অবশ্যই আদর্শ 1 হতে হবে। এটি নিশ্চিত করতে ব্যর্থ হলে ক্লায়েন্টের আচরণ অনিয়মিত হবে।

উপরন্তু, এই সেন্সর একটি আনুমানিক শিরোনাম নির্ভুলতা রিপোর্ট করে:

sensors_event_t.data[4] = estimated_accuracy (রেডিয়ানে)

শিরোনাম ত্রুটি estimated_accuracy 95% সময়ের চেয়ে কম হতে হবে। এই সেন্সরটিকে অবশ্যই একটি gyroscope ব্যবহার করতে হবে প্রধান অভিযোজন পরিবর্তন ইনপুট হিসাবে।

এই সেন্সরটি জাইরোস্কোপ ড্রিফ্ট তৈরি করতে অ্যাক্সিলোমিটার এবং ম্যাগনেটোমিটার ইনপুটও ব্যবহার করে এবং এটি শুধুমাত্র অ্যাক্সিলোমিটার এবং ম্যাগনেটোমিটার ব্যবহার করে প্রয়োগ করা যায় না।

খেলা ঘূর্ণন ভেক্টর

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার এবং জাইরোস্কোপ (কোন ম্যাগনেটোমিটার নয়)

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_GAME_ROTATION_VECTOR) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি গেম ঘূর্ণন ভেক্টর সেন্সর একটি ঘূর্ণন ভেক্টর সেন্সর অনুরূপ কিন্তু জিওম্যাগনেটিক ক্ষেত্র ব্যবহার করে না। তাই Y অক্ষ উত্তরে নির্দেশ করে না বরং অন্য কোনো রেফারেন্সে। জাইরোস্কোপ জেড অক্ষের চারপাশে প্রবাহিত হওয়ার মতো মাত্রার একই ক্রম অনুসারে সেই রেফারেন্সটিকে প্রবাহিত করার অনুমতি দেওয়া হয়।

কিভাবে sensors_event_t.data[0-3] সেট করতে হয় তার বিস্তারিত জানার জন্য ঘূর্ণন ভেক্টর সেন্সর দেখুন। এই সেন্সর একটি আনুমানিক শিরোনাম নির্ভুলতা রিপোর্ট করে না: sensors_event_t.data[4] সংরক্ষিত এবং 0 এ সেট করা উচিত।

একটি আদর্শ ক্ষেত্রে, একটি ফোন ঘোরানো এবং একই বাস্তব-বিশ্বের অভিযোজনে ফিরে আসা একই গেম রোটেশন ভেক্টরের রিপোর্ট করা উচিত।

এই সেন্সরটি অবশ্যই একটি জাইরোস্কোপ এবং একটি অ্যাক্সিলোমিটারের উপর ভিত্তি করে হতে হবে। এটি ম্যাগনেটোমিটারকে ইনপুট হিসাবে ব্যবহার করতে পারে না, পাশাপাশি, পরোক্ষভাবে, জাইরোস্কোপের পক্ষপাতের অনুমানের মাধ্যমে।

মহাকর্ষ

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার এবং (যদি উপস্থিত থাকে) জাইরোস্কোপ (বা ম্যাগনেটোমিটার যদি জাইরোস্কোপ না থাকে)

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_GRAVITY) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি মাধ্যাকর্ষণ সেন্সর ডিভাইসের স্থানাঙ্কে অভিকর্ষের দিক এবং মাত্রা রিপোর্ট করে।

sensors_event_t.acceleration এর x, y, এবং z ক্ষেত্রে মাধ্যাকর্ষণ ভেক্টর উপাদানগুলি m/s^2 এ রিপোর্ট করা হয়।

যখন ডিভাইসটি বিশ্রামে থাকে, তখন মাধ্যাকর্ষণ সেন্সরের আউটপুট অ্যাক্সিলোমিটারের মতো হওয়া উচিত। পৃথিবীতে, মাত্রা প্রায় 9.8 m/s^2।

যদি ডিভাইসটিতে একটি জাইরোস্কোপ থাকে, তবে মাধ্যাকর্ষণ সেন্সরকে অবশ্যই ইনপুট হিসাবে জাইরোস্কোপ এবং অ্যাক্সিলোমিটার ব্যবহার করতে হবে।

যদি ডিভাইসে জাইরোস্কোপ না থাকে, তাহলে অভিকর্ষ সেন্সরকে অবশ্যই অ্যাক্সিলোমিটার এবং ম্যাগনেটোমিটারকে ইনপুট হিসেবে ব্যবহার করতে হবে।

ভূ-চৌম্বকীয় ঘূর্ণন ভেক্টর

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার এবং ম্যাগনেটোমিটার (কোন জাইরোস্কোপ নেই)

রিপোর্টিং-মোড: ক্রমাগত

স্বল্প শক্তি

getDefaultSensor(SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি ভূ-চৌম্বকীয় ঘূর্ণন ভেক্টর একটি ঘূর্ণন ভেক্টর সেন্সরের অনুরূপ কিন্তু একটি ম্যাগনেটোমিটার ব্যবহার করে এবং কোন জাইরোস্কোপ ব্যবহার করে না।

এই সেন্সর একটি ম্যাগনেটোমিটার উপর ভিত্তি করে করা আবশ্যক. এটি একটি gyroscope ব্যবহার করে প্রয়োগ করা যাবে না, এবং gyroscope ইনপুট এই সেন্সর দ্বারা ব্যবহার করা যাবে না.

কিভাবে sensors_event_t.data[0-4] সেট করতে হয় তার বিস্তারিত জানার জন্য ঘূর্ণন ভেক্টর সেন্সর দেখুন।

ঘূর্ণন ভেক্টর সেন্সরের মতোই, শিরোনাম ত্রুটি অবশ্যই আনুমানিক নির্ভুলতার চেয়ে কম হতে হবে ( sensors_event_t.data[4] ) 95% সময়ের।

এই সেন্সরটি অবশ্যই কম শক্তির হতে হবে, তাই এটি হার্ডওয়্যারে প্রয়োগ করতে হবে।

ওরিয়েন্টেশন (অবঞ্চিত)

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার, ম্যাগনেটোমিটার এবং (যদি উপস্থিত থাকে) জাইরোস্কোপ

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_ORIENTATION) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

দ্রষ্টব্য: এটি একটি পুরানো সেন্সর প্রকার যা Android SDK-এ অবচয় করা হয়েছে৷ এটি ঘূর্ণন ভেক্টর সেন্সর দ্বারা প্রতিস্থাপিত হয়েছে, যা আরও স্পষ্টভাবে সংজ্ঞায়িত করা হয়েছে। যখনই সম্ভব ওরিয়েন্টেশন সেন্সরের উপর ঘূর্ণন ভেক্টর সেন্সর ব্যবহার করুন।

একটি ওরিয়েন্টেশন সেন্সর ডিভাইসের মনোভাব রিপোর্ট করে। sensors_event_t.orientation এর x, y, এবং z ক্ষেত্রের ডিগ্রীতে পরিমাপ রিপোর্ট করা হয়:

  • sensors_event_t.orientation.x : আজিমুথ, চৌম্বকীয় উত্তর দিক এবং Y অক্ষের মধ্যবর্তী কোণ, Z অক্ষের চারপাশে ( 0<=azimuth<360 )। 0=উত্তর, 90=পূর্ব, 180=দক্ষিণ, 270=পশ্চিম।
  • sensors_event_t.orientation.y : পিচ, X অক্ষের চারপাশে ঘূর্ণন ( -180<=pitch<=180 ), ধনাত্মক মান সহ যখন Z অক্ষ Y অক্ষের দিকে চলে যায়।
  • sensors_event_t.orientation.z : রোল, Y অক্ষের চারপাশে ঘূর্ণন ( -90<=roll<=90 ), ধনাত্মক মান সহ যখন X অক্ষ Z অক্ষের দিকে চলে যায়।

অনুগ্রহ করে মনে রাখবেন, ঐতিহাসিক কারণে রোল কোণ ঘড়ির কাঁটার দিকে ধনাত্মক। (গাণিতিকভাবে বলতে গেলে, এটি ঘড়ির কাঁটার বিপরীত দিকে ইতিবাচক হওয়া উচিত):

একটি যন্ত্রের সাপেক্ষে ওরিয়েন্টেশনের চিত্র

চিত্র 3. একটি ডিভাইসের সাথে সম্পর্কিত ওরিয়েন্টেশন

এই সংজ্ঞাটি বিমান চালনায় ব্যবহৃত ইয়াও, পিচ এবং রোল থেকে ভিন্ন যেখানে X অক্ষটি সমতলের দীর্ঘ পাশে (লেজ থেকে নাক পর্যন্ত)।

ওরিয়েন্টেশন সেন্সরও রিপোর্ট করে যে এটি sensors_event_t.orientation.status মাধ্যমে তার রিডিং কতটা সঠিক বলে আশা করে। এই ক্ষেত্রের সম্ভাব্য মান সম্পর্কে আরও তথ্যের জন্য SensorManager এর SENSOR_STATUS_* ধ্রুবক দেখুন।

ক্যালিব্রেটেড সেন্সর

আনক্যালিব্রেটেড সেন্সরগুলি আরও কাঁচা ফলাফল প্রদান করে এবং এতে কিছু পক্ষপাত থাকতে পারে তবে ক্রমাঙ্কনের মাধ্যমে প্রয়োগ করা সংশোধন থেকে কম "জাম্প"ও থাকতে পারে। কিছু অ্যাপ এই অক্যালিব্রেটেড ফলাফলগুলিকে মসৃণ এবং আরও নির্ভরযোগ্য হিসাবে পছন্দ করতে পারে। উদাহরণস্বরূপ, যদি একটি অ্যাপ তার নিজস্ব সেন্সর ফিউশন পরিচালনা করার চেষ্টা করে, তাহলে ক্রমাঙ্কন প্রবর্তন আসলে ফলাফলকে বিকৃত করতে পারে।

অ্যাক্সিলোমিটার আনক্যালিব্রেটেড

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি ক্যালিব্রেটেড অ্যাক্সিলোমিটার সেন্সর কোনো পক্ষপাত সংশোধন ছাড়াই তিনটি সেন্সর অক্ষ বরাবর ডিভাইসের ত্বরণের রিপোর্ট করে (ফ্যাক্টরি পক্ষপাত এবং তাপমাত্রার ক্ষতিপূরণ আনক্যালিব্রেটেড পরিমাপের জন্য প্রয়োগ করা হয়), সাথে একটি পক্ষপাত অনুমানের সাথে। সমস্ত মান SI ইউনিটে রয়েছে (m/s^2) এবং sensors_event_t.uncalibrated_accelerometer এর ক্ষেত্রে রিপোর্ট করা হয়েছে :

  • x_uncalib : এক্স অক্ষ বরাবর ত্বরণ (পক্ষপাতের ক্ষতিপূরণ ছাড়া)
  • y_uncalib : Y অক্ষ বরাবর ত্বরণ (পক্ষপাতের ক্ষতিপূরণ ছাড়া)
  • z_uncalib : Z অক্ষ বরাবর ত্বরণ (পক্ষপাতের ক্ষতিপূরণ ছাড়া)
  • x_bias : X অক্ষ বরাবর আনুমানিক পক্ষপাত
  • y_bias : Y অক্ষ বরাবর আনুমানিক পক্ষপাত
  • z_bias : Z অক্ষ বরাবর আনুমানিক পক্ষপাত

জাইরোস্কোপ ক্যালিব্রেটেড

অন্তর্নিহিত শারীরিক সেন্সর: জাইরোস্কোপ

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_UNCALIBRATED) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি ক্যালিব্রেটেড জাইরোস্কোপ সেন্সর অক্ষের চারপাশে ঘূর্ণনের হারের রিপোর্ট করে তাদের প্রতি পক্ষপাতের ক্ষতিপূরণ প্রয়োগ না করে, একটি পক্ষপাত অনুমান সহ। সমস্ত মান রেডিয়ান/সেকেন্ডে রয়েছে এবং sensors_event_t.uncalibrated_gyro এর ক্ষেত্রে রিপোর্ট করা হয়েছে:

  • x_uncalib : X অক্ষের চারপাশে কৌণিক গতি (ড্রিফট ক্ষতিপূরণ ছাড়া)
  • y_uncalib : Y অক্ষের চারপাশে কৌণিক গতি (ড্রিফট ক্ষতিপূরণ ছাড়া)
  • z_uncalib : Z অক্ষের চারপাশে কৌণিক গতি (ড্রিফট ক্ষতিপূরণ ছাড়া)
  • x_bias : X অক্ষের চারপাশে আনুমানিক প্রবাহ
  • y_bias : Y অক্ষের চারপাশে আনুমানিক প্রবাহ
  • z_bias : Z অক্ষের চারপাশে আনুমানিক প্রবাহ

ধারণাগতভাবে, আনক্যালিব্রেটেড পরিমাপ হল ক্রমাঙ্কিত পরিমাপের সমষ্টি এবং পক্ষপাত অনুমান: _uncalibrated = _calibrated + _bias

পক্ষপাতের অনুমান পরিবর্তন হওয়ার সাথে সাথে x_bias , y_bias এবং z_bias মানগুলি লাফিয়ে উঠবে বলে প্রত্যাশিত, এবং সেগুলি বাকি সময়ে স্থিতিশীল থাকবে৷

ব্যবহৃত স্থানাঙ্ক সিস্টেমের বিশদ বিবরণের জন্য জাইরোস্কোপ সেন্সরের সংজ্ঞা দেখুন।

ফ্যাক্টরি ক্রমাঙ্কন এবং তাপমাত্রা ক্ষতিপূরণ পরিমাপ প্রয়োগ করা আবশ্যক. এছাড়াও, জাইরোস্কোপ ড্রিফ্ট অনুমান প্রয়োগ করা আবশ্যক যাতে যুক্তিসঙ্গত অনুমান x_bias , y_bias এবং z_bias এ রিপোর্ট করা যায়। যদি বাস্তবায়নটি ড্রিফ্ট অনুমান করতে সক্ষম না হয়, তাহলে এই সেন্সরটি কার্যকর করা উচিত নয়।

যদি এই সেন্সরটি উপস্থিত থাকে, তাহলে সংশ্লিষ্ট গাইরোস্কোপ সেন্সরটিও উপস্থিত থাকতে হবে এবং উভয় সেন্সরকে অবশ্যই একই sensor_t.name এবং sensor_t.vendor মান শেয়ার করতে হবে।

চৌম্বক ক্ষেত্র অক্যালিব্রেটেড

অন্তর্নিহিত শারীরিক সেন্সর: ম্যাগনেটোমিটার

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি আনক্যালিব্রেটেড চৌম্বক ক্ষেত্র সেন্সর একটি হার্ড আয়রন ক্রমাঙ্কন অনুমানের সাথে একসাথে পরিবেষ্টিত চৌম্বক ক্ষেত্র রিপোর্ট করে। সমস্ত মান মাইক্রো-টেসলা (uT) তে রয়েছে এবং sensors_event_t.uncalibrated_magnetic এর ক্ষেত্রে রিপোর্ট করা হয়েছে:

  • x_uncalib : X অক্ষ বরাবর চৌম্বক ক্ষেত্র (হার্ড-লোহার ক্ষতিপূরণ ছাড়া)
  • y_uncalib : Y অক্ষ বরাবর চৌম্বক ক্ষেত্র (হার্ড-লোহার ক্ষতিপূরণ ছাড়া)
  • z_uncalib : Z অক্ষ বরাবর চৌম্বক ক্ষেত্র (হার্ড-লোহার ক্ষতিপূরণ ছাড়া)
  • x_bias : X অক্ষ বরাবর আনুমানিক হার্ড-লোহার পক্ষপাত
  • y_bias : Y অক্ষ বরাবর আনুমানিক হার্ড-লোহার পক্ষপাত
  • z_bias : Z অক্ষ বরাবর আনুমানিক হার্ড-লোহার পক্ষপাত

ধারণাগতভাবে, আনক্যালিব্রেটেড পরিমাপ হল ক্রমাঙ্কিত পরিমাপের সমষ্টি এবং পক্ষপাত অনুমান: _uncalibrated = _calibrated + _bias

ক্যালিব্রেটেড ম্যাগনেটোমিটার উচ্চ স্তরের অ্যালগরিদমগুলিকে খারাপ হার্ড আয়রন অনুমান পরিচালনা করতে দেয়। x_bias , y_bias এবং z_bias মানগুলি হার্ড-আয়রনের আনুমানিক পরিবর্তনের সাথে সাথে লাফিয়ে উঠবে বলে আশা করা হচ্ছে, এবং বাকি সময় সেগুলি স্থিতিশীল থাকবে।

নরম-লোহা ক্রমাঙ্কন এবং তাপমাত্রা ক্ষতিপূরণ পরিমাপ প্রয়োগ করা আবশ্যক. এছাড়াও, হার্ড-আয়রন অনুমান প্রয়োগ করা আবশ্যক যাতে যুক্তিসঙ্গত অনুমান x_bias , y_bias এবং z_bias এ রিপোর্ট করা যায়। যদি বাস্তবায়ন পক্ষপাতিত্ব অনুমান করতে সক্ষম না হয়, তাহলে এই সেন্সরটি বাস্তবায়িত হবে না।

যদি এই সেন্সরটি উপস্থিত থাকে, তাহলে সংশ্লিষ্ট চৌম্বক ক্ষেত্র সেন্সর অবশ্যই উপস্থিত থাকতে হবে এবং উভয় সেন্সরকে অবশ্যই একই sensor_t.name এবং sensor_t.vendor মান শেয়ার করতে হবে।

কবজা কোণ

রিপোর্টিং-মোড: অন-চেঞ্জ

getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE) একটি জেগে ওঠা সেন্সর প্রদান করে

একটি কব্জা কোণ সেন্সর ডিভাইসের দুটি অবিচ্ছেদ্য অংশের মধ্যে ডিগ্রীতে কোণ পরিমাপ করে। এই সেন্সর টাইপ দ্বারা পরিমাপ করা একটি কব্জা চলাফেরার মাধ্যমে ব্যবহারকারী ডিভাইসের সাথে ইন্টারঅ্যাক্ট করতে পারে এমন উপায়গুলিকে পরিবর্তন করবে বলে আশা করা হচ্ছে, উদাহরণস্বরূপ, একটি ডিসপ্লে উন্মোচন বা প্রকাশ করে৷

মিথস্ক্রিয়া যৌগিক সেন্সর

কিছু সেন্সর বেশিরভাগ ব্যবহারকারীর সাথে মিথস্ক্রিয়া সনাক্ত করতে ব্যবহৃত হয়। আমরা সংজ্ঞায়িত করি না যে এই সেন্সরগুলিকে কীভাবে প্রয়োগ করতে হবে, তবে সেগুলি অবশ্যই কম শক্তির হতে হবে এবং ব্যবহারকারীর অভিজ্ঞতার পরিপ্রেক্ষিতে তাদের গুণমান যাচাই করা ডিভাইস প্রস্তুতকারকের দায়িত্ব৷

জেগে ওঠার ভঙ্গি

অন্তর্নিহিত শারীরিক সেন্সর: অনির্ধারিত (নিম্ন শক্তির যেকোনো কিছু)

রিপোর্টিং-মোড: এক-শট

স্বল্প শক্তি

এই সেন্সরের শুধুমাত্র জাগ্রত সংস্করণ প্রয়োগ করুন।

getDefaultSensor(SENSOR_TYPE_WAKE_GESTURE) একটি জেগে ওঠা সেন্সর প্রদান করে

একটি জাগ্রত অঙ্গভঙ্গি সেন্সর একটি ডিভাইস নির্দিষ্ট গতির উপর ভিত্তি করে ডিভাইসটিকে জাগ্রত করতে সক্ষম করে৷ যখন এই সেন্সরটি ট্রিগার হয়, তখন ডিভাইসটি এমন আচরণ করে যেন পাওয়ার বোতাম টিপে, স্ক্রীনটি চালু করে। এই আচরণ (যখন এই সেন্সরটি ট্রিগার হয় তখন স্ক্রীন চালু করা) ডিভাইস সেটিংসে ব্যবহারকারী দ্বারা নিষ্ক্রিয় করা হতে পারে। সেটিংসের পরিবর্তনগুলি সেন্সরের আচরণকে প্রভাবিত করে না: শুধুমাত্র ফ্রেমওয়ার্কটি যখন ট্রিগার হয় তখন পর্দাটি চালু করে কিনা। প্রকৃত অঙ্গভঙ্গি শনাক্ত করা হবে তা নির্দিষ্ট করা নেই এবং ডিভাইসের প্রস্তুতকারক এটি বেছে নিতে পারেন।

এই সেন্সরটি অবশ্যই কম শক্তির হতে হবে, কারণ এটি 24/7 সক্রিয় হতে পারে৷

প্রতিটি সেন্সর ইভেন্ট sensors_event_t.data[0]1 রিপোর্ট করে।

অঙ্গভঙ্গি পিক আপ

অন্তর্নিহিত শারীরিক সেন্সর: অনির্ধারিত (নিম্ন শক্তির যেকোনো কিছু)

রিপোর্টিং-মোড: এক-শট

স্বল্প শক্তি

এই সেন্সরের শুধুমাত্র জাগ্রত সংস্করণ প্রয়োগ করুন।

getDefaultSensor(SENSOR_TYPE_PICK_UP_GESTURE) একটি জেগে ওঠা সেন্সর প্রদান করে

একটি পিক-আপ অঙ্গভঙ্গি সেন্সর ট্রিগার করে যখন ডিভাইসটি আগে যেখানেই ছিল না কেন (ডেস্ক, পকেট, ব্যাগ) সেটিকে তোলা হয়।

প্রতিটি সেন্সর ইভেন্ট sensors_event_t.data[0]1 রিপোর্ট করে।

দৃষ্টিভঙ্গি

অন্তর্নিহিত শারীরিক সেন্সর: অনির্ধারিত (নিম্ন শক্তির যেকোনো কিছু)

রিপোর্টিং-মোড: এক-শট

স্বল্প শক্তি

এই সেন্সরের শুধুমাত্র জাগ্রত সংস্করণ প্রয়োগ করুন।

getDefaultSensor(SENSOR_TYPE_GLANCE_GESTURE) একটি জেগে ওঠা সেন্সর প্রদান করে

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

এই সেন্সরটি অবশ্যই কম শক্তির হতে হবে, কারণ এটি 24/7 সক্রিয় হতে পারে৷ প্রতিটি সেন্সর ইভেন্ট sensors_event_t.data[0]1 রিপোর্ট করে।

সীমিত অক্ষ IMU সেন্সর

Android 13 থেকে পাওয়া যায়, সীমিত অক্ষ IMU সেন্সর হল সেন্সর যা তিনটি অক্ষ (x, y, z) উপলব্ধ নয় এমন ক্ষেত্রে ব্যবহারের ক্ষেত্রে সমর্থন করে। অ্যান্ড্রয়েডের স্ট্যান্ডার্ড IMU প্রকারগুলি (যেমন SENSOR_TYPE_ACCELEROMETER এবং SENSOR_TYPE_GYROSCOPE ) ধরে নেয় যে তিনটি অক্ষই সমর্থিত৷ যাইহোক, সমস্ত ফর্ম ফ্যাক্টর এবং ডিভাইস 3-অক্ষ অ্যাক্সিলোমিটার এবং 3-অক্ষ জাইরোস্কোপ সমর্থন করে না।

অ্যাক্সিলোমিটার সীমিত অক্ষ

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি অ্যাক্সিলোমিটার সীমিত অক্ষ সেন্সরটি TYPE_ACCELEROMETER এর সমতুল্য কিন্তু এমন ক্ষেত্রে সমর্থন করে যেখানে এক বা দুটি অক্ষ সমর্থিত নয়।

সেন্সর দ্বারা রিপোর্ট করা শেষ তিনটি সেন্সর ইভেন্ট মান x, y, এবং z অক্ষের জন্য ত্বরণ মান সমর্থিত কিনা তা প্রতিনিধিত্ব করে। 1.0 এর মান নির্দেশ করে যে অক্ষটি সমর্থিত, এবং 0 এর মান নির্দেশ করে যে এটি সমর্থিত নয়। ডিভাইস নির্মাতারা বিল্ড টাইমে সমর্থিত অক্ষগুলি সনাক্ত করে এবং রানটাইমের সময় মানগুলি পরিবর্তিত হয় না।

ডিভাইস নির্মাতাদের অবশ্যই অব্যবহৃত অক্ষের জন্য ত্বরণ মান সেট করতে হবে, 0 মান থাকার পরিবর্তে।

জাইরোস্কোপ সীমিত অক্ষ

অন্তর্নিহিত শারীরিক সেন্সর: জাইরোস্কোপ

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি জাইরোস্কোপ সীমিত অক্ষ সেন্সরটি TYPE_GYROSCOPE এর সমতুল্য তবে এমন ক্ষেত্রে সমর্থন করে যেখানে এক বা দুটি অক্ষ সমর্থিত নয়।

সেন্সর দ্বারা রিপোর্ট করা শেষ তিনটি সেন্সর ইভেন্ট মানগুলি x, y, এবং z অক্ষগুলির জন্য কৌণিক গতির মান সমর্থিত কিনা তা প্রতিনিধিত্ব করে৷ 1.0 এর মান নির্দেশ করে যে অক্ষটি সমর্থিত, এবং 0 এর মান নির্দেশ করে যে এটি সমর্থিত নয়। ডিভাইস নির্মাতারা বিল্ড টাইমে সমর্থিত অক্ষগুলি সনাক্ত করে এবং রানটাইমের সময় মানগুলি পরিবর্তিত হয় না।

ডিভাইস নির্মাতাদের অবশ্যই অব্যবহৃত অক্ষের জন্য কৌণিক গতির মান 0 এ সেট করতে হবে।

অ্যাক্সিলেরোমিটার সীমিত অক্ষগুলি ক্যালিব্রেটেড

অন্তর্নিহিত শারীরিক সেন্সর: অ্যাক্সিলোমিটার

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি অ্যাক্সিলেরোমিটার সীমিত অক্ষ অক্যালিব্রেটেড সেন্সর TYPE_ACCELEROMETER_UNCALIBRATED এর সমতুল্য কিন্তু এমন ক্ষেত্রে সমর্থন করে যেখানে এক বা দুটি অক্ষ সমর্থিত নয়।

সেন্সর দ্বারা রিপোর্ট করা শেষ তিনটি সেন্সর ইভেন্ট মানগুলি x, y, এবং z অক্ষগুলির জন্য ত্বরণ এবং পক্ষপাতের মানগুলি সমর্থিত কিনা তা প্রতিনিধিত্ব করে৷ 1.0 এর মান নির্দেশ করে যে অক্ষটি সমর্থিত, এবং 0 এর মান নির্দেশ করে যে এটি সমর্থিত নয়। ডিভাইস নির্মাতারা বিল্ড টাইমে সমর্থিত অক্ষগুলি সনাক্ত করে এবং রানটাইমের সময় মানগুলি পরিবর্তিত হয় না।

ডিভাইস নির্মাতাদের অবশ্যই অব্যবহৃত অক্ষের জন্য ত্বরণ এবং পক্ষপাতের মান 0 এ সেট করতে হবে।

জাইরোস্কোপ সীমিত অক্ষগুলি ক্যালিব্রেটেড

অন্তর্নিহিত শারীরিক সেন্সর: জাইরোস্কোপ

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

একটি জাইরোস্কোপ সীমিত অক্ষের আনক্যালিব্রেটেড সেন্সর TYPE_GYROSCOPE_UNCALIBRATED এর সমতুল্য কিন্তু এমন ক্ষেত্রে সমর্থন করে যেখানে এক বা দুটি অক্ষ সমর্থিত নয়।

সেন্সর দ্বারা রিপোর্ট করা শেষ তিনটি সেন্সর ইভেন্ট মান প্রতিনিধিত্ব করে যে x, y, এবং z অক্ষের জন্য কৌণিক গতি এবং ড্রিফ্ট মান সমর্থিত কিনা। 1.0 এর মান নির্দেশ করে যে অক্ষটি সমর্থিত, এবং 0 এর মান নির্দেশ করে যে এটি সমর্থিত নয়। ডিভাইস নির্মাতারা বিল্ড টাইমে সমর্থিত অক্ষগুলি সনাক্ত করে এবং রানটাইমের সময় মানগুলি পরিবর্তিত হয় না।

ডিভাইস নির্মাতাদের অবশ্যই অব্যবহৃত অক্ষের জন্য কৌণিক গতি এবং ড্রিফ্ট মান 0 এ সেট করতে হবে।

যৌগিক সীমিত অক্ষ IMU

অন্তর্নিহিত ভৌত সেন্সর: 3-অক্ষের অ্যাক্সিলোমিটার, 3-অক্ষের জাইরোস্কোপ, 3-অক্ষের অ্যাক্সিলোমিটার আনক্যালিব্রেটেড, এবং 3-অক্ষের জাইরোস্কোপ আনক্যালিব্রেটেড সেন্সরগুলির যে কোনও সংমিশ্রণ।

রিপোর্টিং-মোড: ক্রমাগত

একটি যৌগিক সীমিত অক্ষ IMU সেন্সর একটি সীমিত অক্ষের IMU সেন্সরের সমতুল্য কিন্তু HAL-এ সমর্থিত হওয়ার পরিবর্তে, এটি 3-অক্ষ সেন্সর ডেটাকে সমতুল্য সীমিত অক্ষ ভেরিয়েন্টে রূপান্তর করে। এই যৌগিক সেন্সরগুলি শুধুমাত্র স্বয়ংচালিত ডিভাইসগুলির জন্য সক্ষম।

নিম্নলিখিত সারণীটি একটি আদর্শ 3-অক্ষ অ্যাক্সিলোমিটার থেকে একটি যৌগিক সীমিত অক্ষের অ্যাক্সিলোমিটারে রূপান্তরের উদাহরণ দেখায়।

SENSOR_TYPE_ACCELEROMETER এর জন্য সেন্সর ইভেন্ট মান উদাহরণ SENSOR_TYPE_ACCELEROMETER সেন্সর ইভেন্ট কম্পোজিট SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES সেন্সর ইভেন্ট
মান [0]

-0.065

-0.065

মান [1]

0.078

0.078

মান [২]

9.808

9.808

মান [৩]

N/A

1.0

মান[৪]

N/A

1.0

মান [৫]

N/A

1.0

স্বয়ংচালিত সেন্সর

স্বয়ংচালিত ব্যবহারের ক্ষেত্রে সমর্থন করার জন্য সেন্সর।

শিরোনাম

অন্তর্নিহিত শারীরিক সেন্সর: জিপিএস, ম্যাগনেটোমিটার, অ্যাক্সিলোমিটার এবং জাইরোস্কোপের যেকোন সমন্বয়।

রিপোর্টিং-মোড: ক্রমাগত

getDefaultSensor(SENSOR_TYPE_HEADING) একটি নন-ওয়েক-আপ সেন্সর প্রদান করে

অ্যান্ড্রয়েড 13 থেকে উপলব্ধ, একটি শিরোনাম সেন্সর ডিগ্রীতে সত্য উত্তরের তুলনায় ডিভাইসটি যে দিকে নির্দেশ করছে তা পরিমাপ করে। শিরোনাম সেন্সরে দুটি SensorEvent মান রয়েছে। একটি পরিমাপ করা ডিভাইস শিরোনামের জন্য এবং একটি প্রদত্ত শিরোনাম মানের নির্ভুলতার জন্য৷

এই সেন্সর দ্বারা রিপোর্ট করা শিরোনাম মান অবশ্যই 0.0 (অন্তর্ভুক্ত) এবং 360.0 (একচেটিয়া) এর মধ্যে হতে হবে, 0 উত্তর, 90 পূর্ব, 180 দক্ষিণ এবং 270 পশ্চিম নির্দেশ করে৷

এই সেন্সরের নির্ভুলতা 68 শতাংশ আত্মবিশ্বাসে সংজ্ঞায়িত করা হয়েছে। যে ক্ষেত্রে অন্তর্নিহিত বন্টনটি গাউসিয়ান স্বাভাবিক, সঠিকতা হল একটি আদর্শ বিচ্যুতি। উদাহরণস্বরূপ, যদি শিরোনাম সেন্সরটি 60 ডিগ্রির একটি শিরোনাম মান এবং 10 ডিগ্রির একটি নির্ভুলতা মান প্রদান করে, তাহলে প্রকৃত শিরোনামটি 50 ডিগ্রি এবং 70 ডিগ্রির মধ্যে হওয়ার 68 শতাংশ সম্ভাবনা রয়েছে৷