সুচিপত্র:

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

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

ভিডিও: ADXL345 এবং কণা ফোটন ব্যবহার করে ত্বরণের পরিমাপ: 4 টি ধাপ
ভিডিও: Lecture 38:Accelerometer 2024, নভেম্বর
Anonim
Image
Image

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

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

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

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

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

1. ADXL345

2. কণা ফোটন

3. I2C কেবল

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

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

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

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

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

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

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

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

ধাপ 3: ত্বরণ পরিমাপের জন্য কোড:

ত্বরণ পরিমাপের জন্য কোড
ত্বরণ পরিমাপের জন্য কোড

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

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

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

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

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

// ADXL345 I2C ঠিকানা হল 0x53 (83)

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

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

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

{

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

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

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 (0x2C);

// আউটপুট ডেটা রেট = 100 Hz নির্বাচন করুন

Wire.write (0x0A);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

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

Wire.write (0x2D);

// স্বয়ংক্রিয় ঘুম নিষ্ক্রিয় নির্বাচন করুন

Wire.write (0x08);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

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

Wire.write (0x31);

// সম্পূর্ণ রেজোলিউশন নির্বাচন করুন, +/- 2g

Wire.write (0x08);

// I2C ট্রান্সমিশন শেষ

Wire.endTransmission ();

বিলম্ব (300);

}

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

{

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

জন্য (int i = 0; i <6; i ++)

{

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

Wire.beginTransmission (Addr);

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

Wire.write ((50+i));

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

Wire.endTransmission ();

// ডিভাইস থেকে 1 বাইট ডেটা অনুরোধ করুন

Wire.requestFrom (Addr, 1);

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

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

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

{

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

}

বিলম্ব (300);

}

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

int xAccl = (((data [1] & 0x03) * 256) + data [0]);

যদি (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = (((data [3] & 0x03) * 256) + data [2]);

যদি (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = (((data [5] & 0x03) * 256) + data [4]);

যদি (zAccl> 511)

{

zAccl -= 1024;

}

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

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

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

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

}

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

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

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

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

ADXL345 হল একটি ছোট, পাতলা, অতিবেগুনী শক্তি, 3-অক্ষের অ্যাক্সিলারোমিটার যা হ্যান্ডসেট, মেডিকেল যন্ত্রপাতি ইত্যাদি কাজে লাগানো যেতে পারে।

প্রস্তাবিত: