সুচিপত্র:

BMA250 এবং কণা ফোটন ব্যবহার করে ত্বরণ পরিমাপ: 4 টি ধাপ
BMA250 এবং কণা ফোটন ব্যবহার করে ত্বরণ পরিমাপ: 4 টি ধাপ

ভিডিও: BMA250 এবং কণা ফোটন ব্যবহার করে ত্বরণ পরিমাপ: 4 টি ধাপ

ভিডিও: BMA250 এবং কণা ফোটন ব্যবহার করে ত্বরণ পরিমাপ: 4 টি ধাপ
ভিডিও: মিলিমিটার, সেন্টিমিটার এবং মিটারের মধ্যে পার্থক্য || How to Read mm - cm - meter in Measurement Tape 2024, জুলাই
Anonim
Image
Image

BMA250 হল একটি ছোট, পাতলা, অতিবেগুনি শক্তি, 3-অক্ষের অ্যাকসিলরোমিটার যার উচ্চ রেজোলিউশন (13-বিট) পরিমাপ ± 16 গ্রাম পর্যন্ত। ডিজিটাল আউটপুট ডেটা 16-বিট দুইটি পরিপূরক হিসাবে ফরম্যাট করা হয় এবং I2C ডিজিটাল ইন্টারফেসের মাধ্যমে অ্যাক্সেসযোগ্য। এটি টিল্ট-সেন্সিং অ্যাপ্লিকেশনগুলিতে মাধ্যাকর্ষণের স্থির ত্বরণ পরিমাপ করে, পাশাপাশি গতি বা শক থেকে সৃষ্ট গতিশীল ত্বরণ। এর উচ্চ রেজোলিউশন (3.9 মিগ্রা/এলএসবি) 1.0 than এর কম প্রবণতা পরিবর্তনের পরিমাপ সক্ষম করে।

এই টিউটোরিয়ালে আমরা BMA250 এবং কণা ফোটন ব্যবহার করে তিনটি লম্ব অক্ষের ত্বরণ পরিমাপ করতে যাচ্ছি।

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

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

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

1. বিএমএ 250

2. কণা ফোটন

3. I2C কেবল

4. কণা ফোটনের জন্য I2C শিল্ড

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

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

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

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

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

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

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

ধাপ 3: ত্বরণ পরিমাপ করার কোড:

ত্বরণ পরিমাপ করার কোড
ত্বরণ পরিমাপ করার কোড

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

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

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

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

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

// BMA250 I2C ঠিকানা হল 0x18 (24)

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

int xAccl = 0, yAccl = 0, zAccl = 0;

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

{

// পরিবর্তনশীল সেট করুন

Particle.variable ("i2cdevice", "BMA250");

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

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

Wire.begin ();

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

Serial.begin (9600);

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

Wire.beginTransmission (Addr);

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

Wire.write (0x0F);

// সেট পরিসীমা +/- 2g

Wire.write (0x03);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

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

Wire.write (0x10);

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

Wire.write (0x08);

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

Wire.endTransmission ();

বিলম্ব (300);}

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

{

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

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

Wire.beginTransmission (Addr);

// ডাটা রেজিস্টার নির্বাচন করুন (0x02 - 0x07)

Wire.write (0x02);

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

Wire.endTransmission ();

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

Wire.requestFrom (Addr, 6);

// ছয় বাইট পড়ুন

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

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

{

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

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

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

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

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

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

}

বিলম্ব (300);

// ডেটাকে 10 বিটে রূপান্তর করুন

xAccl = ((data [1] * 256) + (data [0] & 0xC0)) / 64;

যদি (xAccl> 511)

{

xAccl -= 1024;

}

yAccl = ((data [3] * 256) + (data [2] & 0xC0)) / 64;

যদি (yAccl> 511)

{

yAccl -= 1024;

}

zAccl = ((data [5] * 256) + (data [4] & 0xC0)) / 64;

যদি (zAccl> 511)

{

zAccl -= 1024;

}

// ড্যাশবোর্ডে আউটপুট ডেটা

Particle.publish ("এক্স-এক্সিসে এক্সিলারেশন:", স্ট্রিং (xAccl));

বিলম্ব (1000);

Particle.publish ("Y-Axis- এ এক্সিলারেশন:", স্ট্রিং (yAccl));

বিলম্ব (1000);

Particle.publish ("Z-Axis- এ ত্বরণ:", স্ট্রিং (zAccl));

বিলম্ব (1000);

}

Particle.variable () ফাংশন সেন্সরের আউটপুট সংরক্ষণ করার জন্য ভেরিয়েবল তৈরি করে এবং Particle.publish () ফাংশন সাইটের ড্যাশবোর্ডে আউটপুট প্রদর্শন করে।

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

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

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

BMA250 এর মতো অ্যাকসিলরোমিটার বেশিরভাগ গেম এবং ডিসপ্লে প্রোফাইল স্যুইচিংয়ে এর প্রয়োগ খুঁজে পায়। এই সেন্সর মডিউলটি মোবাইল অ্যাপ্লিকেশনের জন্য উন্নত বিদ্যুৎ ব্যবস্থাপনা পদ্ধতিতেও নিযুক্ত করা হয়। BMA250 হল একটি ত্রিমাত্রিক ডিজিটাল ত্বরণ সেন্সর যা একটি বুদ্ধিমান অন-চিপ মোশন ট্রিগারড ইন্টারাপ্ট কন্ট্রোলারের সাথে যুক্ত।

প্রস্তাবিত: