গাইরোস্কোপ হল একটি সেন্সর যা তিনটি অক্ষের সাপেক্ষে ডিভাইসের ঘূর্ণনের কোণীয় বেগ পরিমাপ করে। অ্যাক্সেলেরোমিটারের বিপরীতে, যা রৈখিক ত্বরণ পরিমাপ করে, গাইরোস্কোপ স্থানে ঘূর্ণন ও দিক্ নির্ণয় করে। STMicroelectronics, 2024 অনুযায়ী, আধুনিক MEMS গাইরোস্কোপ 0.01 ডিগ্রি প্রতি সেকেন্ড পর্যন্ত সক্ষতা অর্জন করে, যা ন্যাভিগেশন, ইমেজ স্থিরীকরণ ও AR অ্যাপ্লিকেশনে ব্যবহার সম্ভব করে।
মূখ্য বিষয়সমূহ
গাইরোস্কোপ হল একটি মাইক্রোইলেকট্রোমিক্যানিক্যাল সেন্সর (MEMS) যা ডিভাইসের ঘূর্ণনের কোণীয় বেগ পরিমাপ করে। বিমান বিজ্ঞানে ব্যবহৃত যান্ত্রিক গাইরোস্কোপের বিপরীতে, MEMS গাইরোস্কোপ হল একটি সিলিকন চিপ যার মাপ 2×2×1 মিমি এবং ফোনের মাদারবোর্ডে স্থাপিত।
আধুনিক স্মার্টফোনগুলি শুধুমাত্র কম্পন ধরণের MEMS গাইরোস্কোপ ব্যবহার করে — টিউনিং-ফোর্ক ও রিং-ডিজাইন। এগুলির ঘূরনশীল অংশ নেই, যা 10 বছর নিরবছিন্ন কাজের স্থায়িত্ব নিশ্চিত করে। প্রমুখ প্রস্তারক Bosch Sensortec (BMI সিরিজ), STMicroelectronics (L3G, A3G সিরিজ) ও InvenSense (ICM সিরিজ)।
একটি সাধারণ MEMS গাইরোস্কোপের পরিমাপ পরিসর ±125 থেকে ±2000 °/সেকেন্ড, নমুনা হার 32 কিলোহার্টজ পর্যন্ত ও 3–6 মিলিএম্পিয়ার কারেন্ট খরচ রয়েছে। Bosch Sensortec BMI160 (2023) অনুযায়ী, ±125 °/সেকেন্ড পরিসরে গোলমাল স্তর 0.007 °/সেকেন্ড/√হার্টজ — সঠিক ঘূর্ণন ট্রেকিংয়ের জন্য যথেষ্ট।
| প্যারামিটার | মান |
|---|---|
| প্রযুক্তি | MEMS (কম্পনশীল) |
| পরিসর | ±125 — ±2000 °/সেকেন্ড |
| বিদ্যুৎ খরচ | 3–6 মিলিএম্পিয়ার |
| আকার | 2×2×1 মিমি |
| গোলমাল | 0.007 °/সেকেন্ড/√হার্টজ |
MEMS গাইরোস্কোপের কার্যনীতি কোরিওলিস প্রভাব এর উপর ভিত্তিত করে। চিপের ভিতর একটি সিলিকন ভর আছে যা একটি নির্দিষ্ট কম্পনাঙ্ক (15–30 কিলোহার্টজ) থেকে কম্পন করে। যখন ডিভাইসটি ঘূরে, কোরিওলিস বল কম্পনশীল ভরের উপর কাজ করে, যা কোণীয় বেগের সমানুপাতিক।
MEMS গাইরোস্কোপের মূল উপাদান হল ড্রাইভ ইলেকট্রোড যা কম্পন সৃষ্টি করে ও সেন্সিং ইলেকট্রোড যা স্থানান্তর শনাক্তি করে। গবেষণা পত্র “MEMS Gyroscopes for Consumer Electronics” (IEEE, 2023) অনুযায়ী, একটি সাধারণ নির্মাণে কেন্দ্রীয় ভরের চারপাশে সমমিতভাবে সাজানো 4—8টি কম্ব গঠন অন্তর্ভুক্ত থাকে।
আধুনিক গাইরোস্কোপ I²C বা SPI বাসের মাধ্যমে ডেটা প্রেরণ করে। স্মার্টফোন কন্ট্রোলার তিনটি অক্ষের কোণীয় বেগ মান পায় — X (Pitch), Y (Roll) ও Z (Yaw)। বিল্ট-ইন ADC ক্যাপাসিটিভ সিগনাল কে 16–24 বিট রিজলিউশনে ডিজিটাল মানে রূপান্তর করে। গেমিং মোডে আপডেট হার 400 হার্টজ পর্যন্ত পৌছে।
অ্যাক্সেলেরোমিটার রৈখিক ত্বরণ পরিমাপ করে — অক্ষের সাথে বস্তুর বেগে পরিবর্তন। গাইরোস্কোপ ঘূর্ণন পরিমাপ করে — কোণের পরিবর্তন হার। এই সেন্সরগুলি পরিপূরক: অ্যাক্সেলেরোমিটার মধুর্ত্ব ভেক্টরের সাপেক্ষে অভিবিন্যাস প্রদান করে, কিন্তু হেলেনকে রৈখিক গতি থেকে আলাদা করতে পারে না। গাইরোস্কোপ মধুর্ত্ব থেকে স্বাধীনভাবে ঘূর্ণন ট্রেক করে, কিন্তু ড্রিফ্টের অধীন।
বাস্তব প্রয়োগে Sensor Fusion ব্যবহৃত হয় — একটি আলগোরিদম যা গাইরোস্কোপ, অ্যাক্সেলেরোমিটার ও ম্যাগনেটোমিটারের ডেটা সংযোজিত করে। মাহোনি ক্ষুদ্রক বা কম্পলিমেন্টারি ক্ষুদ্রক স্থির অবস্থায় 2 ডিগ্রি ও গতিশীল অবস্থায় 5 ডিগ্রি সক্ষতায় অভিবিন্যাস ক্যাটারনিয়ন গণনা করে। Android ফ্রেমওয়ার্ক স্তরে ভার্চুয়াল সেন্সর TYPE_ROTATION_VECTOR প্রদান করে।
val rotationVector = sensorManager
.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
val callback = object : SensorEventListener {
override fun onSensorChanged(event: SensorEvent) {
val quat = FloatArray(4)
SensorManager.getQuaternionFromVector(quat, event.values)
// quat[0..3] — অভিবিন্যাস ক্যাটারনিয়ন
}
}
Android দুই ধরনের গাইরোস্কোপ সেন্সর প্রদান করে: TYPE_GYROSCOPE (ক্যালিব্রেটেড, ড্রিফ্ট আছে না) ও TYPE_GYROSCOPE_UNCALIBRATED (ড্রিফ্ট আকলন সহ কচা ডেটা)। SensorManager.getDefaultSensor() এর মাধ্যমে এগুলিতে প্রবেশ করা যায়। ডেটা রেড/সেকেন্ডে ফেরত পাঠানো হয় — রেডিয়ান প্রতি সেকেন্ড।
গাইরোস্কোপের জন্য লিসনার নিবন্ধনয় একটি বিলম্ব নির্দিষ্ট করা প্রয়োজন: গেমের জন্য SENSOR_DELAY_GAME (20 মিলিসেকেন্ড), UI এর জন্য SENSOR_DELAY_UI (67 মিলিসেকেন্ড), সর্বাধিক কম্পনাঙ্কের জন্য SENSOR_DELAY_FASTEST (0 মিলিসেকেন্ড)। onPause() এ নিবন্ধন বাতিল না করলে, ব্যাটারি 2–3 ঘণ্টায় ফুরে যায়।
class GyroActivity : AppCompatActivity() {
private lateinit var sensorManager: SensorManager
private var gyroscope: Sensor? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
gyroscope = sensorManager.getDefaultSensor(
Sensor.TYPE_GYROSCOPE
)
}
override fun onResume() {
super.onResume()
gyroscope?.let { sensor ->
sensorManager.registerListener(
this, sensor, SensorManager.SENSOR_DELAY_GAME
)
}
}
}
event.values[0..2] থেকে কচা ডেটা X, Y ও Z অক্ষে কোণীয় বেগের সাথে মিলে। ঘূর্ণন কোণ পেতে, কোণীয় বেগকে সময়ের সাথে সমাকলিত করতে হবে। 50 হার্টজ এ, সমাকলন ত্রুটি প্রতি মিনিটে প্রায় 1 ডিগ্রি — গেমের জন্য গ্রহণযোগ্য কিন্তু সংশোধন ছাড়া ন্যাভিগেশনের জন্য অপর্যাপ্ত।
জিয়ারো ড্রিফ্ট (bias drift) MEMS গাইরোস্কোপের প্রধান সমস্যা। স্থির অবস্থায়ও, সেন্সর অ-শূন্য কোণীয় বেগ (0.1–2 °/সেকেন্ড) দেখাতে পারে। কারণ হল সিলিকন গঠনে তাপমাত্রা পরিবর্তন ও যান্ত্রিক চাপ। উৎপাদকরা হার্ডওয়ার স্তরে এই প্রভাব ক্ষতিপূর্তি করে।
Android সিস্টম প্রথম চালু হলে বা তাপমাত্রা বদলে গেলে স্বচালিতভাবে গাইরোস্কোপ ক্যালিব্রেট করে। ক্যালিব্রেশন প্রক্রিয়ায় 10–30 সেকেন্ড সময় লাগে ও ব্যবহারকারীর হস্তক্ষেপের প্রয়োজন নেই — শুধু ফোন একটি স্থির পৃষ্ঠে রাখুন। calibrate() পদ্ধতি সকল ডিভাইসে উপলব্ধ নেই। জরুরি ক্যালিব্রেশনের জন্য, TYPE_GYROSCOPE_UNCALIBRATED ব্যবহার করে event.values[3..5] এর মাধ্যমে বায়াস অফসেট পুরিয়ে পাওয়া যায়।
private fun handleUncalibratedGyro(event: SensorEvent) {
val rawX = event.values[0] // ক্যালিব্রেট ছাড়া রেড/সেকেন্ড
val biasX = event.values[3] // X-অক্ষের বায়াস
val calibratedX = rawX - biasX
applyCalibrationToFusion(
calibratedX,
event.values[1] - event.values[4],
event.values[2] - event.values[5]
)
}
গাইরোস্কোপ ক্যামেরা স্থিরীকরণ থেকে Google Cardboard এর মতো VR হেডসেট পর্যন্ত দজের পরিদৃশ্যে ব্যবহৃত হয়। Apple এর ARKit ও Google এর ARCore মাথার ঘূর্ণন ট্রেকিংয়ের জন্য প্রধান সেন্সর হিসাবে গাইরোস্কোপ ব্যবহার করে। Apple ARKit Technical Specification (2024) অনুযায়ী, অ্যাক্সেলেরোমিটারের সাথে যুগ্ম গাইরোস্কোপ 0.5 ডিগ্রি পর্যন্ত ট্রেকিং সক্ষতা প্রদান করে।
ভোক্তা ইলেকট্রনিক্সের বাইরে, গাইরোস্কোপ রোবওটিক্স ও UAV এ ব্যবহৃত হয়। Android Things ও ROS (Robot Operating System) ভিত্তিক মোবাইল রোবট গতি স্থিরীকরণ ও ওডোমিট্রির জন্য MEMS গাইরোস্কোপ ব্যবহার করে। IEEE অধ্যয়ন “MEMS IMU in Robotics” (2024) অনুযায়ী, গাইরোস্কোপ সহ একটি মোবাইল রোবটের স্থাননির্ণয় সক্ষতা শুধু চাকার ওডোমিট্রির চেয়ে 3–5 গুণ বেশি, বিশেষ করে পিছল পৃষ্ঠে। ভোক্তা-শ্রেণির ড্রোনে, বারোমিটারের সাথে গাইরোস্কোপ 10 মি/সেকেন্ড পর্যন্ত বাতাসে 0.5 মিটার সক্ষতায় উড়ান উচ্চতা বজায় রাখে।
AR অ্যাপ্লিকেশনের জন্য, গাইরোস্কোপ হল প্রধান সেন্সর যা বাস্তব বিশ্বের সাপেক্ষে ভির্চুয়াল বস্তুর অবস্থান নির্ধারণ করে। Google ARCore 1000 হার্টজ এ ডিভাইস গতি ট্রেকিংয়ের জন্য গাইরোস্কোপ ব্যবহার করে (অন্তর্নিহিত নমুনার মাধ্যমে, API হার থেকে স্বাধীনভাবে)। Apple এর ARKit গতির সময় 0.5 ডিগ্রি স্থাননির্ণয় সক্ষতা অর্জন করে, যা বাস্তব দৃশ্যে ভির্চুয়াল আসবাব বা গেম চরিত্র আরোপণের জন্য যথেষ্ট।
6-অক্ষ IMU এর নতুন প্রজন্ম (InvenSense ICM-42688, 2024) কম পাওয়ার মোডে 0.45 মিলিএম্পিয়ার বিদ্যুৎ খরচ সহ একটি চিপে গাইরোস্কোপ ও অ্যাক্সেলেরোমিটার সম্মিলিত করে। মোবাইল ডিভাইসের জন্য গ্রেডিয়েনোমিটার ও পারমাণবিক গাইরোস্কোপের বিকাশ এখনও পরীক্ষাগারের প্রোটোটাইপ পর্যায়ে রয়েছে। 0.001 °/সেকেন্ড সক্ষতা সহ বাণিজ্যিক-শ্রেণির MEMS গাইরোস্কোপ 2028 সালে আশা করা হচ্ছে।
সাধারণ জিজ্ঞাসা
গাইরোস্কোপ স্থানে ডিভাইসের ঘূর্ণন ও অভিবিন্যাস শনাক্তি করে। এটি ছাড়া, VR মোড, ঢালু অনুযায়ী অটো-রোটেশন, ভিডিও স্থিরীকরণ ও AR অ্যাপ্লিকেশন অসম্ভব হবে। আধুনিক ফোন গাইরোস্কোপ ছাড়া কাজ করতে পারে না।
অ্যাক্সেলেরোমিটার রৈখিক ত্বরণ (মধুর্ত্বের সাপেক্ষে গতি ও ঢাল) পরিমাপ করে। গাইরোস্কোপ কোণীয় বেগ (ঘূর্ণন) পরিমাপ করে। অ্যাক্সেলেরোমিটার ডিভাইসের ঘূর্ণনকে রৈখিক গতি থেকে আলাদা করতে পারে না — গাইরোস্কোপ এই সমস্যা সমাধান করে।
Android স্বচালিত ক্যালিব্রেশন ব্যবহার করে। ম্যানুয়াল ক্যালিব্রেশনের জন্য, “GPS Status & Toolbox” এর মতো অ্যাপ ডাউনলোড করুন — এগুলি ফোন একটি সমতল পৃষ্ঠে রাখতে ও TYPE_GYROSCOPE_UNCALIBRATED এর মাধ্যমে ক্যালিব্রেট করতে নির্দেশ দেয়।
এটি হল জিয়ারো ড্রিফ্ট — MEMS সেন্সরের একটি প্রাকৃতিক বৈশিষ্ট্য। দামি গাইরোস্কোপেরও বিশ্রামে 0.1–2 °/সেকেন্ড অফসেট থাকে। ক্যালিব্রেশন এই অফসেট বিয়োগ করে। যদি ড্রিফ্ট 5 °/সেকেন্ড অতিক্রম করে, তবে সেন্সরটি ত্রুটিপূর্ণ।
SensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) ব্যবহার করুন ও একটি SensorEventListener নিবন্ধিত করুন। ডেটা তিনটি অক্ষে রেড/সেকেন্ডে আসে। গেমের জন্য, SENSOR_DELAY_GAME (20 মিলিসেকেন্ড); পর্যায়ক্রমিক ব্যবহারের জন্য, SENSOR_DELAY_UI (67 মিলিসেকেন্ড) ব্যবহার করুন।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন