সুচিপত্র:

MPU-6000 এবং Arduino Nano ব্যবহার করে মোশন ট্র্যাকিং: 4 টি ধাপ
MPU-6000 এবং Arduino Nano ব্যবহার করে মোশন ট্র্যাকিং: 4 টি ধাপ

ভিডিও: MPU-6000 এবং Arduino Nano ব্যবহার করে মোশন ট্র্যাকিং: 4 টি ধাপ

ভিডিও: MPU-6000 এবং Arduino Nano ব্যবহার করে মোশন ট্র্যাকিং: 4 টি ধাপ
ভিডিও: Thorium: An energy solution - THORIUM REMIX 2011 2024, নভেম্বর
Anonim
Image
Image

MPU-6000 একটি 6-অ্যাক্সিস মোশন ট্র্যাকিং সেন্সর যার মধ্যে 3-অ্যাক্সিস অ্যাকসিলরোমিটার এবং 3-অ্যাক্সিস জাইরোস্কোপ রয়েছে। এই সেন্সরটি ত্রিমাত্রিক সমতলে কোন বস্তুর সঠিক অবস্থান এবং অবস্থানের দক্ষ ট্র্যাকিং করতে সক্ষম। এটি এমন সিস্টেমে নিযুক্ত করা যেতে পারে যার জন্য সর্বোচ্চ বিশুদ্ধতার জন্য অবস্থান বিশ্লেষণ প্রয়োজন।

এই টিউটোরিয়ালে MPU-6000 সেন্সর মডিউলের আরডুইনো ন্যানো সহ ইন্টারফেসিং চিত্রিত করা হয়েছে। ত্বরণ এবং ঘূর্ণন কোণের মান পড়ার জন্য, আমরা একটি I2c অ্যাডাপ্টারের সাথে arduino ন্যানো ব্যবহার করেছি এই I2C অ্যাডাপ্টার সেন্সর মডিউলের সাথে সংযোগ সহজ এবং আরো নির্ভরযোগ্য করে তোলে।

পদক্ষেপ 1: হার্ডওয়্যার প্রয়োজন:

হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন

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

1. এমপিইউ -6000

2. Arduino Nano

3. I2C কেবল

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

পদক্ষেপ 2: হার্ডওয়্যার সংযুক্তি:

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

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

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

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

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

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

ধাপ 3: মোশন ট্র্যাকিংয়ের জন্য কোড:

মোশন ট্র্যাকিংয়ের জন্য কোড
মোশন ট্র্যাকিংয়ের জন্য কোড

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

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

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

#অন্তর্ভুক্ত

// MPU-6000 I2C ঠিকানা হল 0x68 (104)

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

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

{

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

Wire.begin ();

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

Serial.begin (9600);

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

Wire.beginTransmission (Addr);

// জাইরোস্কোপ কনফিগারেশন রেজিস্টার নির্বাচন করুন

Wire.write (0x1B);

// পূর্ণ স্কেল পরিসীমা = 2000 ডিপিএস

Wire.write (0x18);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// অ্যাকসিলরোমিটার কনফিগারেশন রেজিস্টার নির্বাচন করুন

Wire.write (0x1C);

// পূর্ণ স্কেল পরিসীমা = +/- 16 গ্রাম

Wire.write (0x18);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// পাওয়ার ম্যানেজমেন্ট রেজিস্টার নির্বাচন করুন

Wire.write (0x6B);

// xGyro রেফারেন্স সহ PLL

Wire.write (0x01);

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

Wire.endTransmission ();

বিলম্ব (300);

}

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

{

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

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

Wire.beginTransmission (Addr);

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

Wire.write (0x3B);

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

Wire.endTransmission ();

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

Wire.requestFrom (Addr, 6);

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

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

{

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

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

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

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

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

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

}

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

int xAccl = data [0] * 256 + data [1];

int yAccl = data [2] * 256 + data [3];

int zAccl = data [4] * 256 + data [5];

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

Wire.beginTransmission (Addr);

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

Wire.write (0x43);

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

Wire.endTransmission ();

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

Wire.requestFrom (Addr, 6);

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

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

{

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

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

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

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

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

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

}

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

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

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

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

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

সিরিয়াল.প্রিন্ট ("এক্স-এক্সিসে এক্সিলারেশন:");

Serial.println (xAccl);

Serial.print ("Y-Axis- এ ত্বরণ:");

Serial.println (yAccl);

সিরিয়াল.প্রিন্ট ("Z-Axis- এ এক্সিলারেশন:");

Serial.println (zAccl);

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

Serial.println (xGyro);

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

Serial.println (yGyro);

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

Serial.println (zGyro);

বিলম্ব (500);

}

ওয়্যার লাইব্রেরিতে Wire.write () এবং Wire.read () কমান্ড লিখতে এবং সেন্সর আউটপুট পড়তে ব্যবহৃত হয়।

Serial.print () এবং Serial.println () Arduino IDE এর সিরিয়াল মনিটরে সেন্সরের আউটপুট প্রদর্শন করতে ব্যবহৃত হয়।

সেন্সরের আউটপুট উপরের ছবিতে দেখানো হয়েছে।

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

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

MPU-6000 একটি মোশন ট্র্যাকিং সেন্সর, যা স্মার্টফোন এবং ট্যাবলেটগুলির মোশন ইন্টারফেসে এর প্রয়োগ খুঁজে পায়। স্মার্টফোনে এই সেন্সরগুলি অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যেতে পারে যেমন অ্যাপ্লিকেশনগুলির জন্য অঙ্গভঙ্গি কমান্ড এবং ফোন নিয়ন্ত্রণ, বর্ধিত গেমিং, বর্ধিত বাস্তবতা, প্যানোরামিক ছবি তোলা এবং দেখা এবং পথচারী এবং যানবাহন চলাচল। মোশনট্র্যাকিং প্রযুক্তি হ্যান্ডসেট এবং ট্যাবলেটগুলিকে শক্তিশালী 3 ডি বুদ্ধিমান ডিভাইসে রূপান্তর করতে পারে যা স্বাস্থ্য এবং ফিটনেস পর্যবেক্ষণ থেকে শুরু করে অবস্থান-ভিত্তিক পরিষেবাগুলিতে ব্যবহার করা যেতে পারে।

প্রস্তাবিত: