সুচিপত্র:
- পদক্ষেপ 1: হার্ডওয়্যার প্রয়োজন:
- পদক্ষেপ 2: হার্ডওয়্যার সংযুক্তি:
- ধাপ 3: মোশন ট্র্যাকিংয়ের জন্য কোড:
- ধাপ 4: অ্যাপ্লিকেশন:
ভিডিও: MPU-6000 এবং কণা ফোটন ব্যবহার করে মোশন ট্র্যাকিং: 4 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:56
MPU-6000 একটি 6-অ্যাক্সিস মোশন ট্র্যাকিং সেন্সর যার মধ্যে 3-অ্যাক্সিস অ্যাকসিলরোমিটার এবং 3-অ্যাক্সিস জাইরোস্কোপ রয়েছে। এই সেন্সরটি ত্রিমাত্রিক সমতলে কোন বস্তুর সঠিক অবস্থান এবং অবস্থানের দক্ষ ট্র্যাকিং করতে সক্ষম। এটি এমন সিস্টেমে নিযুক্ত করা যেতে পারে যার জন্য সর্বোচ্চ বিশুদ্ধতার জন্য অবস্থান বিশ্লেষণ প্রয়োজন।
এই টিউটোরিয়ালে পার্টিকেল ফোটন সহ MPU-6000 সেন্সর মডিউলের ইন্টারফেসিং চিত্রিত করা হয়েছে। ত্বরণ এবং ঘূর্ণন কোণের মান পড়ার জন্য, আমরা একটি I2c অ্যাডাপ্টারের সাথে কণা ব্যবহার করেছি এই I2C অ্যাডাপ্টার সেন্সর মডিউলের সাথে সংযোগ সহজ এবং আরো নির্ভরযোগ্য করে তোলে।
পদক্ষেপ 1: হার্ডওয়্যার প্রয়োজন:
আমাদের কাজ সম্পাদনের জন্য প্রয়োজনীয় উপকরণগুলি নীচে উল্লিখিত হার্ডওয়্যার উপাদানগুলি অন্তর্ভুক্ত করে:
1. এমপিইউ -6000
2. কণা ফোটন
3. I2C কেবল
4. কণা ফোটনের জন্য I2C শিল্ড
পদক্ষেপ 2: হার্ডওয়্যার সংযুক্তি:
হার্ডওয়্যার হুকআপ বিভাগটি মূলত সেন্সর এবং কণা ফোটনের মধ্যে প্রয়োজনীয় তারের সংযোগ ব্যাখ্যা করে। কাঙ্ক্ষিত আউটপুটের জন্য যে কোনো সিস্টেমে কাজ করার সময় সঠিক সংযোগ নিশ্চিত করা মৌলিক প্রয়োজনীয়তা। সুতরাং, প্রয়োজনীয় সংযোগগুলি নিম্নরূপ:
MPU-6000 I2C এর উপর কাজ করবে। সেন্সরের প্রতিটি ইন্টারফেসকে কিভাবে ওয়্যার আপ করতে হয় তা দেখানো হচ্ছে ওয়্যারিং ডায়াগ্রামের উদাহরণ।
বাক্সের বাইরে, বোর্ডটি একটি I2C ইন্টারফেসের জন্য কনফিগার করা হয়েছে, যেমন আপনি অন্যথায় অজ্ঞেয়বাদী হলে আমরা এই হুকআপটি ব্যবহার করার পরামর্শ দিই। আপনার প্রয়োজন শুধু চারটি তারের!
VCC, Gnd, SCL এবং SDA পিনের জন্য মাত্র চারটি সংযোগ প্রয়োজন এবং এগুলি I2C তারের সাহায্যে সংযুক্ত।
এই সংযোগগুলি উপরের ছবিতে প্রদর্শিত হয়েছে।
ধাপ 3: মোশন ট্র্যাকিংয়ের জন্য কোড:
এখন কণা কোড দিয়ে শুরু করা যাক।
Arduino এর সাথে সেন্সর মডিউল ব্যবহার করার সময়, আমরা application.h এবং spark_wiring_i2c.h লাইব্রেরি অন্তর্ভুক্ত করি। "application.h" এবং spark_wiring_i2c.h লাইব্রেরিতে ফাংশন রয়েছে যা সেন্সর এবং কণার মধ্যে i2c যোগাযোগ সহজ করে।
ব্যবহারকারীর সুবিধার জন্য সম্পূর্ণ কণা কোড নিচে দেওয়া হল:
#include #include // MPU-6000 I2C ঠিকানা হল 0x68 (104) #Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; অকার্যকর সেটআপ () {// সেট পরিবর্তনশীল Particle.variable ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Particle.variable ("zGyro", zGyro); // মাস্টার ওয়্যার হিসাবে I2C যোগাযোগ শুরু করুন (); // সিরিয়াল যোগাযোগ শুরু করুন, বড রেট সেট করুন = 9600 সিরিয়াল.বেগিন (9600); // I2C ট্রান্সমিশন শুরু Wire.beginTransmission (Addr); // জাইরোস্কোপ কনফিগারেশন রেজিস্টার Wire.write নির্বাচন করুন (0x1B); // পূর্ণ স্কেল পরিসীমা = 2000 ডিপিএস Wire.write (0x18); // স্টপ I2C ট্রান্সমিশন Wire.endTransmission (); // I2C ট্রান্সমিশন শুরু করুন Wire.beginTransmission (Addr); // অ্যাকসিলরোমিটার কনফিগারেশন রেজিস্টার Wire.write (0x1C) নির্বাচন করুন; // সম্পূর্ণ স্কেল পরিসীমা = +/- 16g Wire.write (0x18); // স্টপ I2C ট্রান্সমিশন Wire.endTransmission (); // I2C ট্রান্সমিশন শুরু Wire.beginTransmission (Addr); // পাওয়ার ম্যানেজমেন্ট রেজিস্টার Wire.write (0x6B) নির্বাচন করুন; // xGyro রেফারেন্স Wire.write সঙ্গে PLL (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) {data [0] = Wire.read (); ডেটা [1] = ওয়্যার.রেড (); ডেটা [2] = ওয়্যার.রেড (); ডেটা [3] = ওয়্যার.রেড (); তথ্য [4] = Wire.read (); তথ্য [5] = ওয়্যার.রেড (); } বিলম্ব (800); // ডেটা রূপান্তর করুন xAccl = ((data [1] * 256) + data [0]); যদি (xAccl> 32767) {xAccl -= 65536; } yAccl = ((data [3] * 256) + data [2]); যদি (yAccl> 32767) {yAccl -= 65536; } zAccl = ((data [5] * 256) + data [4]); যদি (zAccl> 32767) {zAccl -= 65536; } বিলম্ব (800); // I2C ট্রান্সমিশন শুরু করুন Wire.beginTransmission (Addr); // ডাটা রেজিস্টার Wire.write নির্বাচন করুন (0x43); // I2C ট্রান্সমিশন Wire.endTransmission () বন্ধ করুন; // অনুরোধ 6 বাইট ডেটা Wire.requestFrom (Addr, 6); // তথ্য 6 বাইট পড়ুন যদি (Wire.available () == 6) {data [0] = Wire.read (); ডেটা [1] = ওয়্যার.রেড (); ডেটা [2] = ওয়্যার.রেড (); ডেটা [3] = ওয়্যার.রেড (); তথ্য [4] = Wire.read (); তথ্য [5] = ওয়্যার.রেড (); } // ডেটা রূপান্তর করুন xGyro = ((data [1] * 256) + data [0]); যদি (xGyro> 32767) {xGyro -= 65536; } yGyro = ((data [3] * 256) + data [2]); যদি (yGyro> 32767) {yGyro -= 65536; } zGyro = ((data [5] * 256) + data [4]); যদি (zGyro> 32767) {zGyro -= 65536; } // ড্যাশবোর্ড Particle.publish এ আউটপুট ডেটা ("এক্স-এক্সিসে এক্সিলারেশন:", স্ট্রিং (xAccl)); বিলম্ব (1000); Particle.publish ("Y-Axis- এ ত্বরণ:", স্ট্রিং (yAccl)); বিলম্ব (1000); Particle.publish ("Z-Axis- এ এক্সিলারেশন:", স্ট্রিং (zAccl)); বিলম্ব (1000); Particle.publish ("ঘূর্ণনের X- অক্ষ:", স্ট্রিং (xGyro)); বিলম্ব (1000); Particle.publish ("ঘূর্ণনের Y- অক্ষ:", স্ট্রিং (yGyro)); বিলম্ব (1000); Particle.publish ("ঘূর্ণনের Z- অক্ষ:", স্ট্রিং (zGyro)); বিলম্ব (1000); }
Particle.variable () ফাংশন সেন্সরের আউটপুট সংরক্ষণ করার জন্য ভেরিয়েবল তৈরি করে এবং Particle.publish () ফাংশন সাইটের ড্যাশবোর্ডে আউটপুট প্রদর্শন করে।
আপনার রেফারেন্সের জন্য উপরের ছবিতে সেন্সর আউটপুট দেখানো হয়েছে।
ধাপ 4: অ্যাপ্লিকেশন:
MPU-6000 একটি মোশন ট্র্যাকিং সেন্সর, যা স্মার্টফোন এবং ট্যাবলেটগুলির মোশন ইন্টারফেসে এর প্রয়োগ খুঁজে পায়। স্মার্টফোনে এই সেন্সরগুলি অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যেতে পারে যেমন অ্যাপ্লিকেশনগুলির জন্য অঙ্গভঙ্গি কমান্ড এবং ফোন নিয়ন্ত্রণ, বর্ধিত গেমিং, বর্ধিত বাস্তবতা, প্যানোরামিক ছবি তোলা এবং দেখা এবং পথচারী এবং যানবাহন চলাচল। মোশনট্র্যাকিং প্রযুক্তি হ্যান্ডসেট এবং ট্যাবলেটগুলিকে শক্তিশালী 3 ডি বুদ্ধিমান ডিভাইসে রূপান্তর করতে পারে যা স্বাস্থ্য এবং ফিটনেস পর্যবেক্ষণ থেকে শুরু করে অবস্থান-ভিত্তিক পরিষেবাগুলিতে ব্যবহার করা যেতে পারে।
প্রস্তাবিত:
ADXL345 এবং কণা ফোটন ব্যবহার করে ত্বরণের পরিমাপ: 4 টি ধাপ
ADXL345 এবং কণা ফোটন ব্যবহার করে ত্বরণের পরিমাপ: ADXL345 হল একটি ছোট, পাতলা, অতিবেগুনি শক্তি, 3-অক্ষের অ্যাকসিলরোমিটার যার উচ্চ রেজোলিউশন (13-বিট) পরিমাপ ± 16 গ্রাম পর্যন্ত। ডিজিটাল আউটপুট ডেটা 16-বিট দুইটি পরিপূরক হিসাবে ফরম্যাট করা হয় এবং I2 C ডিজিটাল ইন্টারফেসের মাধ্যমে অ্যাক্সেসযোগ্য। এটি পরিমাপ করে
তাপমাত্রা এবং আর্দ্রতা নিরীক্ষণ SHT25 এবং কণা ফোটন ব্যবহার করে: 5 টি ধাপ
এসএইচটি ২৫ এবং কণা ফোটন ব্যবহার করে তাপমাত্রা এবং আর্দ্রতা পর্যবেক্ষণ: আমরা সম্প্রতি বিভিন্ন প্রকল্পে কাজ করেছি যার জন্য তাপমাত্রা এবং আর্দ্রতা পর্যবেক্ষণের প্রয়োজন ছিল এবং তখন আমরা বুঝতে পেরেছিলাম যে এই দুটি পরামিতিগুলি আসলে একটি সিস্টেমের কার্যক্ষমতার অনুমানের ক্ষেত্রে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। উভয়ই ইন্দুতে
আর্দ্রতা এবং তাপমাত্রা পরিমাপ HIH6130 এবং কণা ফোটন ব্যবহার করে: 4 টি ধাপ
HIH6130 এবং কণা ফোটন ব্যবহার করে আর্দ্রতা এবং তাপমাত্রা পরিমাপ: HIH6130 ডিজিটাল আউটপুট সহ আর্দ্রতা এবং তাপমাত্রা সেন্সর। এই সেন্সরগুলি ± 4% RH এর নির্ভুলতা স্তর প্রদান করে। শিল্প-নেতৃস্থানীয় দীর্ঘমেয়াদী স্থিতিশীলতা, প্রকৃত তাপমাত্রা-ক্ষতিপূরণযুক্ত ডিজিটাল I2C, শিল্প-নেতৃস্থানীয় নির্ভরযোগ্যতা, শক্তি দক্ষতা
HDC1000 এবং কণা ফোটন ব্যবহার করে তাপমাত্রা এবং আর্দ্রতার পরিমাপ: 4 টি ধাপ
HDC1000 এবং কণা ফোটন ব্যবহার করে তাপমাত্রা এবং আর্দ্রতার পরিমাপ: HDC1000 হল একটি ডিজিটাল আর্দ্রতা সেন্সর সহ সমন্বিত তাপমাত্রা সেন্সর যা খুব কম শক্তিতে চমৎকার পরিমাপ নির্ভুলতা প্রদান করে। ডিভাইসটি একটি নতুন ক্যাপাসিটিভ সেন্সরের উপর ভিত্তি করে আর্দ্রতা পরিমাপ করে। আর্দ্রতা এবং তাপমাত্রা সেন্সর মুখ
HTS221 এবং কণা ফোটন ব্যবহার করে আর্দ্রতা এবং তাপমাত্রা পরিমাপ: 4 টি ধাপ
HTS221 এবং কণা ফোটন ব্যবহার করে আর্দ্রতা এবং তাপমাত্রা পরিমাপ: HTS221 আপেক্ষিক আর্দ্রতা এবং তাপমাত্রার জন্য একটি অতি কম্প্যাক্ট ক্যাপাসিটিভ ডিজিটাল সেন্সর। ডিজিটাল সিরিয়ালের মাধ্যমে পরিমাপের তথ্য প্রদানের জন্য এটি একটি সেন্সিং উপাদান এবং একটি মিশ্র সংকেত অ্যাপ্লিকেশন নির্দিষ্ট সমন্বিত সার্কিট (ASIC) অন্তর্ভুক্ত করে