আরডুইনোর সাথে MPU-6050 Gyroscope ইন্টারফেসিং ও ব্যবহার গাইড
### পরিচিতি
MPU-6050 হলো একটি জনপ্রিয় ৬-অক্ষ বিশিষ্ট মোশন ট্র্যাকিং ডিভাইস। এটিতে একটি ৩-অক্ষ জাইরোস্কোপ এবং একটি ৩-অক্ষ এক্সেলেরোমিটার রয়েছে। এটি রোবোটিক্স, ড্রোন এবং ব্যালেন্সিং রোবট তৈরির জন্য অপরিহার্য।
### প্রয়োজনীয় পার্টস
১. Arduino Uno
২. MPU-6050 Module
৩. Jumper Wires
৪. Breadboard
### সার্কিট কানেকশন
MPU-6050 I2C প্রোটোকল ব্যবহার করে কাজ করে। কানেকশনগুলো নিচে দেওয়া হলো:
- MPU-6050 VCC -> Arduino 5V
- MPU-6050 GND -> Arduino GND
- MPU-6050 SDA -> Arduino A4
- MPU-6050 SCL -> Arduino A5
### কিভাবে কাজ করে
MPU-6050 মূলত MEMS (Micro-Electro-Mechanical Systems) প্রযুক্তিতে তৈরি। এটি জাইরোস্কোপের মাধ্যমে কৌণিক গতি (angular velocity) এবং এক্সেলেরোমিটারের মাধ্যমে লিনিয়ার এক্সিলারেশন পরিমাপ করে। I2C ইন্টারফেসের মাধ্যমে আরডুইনো এই ডেটা গ্রহণ করে এবং সিরিয়াল মনিটরে পাঠায়।
কানেকশন ও সার্কিট ডায়াগ্রাম (Connection Diagram)
প্রোগ্রাম কোড (Source Code)
#include <Wire.h>
const int MPU_addr = 0x68; // MPU-6050 এর I2C অ্যাড্রেস
int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;
void setup() {
Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B); // পাওয়ার ম্যানেজমেন্ট রেজিস্টার
Wire.write(0); // মডিউল চালু করা
Wire.endTransmission(true);
Serial.begin(9600); // সিরিয়াল মনিটর চালু করা
}
void loop() {
Wire.beginTransmission(MPU_addr);
Wire.write(0x3B); // ডেটা রেজিস্টার থেকে পড়া শুরু
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr, 14, true);
// ডেটাগুলো রিড করা
AcX = Wire.read() << 8 | Wire.read();
AcY = Wire.read() << 8 | Wire.read();
AcZ = Wire.read() << 8 | Wire.read();
Serial.print("AcX: "); Serial.print(AcX);
Serial.print(" | AcY: "); Serial.println(AcY);
delay(500); // ৫০০ মিলিসেকেন্ড বিরতি
}
..., ... থেকে
...এইমাত্র অর্ডার করেছেন • ...