কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড মোবাইল জাইরোস্কোপ সেন্সর সাপোর্ট যাচাই

অ্যান্ড্রয়েড ডিভাইসে জাইরোস্কোপ (Gyroscope) সেন্সর সাপোর্ট যাচাই

এই টিউটোরিয়ালে শিখব কিভাবে SensorManager ব্যবহার করে ডিভাইসে জাইরোস্কোপ সেন্সর উপলব্ধ কিনা তা যাচাই করতে হয়। জাইরোস্কোপ ঘূর্ণন বেগ (angular velocity) পরিমাপ করে এবং গেমিং, AR/VR, নেভিগেশনের জন্য অপরিহার্য।

প্রয়োজনীয় ধাপসমূহ

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project নির্বাচন করে প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট ফাইল

res/layout/activity_main.xml ফাইলে:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <TextView
        android:id="@+id/actionEvent"
        android:textSize="40sp"
        android:layout_marginTop="30dp"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</LinearLayout>

ধাপ ৩: জাভা কোড

src/MainActivity.java ফাইলে:

package com.example.myapplication;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private SensorManager sensorManager;
    TextView actionEvent;

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        actionEvent = findViewById(R.id.actionEvent);
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        
        // জাইরোস্কোপ সেন্সর যাচাই
        Sensor gyroscopeSensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
        
        if (gyroscopeSensor != null) {
            actionEvent.setText("✓ জাইরোস্কোপ সমর্থিত\n" +
                "নাম: " + gyroscopeSensor.getName() + "\n" +
                "ম্যাক্স রেঞ্জ: " + gyroscopeSensor.getMaximumRange() + " rad/s\n" +
                "রেজোলিউশন: " + gyroscopeSensor.getResolution() + " rad/s\n" +
                "পাওয়ার: " + gyroscopeSensor.getPower() + " mA\n" +
                "মিন ডिले: " + gyroscopeSensor.getMinDelay() + " μs");
        } else {
            actionEvent.setText("✗ জাইরোস্কোপ সমর্থিত নয়");
        }
    }
}

জাইরোস্কোপ সেন্সর বিবরণ

বিষয়বিস্তারিত
সেন্সর টাইপSensor.TYPE_GYROSCOPE
পরিমাপX, Y, Z অক্ষে ঘূর্ণন বেগ (radians/second)
এককরেডিয়ান পার সেকেন্ড (rad/s)
API লেভেল1 (Android 1.0 থেকে)
সাধারণ রেঞ্জ±34.91 rad/s (২০০০ deg/s) বা বেশি

জাইরোস্কোপ ডেটা পড়া

SensorEventListener listener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        float x = event.values[0]; // X-অক্ষ ঘূর্ণন
        float y = event.values[1]; // Y-অক্ষ ঘূর্ণন
        float z = event.values[2]; // Z-অক্ষ ঘূর্ণন
        // UI আপডেট বা গেম লজিক
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};
sensorManager.registerListener(listener, gyroscopeSensor, SensorManager.SENSOR_DELAY_GAME);

জাইরোস্কোপ vs এক্সিলারোমিটার

বৈশিষ্ট্যজাইরোস্কোপএক্সিলারোমিটার
পরিমাপঘূর্ণন বেগ (Angular velocity)লিনিয়ার ত্বরণ (Linear acceleration)
গ্র্যাভিটি প্রভাবনাহ্যাঁ (গ্র্যাভিটি কম্পোনেন্ট থাকে)
ড্রিফটসময়ের সাথে বেড়ে (integration error)নहीं
দ্রুত প্রতিক্রিয়াহ্যাঁমধ্যম

সেন্সর ফিউশন (Sensor Fusion)

সর্বোত্তম ফলাফলের জন্য জাইরোস্কোপ + এক্সিলারোমিটার + ম্যাগনেটোমিটার মিলিয়ে ব্যবহার করা হয় (AHRS алгоритম, Kalman filter, Complementary filter)।

ব্যবহারের ক্ষেত্র

  • মোবাইল গেমিং (রেসিং, FPS কন্ট্রোল)
  • AR/VR অ্যাপ্লিকেশন (হেড ট্র্যাকিং)
  • ইমেজ স্ট্যাবিলাইজেশন (OIS/EIS)
  • ইন্ডোর নেভিগেশন (Dead reckoning)
  • ফলো মোড ড্রোন কন্ট্রোল

অ্যাপ্লিকেশন চালানো

রান করলে ডিভাইসে জাইরোস্কোপ থাকলে বিস্তারিত স্পেসিফিকেশন সহ "✓ জাইরোস্কোপ সমর্থিত" দেখাবে। অধিকাংশ মিড-রেঞ্জ ও প্রিমিয়াম ফোনে এটি থাকে।

লক্ষ্য করুন

  • বাজেট ফোনে (Go edition, এন্ট্রি লেভেল) জাইরোস্কোপ থাকে না
  • VR অ্যাপের জন্য জাইরোস্কোপ বাধ্যতামূলক
  • GAME_DELAY রেট ব্যবহার করুন গেমিং-এর জন্য
  1. অ্যান্ড্রয়েড মোবাইল প্রেশার সেন্সর সাপোর্ট যাচাই

  2. অ্যান্ড্রয়েডে বর্তমান Wi-Fi 5 GHz ব্যান্ড সমর্থন করে কিনা যাচাই করুন

  3. অ্যান্ড্রয়েডে Wi-Fi সবসময় আবিষ্কারযোগ্য (Discoverable) কিনা যাচাই করুন

  4. অ্যান্ড্রয়েডে চলমান অ্যাপ্লিকেশন তালিকা পাওয়ার উপায়