সুচিপত্র:

Arduino Nano দিয়ে 3-Axis Gyroscope Sensor BMG160 এর ইন্টারফেসিং: 5 টি ধাপ
Arduino Nano দিয়ে 3-Axis Gyroscope Sensor BMG160 এর ইন্টারফেসিং: 5 টি ধাপ

ভিডিও: Arduino Nano দিয়ে 3-Axis Gyroscope Sensor BMG160 এর ইন্টারফেসিং: 5 টি ধাপ

ভিডিও: Arduino Nano দিয়ে 3-Axis Gyroscope Sensor BMG160 এর ইন্টারফেসিং: 5 টি ধাপ
ভিডিও: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, নভেম্বর
Anonim
Image
Image

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

এই টিউটোরিয়ালে, আমরা Arduino Nano দিয়ে BMG160 এর কাজ প্রদর্শন করতে যাচ্ছি।

হার্ডওয়্যার যে আপনি এই উদ্দেশ্যে প্রয়োজন হতে যাচ্ছে নিম্নরূপ:

1. বিএমজি 160

2. Arduino Nano

3. I2C কেবল

4. Arduino ন্যানোর জন্য I2C শিল্ড

ধাপ 1: BMG160 ওভারভিউ:

তুমি কি চাও..!!
তুমি কি চাও..!!

সর্বপ্রথম আমরা আপনাকে BMG160 সেন্সর মডিউল এবং যোগাযোগ প্রোটোকলের মৌলিক বৈশিষ্ট্যগুলির সাথে পরিচিত করতে চাই।

BMG160 মূলত একটি 16-বিট, ডিজিটাল, ট্রায়াক্সিয়াল, জাইরোস্কোপ সেন্সর যা কৌণিক হার পরিমাপ করতে পারে। এটি তিনটি লম্ব ঘরের মাত্রা, x-, y- এবং z- অক্ষের মধ্যে কৌণিক হার গণনা করতে এবং সংশ্লিষ্ট আউটপুট সংকেত প্রদান করতে সক্ষম। এটি I2C যোগাযোগ প্রোটোকল ব্যবহার করে রাস্পবেরি পাই বোর্ডের সাথে যোগাযোগ করতে পারে। এই বিশেষ মডিউলটি ভোক্তা অ্যাপ্লিকেশনগুলির পাশাপাশি শিল্পের উদ্দেশ্যে প্রয়োজনীয়তা পূরণের জন্য ডিজাইন করা হয়েছে।

সেন্সর যে কমিউনিকেশন প্রোটোকলের উপর কাজ করে তা হল I2C। I2C মানে ইন্টার-ইন্টিগ্রেটেড সার্কিট। এটি একটি যোগাযোগ প্রোটোকল যেখানে যোগাযোগ SDA (সিরিয়াল ডেটা) এবং এসসিএল (সিরিয়াল ক্লক) লাইনের মাধ্যমে হয়। এটি একই সময়ে একাধিক ডিভাইস সংযুক্ত করার অনুমতি দেয়। এটি একটি সহজ এবং সবচেয়ে কার্যকর যোগাযোগ প্রোটোকল।

ধাপ 2: আপনার যা প্রয়োজন..

তুমি কি চাও..!!
তুমি কি চাও..!!
তুমি কি চাও..!!
তুমি কি চাও..!!
তুমি কি চাও..!!
তুমি কি চাও..!!

আমাদের লক্ষ্য পূরণের জন্য আমাদের যে উপকরণগুলির প্রয়োজন তা নিম্নলিখিত হার্ডওয়্যার উপাদানগুলি অন্তর্ভুক্ত করে:

1. BMG160

2. Arduino Nano

3. I2C কেবল

4. Arduino Nano এর জন্য I2C শিল্ড

ধাপ 3: হার্ডওয়্যার সংযুক্তি:

হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি

হার্ডওয়্যার হুকআপ বিভাগটি মূলত সেন্সর এবং আরডুইনো এর মধ্যে প্রয়োজনীয় তারের সংযোগ ব্যাখ্যা করে। কাঙ্ক্ষিত আউটপুটের জন্য যে কোনো সিস্টেমে কাজ করার সময় সঠিক সংযোগ নিশ্চিত করা মৌলিক প্রয়োজনীয়তা। সুতরাং, প্রয়োজনীয় সংযোগগুলি নিম্নরূপ:

BMG160 I2C এর উপর কাজ করবে। সেন্সরের প্রতিটি ইন্টারফেসকে কিভাবে ওয়্যার আপ করতে হয় তা দেখানো হচ্ছে ওয়্যারিং ডায়াগ্রামের উদাহরণ।

বাক্সের বাইরে, বোর্ডটি একটি I2C ইন্টারফেসের জন্য কনফিগার করা হয়েছে, যেমন আপনি অন্যথায় অজ্ঞেয়বাদী হলে আমরা এই হুকআপটি ব্যবহার করার পরামর্শ দিই।

আপনার প্রয়োজন শুধু চারটি তারের! VCC, Gnd, SCL এবং SDA পিনের জন্য মাত্র চারটি সংযোগ প্রয়োজন এবং এগুলি I2C তারের সাহায্যে সংযুক্ত।

এই সংযোগগুলি উপরের ছবিতে প্রদর্শিত হয়েছে।

ধাপ 4: 3-অক্ষ জাইরোস্কোপ পরিমাপ Arduino কোড:

3-অক্ষ Gyroscope পরিমাপ Arduino কোড
3-অক্ষ Gyroscope পরিমাপ Arduino কোড
3-অক্ষ Gyroscope পরিমাপ Arduino কোড
3-অক্ষ Gyroscope পরিমাপ Arduino কোড

এখন আরডুইনো কোড দিয়ে শুরু করা যাক।

Arduino এর সাথে সেন্সর মডিউল ব্যবহার করার সময়, আমরা Wire.h লাইব্রেরি অন্তর্ভুক্ত করি। "ওয়্যার" লাইব্রেরিতে ফাংশন রয়েছে যা সেন্সর এবং আরডুইনো বোর্ডের মধ্যে i2c যোগাযোগকে সহজতর করে।

ব্যবহারকারীর সুবিধার জন্য সম্পূর্ণ আরডুইনো কোড নিচে দেওয়া হল:

#অন্তর্ভুক্ত // BMG160 I2C ঠিকানা হল 0x68 (104)

#সংযোজনকারী 0x68

অকার্যকর সেটআপ()

{

// মাস্টার হিসাবে I2C যোগাযোগ শুরু করুন

Wire.begin ();

// সিরিয়াল কমিউনিকেশন শুরু করুন, বড রেট = 9600 সেট করুন

Serial.begin (9600);

// I2C ট্রান্সমিশন শুরু করুন

Wire.beginTransmission (Addr);

// রেঞ্জ রেজিস্টার নির্বাচন করুন

Wire.write (0x0F);

// পূর্ণ স্কেল পরিসীমা 2000 ডিপিএস কনফিগার করুন

Wire.write (0x80);

// I2C ট্রান্সমিশন বন্ধ করুন

Wire.endTransmission ();

// I2C ট্রান্সমিশন শুরু করুন

Wire.beginTransmission (Addr);

// ব্যান্ডউইথ রেজিস্টার নির্বাচন করুন

Wire.write (0x10);

// সেট ব্যান্ডউইথ = 200 Hz

Wire.write (0x04);

// I2C ট্রান্সমিশন বন্ধ করুন

Wire.endTransmission ();

বিলম্ব (300);

}

অকার্যকর লুপ ()

{

স্বাক্ষরবিহীন int ডেটা [6];

// I2C ট্রান্সমিশন শুরু করুন

Wire.beginTransmission (Addr);

// Gyrometer ডেটা রেজিস্টার নির্বাচন করুন

Wire.write (0x02);

// I2C ট্রান্সমিশন বন্ধ করুন

Wire.endTransmission ();

// 6 বাইট ডেটা অনুরোধ করুন

Wire.requestFrom (Addr, 6);

// 6 বাইট ডেটা পড়ুন

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

যদি (Wire.available () == 6)

{

ডেটা [0] = ওয়্যার.রেড ();

ডেটা [1] = ওয়্যার.রেড ();

ডেটা [2] = ওয়্যার.রেড ();

ডেটা [3] = ওয়্যার.রেড ();

তথ্য [4] = Wire.read ();

তথ্য [5] = ওয়্যার.রেড ();

}

বিলম্ব (300);

// তথ্য রূপান্তর

int xGyro = ((data [1] * 256) + data [0]);

int yGyro = ((data [3] * 256) + data [2]);

int zGyro = ((data [5] * 256) + data [4]);

// সিরিয়াল মনিটরে আউটপুট ডেটা

সিরিয়াল.প্রিন্ট ("ঘূর্ণনের এক্স-অক্ষ:");

Serial.println (xGyro); সিরিয়াল.প্রিন্ট ("ঘূর্ণনের Y- অক্ষ:");

Serial.println (yGyro); সিরিয়াল.প্রিন্ট ("ঘূর্ণনের জেড-অক্ষ:");

Serial.println (zGyro);

বিলম্ব (500);

}

ধাপ 5: অ্যাপ্লিকেশন:

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

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

প্রস্তাবিত: