সুচিপত্র:
- ধাপ 1: BMG160 ওভারভিউ:
- ধাপ 2: আপনার যা প্রয়োজন..
- ধাপ 3: হার্ডওয়্যার সংযুক্তি:
- ধাপ 4: 3-অক্ষ জাইরোস্কোপ পরিমাপ কণা কোড:
- ধাপ 5: অ্যাপ্লিকেশন:
ভিডিও: কণার সাথে 3-অ্যাক্সিস জাইরোস্কোপ সেন্সর BMG160 এর ইন্টারফেসিং: 5 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
আজকের বিশ্বে, অর্ধেকেরও বেশি যুবক এবং শিশুরা গেমিংয়ের প্রতি অনুরক্ত এবং যারা এটির প্রতি অনুরাগী, তারা গেমিংয়ের প্রযুক্তিগত দিকগুলি দেখে মুগ্ধ হয়ে এই ডোমেইনে মোশন সেন্সিংয়ের গুরুত্ব জানে। আমরাও একই জিনিস দেখে বিস্মিত হয়েছি এবং শুধু বোর্ডে এটি আনতে, আমরা একটি জাইরোস্কোপ সেন্সর নিয়ে কাজ করার কথা ভেবেছিলাম যা কোন বস্তুর কৌণিক হার পরিমাপ করতে পারে। সুতরাং, কাজটি মোকাবেলা করার জন্য আমরা যে সেন্সরটি হাতে নিয়েছি তা হল BMG160। বিএমজি 160 একটি 16-বিট, ডিজিটাল, ট্রায়াক্সিয়াল, জাইরোস্কোপ সেন্সর যা তিনটি লম্বকক্ষ কক্ষের কৌণিক হার পরিমাপ করতে পারে।
এই টিউটোরিয়ালে, আমরা পার্টিকেল ফোটনের সাথে BMG160 এর কাজ প্রদর্শন করতে যাচ্ছি।
হার্ডওয়্যার যে আপনি এই উদ্দেশ্যে প্রয়োজন হতে যাচ্ছে নিম্নরূপ:
1. BMG160
2. কণা ফোটন
3. I2C কেবল
4. কণা ফোটনের জন্য I2C শিল্ড
ধাপ 1: BMG160 ওভারভিউ:
সর্বপ্রথম আমরা আপনাকে BMG160 সেন্সর মডিউল এবং যোগাযোগ প্রোটোকলের মৌলিক বৈশিষ্ট্যগুলির সাথে পরিচিত করতে চাই।
BMG160 মূলত একটি 16-বিট, ডিজিটাল, ট্রায়াক্সিয়াল, জাইরোস্কোপ সেন্সর যা কৌণিক হার পরিমাপ করতে পারে। এটি তিনটি লম্ব ঘরের মাত্রা, x-, y- এবং z- অক্ষের মধ্যে কৌণিক হার গণনা করতে এবং সংশ্লিষ্ট আউটপুট সংকেত প্রদান করতে সক্ষম। এটি I2C যোগাযোগ প্রোটোকল ব্যবহার করে রাস্পবেরি পাই বোর্ডের সাথে যোগাযোগ করতে পারে। এই বিশেষ মডিউলটি ভোক্তা অ্যাপ্লিকেশনগুলির পাশাপাশি শিল্পের উদ্দেশ্যে প্রয়োজনীয়তা পূরণের জন্য ডিজাইন করা হয়েছে।
সেন্সর যে কমিউনিকেশন প্রোটোকলের উপর কাজ করে তা হল I2C। I2C মানে ইন্টার-ইন্টিগ্রেটেড সার্কিট। এটি একটি যোগাযোগ প্রোটোকল যেখানে যোগাযোগ SDA (সিরিয়াল ডেটা) এবং এসসিএল (সিরিয়াল ক্লক) লাইনের মাধ্যমে হয়। এটি একই সময়ে একাধিক ডিভাইস সংযুক্ত করার অনুমতি দেয়। এটি একটি সহজ এবং সবচেয়ে কার্যকর যোগাযোগ প্রোটোকল।
ধাপ 2: আপনার যা প্রয়োজন..
আমাদের লক্ষ্য পূরণের জন্য আমাদের যে উপকরণগুলির প্রয়োজন তা নিম্নলিখিত হার্ডওয়্যার উপাদানগুলি অন্তর্ভুক্ত করে:
1. BMG160
2. কণা ফোটন
3. I2C কেবল
4. কণা ফোটনের জন্য I2C শিল্ড
ধাপ 3: হার্ডওয়্যার সংযুক্তি:
হার্ডওয়্যার হুকআপ বিভাগটি মূলত সেন্সর এবং কণার মধ্যে প্রয়োজনীয় তারের সংযোগ ব্যাখ্যা করে। কাঙ্ক্ষিত আউটপুটের জন্য যে কোনো সিস্টেমে কাজ করার সময় সঠিক সংযোগ নিশ্চিত করা মৌলিক প্রয়োজনীয়তা। সুতরাং, প্রয়োজনীয় সংযোগগুলি নিম্নরূপ:
BMG160 I2C এর উপর কাজ করবে। সেন্সরের প্রতিটি ইন্টারফেসকে কিভাবে ওয়্যার আপ করতে হয় তা দেখানো হচ্ছে ওয়্যারিং ডায়াগ্রামের উদাহরণ।
বাক্সের বাইরে, বোর্ডটি একটি I2C ইন্টারফেসের জন্য কনফিগার করা হয়েছে, যেমন আপনি অন্যথায় অজ্ঞেয়বাদী হলে আমরা এই হুকআপটি ব্যবহার করার পরামর্শ দিই।
আপনার প্রয়োজন শুধু চারটি তারের! VCC, Gnd, SCL এবং SDA পিনের জন্য মাত্র চারটি সংযোগ প্রয়োজন এবং এগুলি I2C তারের সাহায্যে সংযুক্ত।
এই সংযোগগুলি উপরের ছবিতে প্রদর্শিত হয়েছে।
ধাপ 4: 3-অক্ষ জাইরোস্কোপ পরিমাপ কণা কোড:
এখন কণা কোড দিয়ে শুরু করা যাক।
Arduino এর সাথে সেন্সর মডিউল ব্যবহার করার সময়, আমরা application.h এবং spark_wiring_i2c.h লাইব্রেরি অন্তর্ভুক্ত করি। "application.h" এবং spark_wiring_i2c.h লাইব্রেরিতে ফাংশন রয়েছে যা সেন্সর এবং কণার মধ্যে i2c যোগাযোগ সহজ করে।
ব্যবহারকারীর সুবিধার জন্য সম্পূর্ণ কণা কোড নিচে দেওয়া হল:
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
// BMG160 I2C ঠিকানা হল 0x68 (104)
#সংযোজনকারী 0x68
int xGyro = 0, yGyro = 0, zGyro = 0;
অকার্যকর সেটআপ()
{
// পরিবর্তনশীল সেট করুন
Particle.variable ("i2cdevice", "BMG160");
Particle.variable ("xGyro", xGyro);
Particle.variable ("yGyro", yGyro);
Particle.variable ("zGyro", zGyro);
// মাস্টার হিসাবে I2C যোগাযোগ শুরু করুন
Wire.begin ();
// সিরিয়াল যোগাযোগ শুরু করুন
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);
// ডাটা রেজিস্টার নির্বাচন করুন
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);
// তথ্য রূপান্তর
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 ("ঘূর্ণনের X- অক্ষ:", স্ট্রিং (xGyro));
Particle.publish ("ঘূর্ণনের Y- অক্ষ:", স্ট্রিং (yGyro));
Particle.publish ("ঘূর্ণনের Z- অক্ষ:", স্ট্রিং (zGyro));
বিলম্ব (1000);
}
ধাপ 5: অ্যাপ্লিকেশন:
সেল ফোন, হিউম্যান মেশিন ইন্টারফেস ডিভাইসের মতো ডিভাইসে বিএমজি 160 এর বিভিন্ন ধরণের অ্যাপ্লিকেশন রয়েছে। এই সেন্সর মডিউলটি ইমেজ স্টেবিলাইজেশন (ডিএসসি এবং ক্যামেরা-ফোন), গেমিং এবং পয়েন্টিং ডিভাইসের মতো ভোক্তা অ্যাপ্লিকেশনগুলির প্রয়োজনীয়তা পূরণের জন্য ডিজাইন করা হয়েছে। এটি এমন সিস্টেমেও নিযুক্ত করা হয় যার জন্য অঙ্গভঙ্গি স্বীকৃতি এবং অভ্যন্তরীণ নেভিগেশনে ব্যবহৃত সিস্টেমগুলির প্রয়োজন হয়।
প্রস্তাবিত:
Arduino UNO- এর সাথে ক্যাপাসিটিভ ফিঙ্গারপ্রিন্ট সেন্সর ইন্টারফেসিং: 7 টি ধাপ
Arduino UNO- এর সাথে ক্যাপাসিটিভ ফিঙ্গারপ্রিন্ট সেন্সর ইন্টারফেসিং: আরে, কি হচ্ছে, বন্ধুরা! আজ এখানে CETech থেকে আজ আমরা আমাদের প্রকল্পগুলিতে একটি সুরক্ষামূলক স্তর যুক্ত করতে যাচ্ছি। চিন্তা করবেন না আমরা এর জন্য কোন দেহরক্ষী নিয়োগ করতে যাচ্ছি না। এটি DFRobot থেকে একটি সুন্দর সুন্দর আঙ্গুলের ছাপ সেন্সর হবে তাই
স্টোন এলসিডি + এক্সিলারেশন জাইরোস্কোপ সেন্সর: 5 টি ধাপ
স্টোন এলসিডি +অ্যাকসিলারেশন জাইরোস্কোপ সেন্সর: এই ডকুমেন্টটি আপনাকে শেখাবে কিভাবে এসটিএম 32 এমসিইউ +এমপিইউ 6050 অ্যাক্সিলারোমিটার জাইরোস্কোপ সেন্সর +স্টোন এসটিভিসি 070 ডব্লিউটি সিরিয়াল পোর্ট ডিসপ্লে একটি ডেমোর জন্য। , আপনি আমাদের কাছে যেতে পারেন
I2C মোড ব্যবহার করে Arduino Duemilanove এর সাথে ইন্টারফেসিং সেন্সিরিয়ন, SPS-30, পার্টিকুলেট ম্যাটার সেন্সর: 5 টি ধাপ
I2C মোড ব্যবহার করে Arduino Duemilanove এর সাথে ইন্টারফেসিং সেন্সিরিয়ন, SPS-30, পার্টিকুলেট ম্যাটার সেন্সর: যখন আমি SPS30 সেন্সর ইন্টারফেস করার দিকে তাকিয়ে ছিলাম, তখন আমি বুঝতে পারলাম যে বেশিরভাগ সোর্স রাস্পবেরি পাই এর জন্য ছিল কিন্তু Arduino এর জন্য এতটা নয়। আমি আরডুইনোর সাথে সেন্সর কাজ করার জন্য একটু সময় ব্যয় করি এবং আমি আমার অভিজ্ঞতা এখানে পোস্ট করার সিদ্ধান্ত নিয়েছি যাতে এটি করতে পারে
অতিস্বনক সেন্সর এবং যোগাযোগহীন তাপমাত্রা সেন্সরের সাথে Arduino ইন্টারফেসিং: 8 টি ধাপ
অতিস্বনক সেন্সর এবং যোগাযোগহীন তাপমাত্রা সেন্সরের সাথে Arduino ইন্টারফেসিং: আজকাল, নির্মাতারা, বিকাশকারীরা প্রকল্পগুলির প্রোটোটাইপিংয়ের দ্রুত বিকাশের জন্য Arduino কে পছন্দ করছেন। Arduino একটি ওপেন সোর্স ইলেকট্রনিক্স প্ল্যাটফর্ম যা সহজেই ব্যবহারযোগ্য হার্ডওয়্যার এবং সফটওয়্যারের উপর ভিত্তি করে। Arduino খুব ভাল ব্যবহারকারী সম্প্রদায় আছে এই প্রকল্পে
Arduino এর সাথে BMP180 (ব্যারোমেট্রিক প্রেসার সেন্সর) ইন্টারফেসিং: 9 টি ধাপ
Arduino এর সাথে BMP180 (ব্যারোমেট্রিক প্রেসার সেন্সর) ইন্টারফেসিং: BMP-180 হল i2c ইন্টারফেস সহ একটি ডিজিটাল ব্যারোমেট্রিক প্রেসার সেন্সর। Bosch এর এই ক্ষুদ্র সেন্সরটি ছোট আকার, কম বিদ্যুৎ খরচ এবং উচ্চ নির্ভুলতার জন্য বেশ সুবিধাজনক।