সুচিপত্র:

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

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

ভিডিও: HMC5883 এবং কণা ফোটন ব্যবহার করে চৌম্বক ক্ষেত্র পরিমাপ: 4 টি ধাপ
ভিডিও: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, নভেম্বর
Anonim
Image
Image

HMC5883 হল একটি ডিজিটাল কম্পাস যা নিম্ন-ক্ষেত্রের চৌম্বকীয় সেন্সিংয়ের জন্য ডিজাইন করা হয়েছে। এই ডিভাইসের বিস্তৃত চৌম্বক ক্ষেত্র পরিসীমা +/- 8 Oe এবং 160 Hz এর আউটপুট হার। HMC5883 সেন্সরে স্বয়ংক্রিয় ডিগাউসিং স্ট্র্যাপ ড্রাইভার, অফসেট বাতিলকরণ এবং 12-বিট এডিসি রয়েছে যা 1 ° থেকে 2 ° কম্পাস শিরোনামের নির্ভুলতা সক্ষম করে। সমস্ত I²C মিনি মডিউল 5VDC এ কাজ করার জন্য ডিজাইন করা হয়েছে।

এই টিউটোরিয়ালে, আমরা কণা ফোটন দিয়ে HMC5883 এর বিস্তারিত কাজ ব্যাখ্যা করতে যাচ্ছি। পার্টিকেল ফোটন হল একটি বোর্ড যা ওয়েবসাইট থেকে তথ্য প্রেরণ এবং গ্রহণের সুবিধা প্রদান করে, যা ইন্টারনেট অফ থিংস (আইওটি) এর সবচেয়ে মৌলিক বৈশিষ্ট্যকে সমর্থন করে।

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

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

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

1. HMC5883

2. কণা ফোটন

3. I2C কেবল

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

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

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

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

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

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

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

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

ধাপ 3: চৌম্বক ক্ষেত্রের তীব্রতা পরিমাপ করার কোড:

চৌম্বক ক্ষেত্রের তীব্রতা পরিমাপ করার কোড
চৌম্বক ক্ষেত্রের তীব্রতা পরিমাপ করার কোড

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

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

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

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

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

// HMC5883 I2C ঠিকানা হল 0x1E (30)

#সংজ্ঞায়িত Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

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

{

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

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

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

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

Wire.begin ();

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

Serial.begin (9600);

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

Wire.beginTransmission (Addr);

// কনফিগার রেজিস্টার A নির্বাচন করুন

Wire.write (0x00);

// স্বাভাবিক পরিমাপ কনফিগারেশন সেট করুন, ডেটা আউটপুট হার = 0.75Hz

Wire.write (0x60);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

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

Wire.write (0x02);

// ধারাবাহিক পরিমাপ সেট করুন

Wire.write (0x00);

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

Wire.endTransmission ();

বিলম্ব (300);

}

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

{

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

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

Wire.beginTransmission (Addr);

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

Wire.write (0x03);

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

Wire.endTransmission ();

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

Wire.requestFrom (Addr, 6);

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

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

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

{

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

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

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

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

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

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

}

বিলম্ব (300);

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

xMag = ((data [0] * 256) + data [1]);

যদি (xMag> 32767)

{

xMag -= 65536;

}

zMag = ((data [2] * 256) + data [3]);

যদি (zMag> 32767)

{

zMag -= 65536;

}

yMag = ((data [4] * 256) + data [5]);

যদি (yMag> 32767)

{

yMag -= 65536;

}

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

Particle.publish ("X-Axis- এ ম্যাগনেটিক ফিল্ড:", স্ট্রিং (xMag));

বিলম্ব (1000);

Particle.publish ("Y-Axis- এ ম্যাগনেটিক ফিল্ড:", স্ট্রিং (yMag));

বিলম্ব (1000);

Particle.publish ("Z-Axis- এ ম্যাগনেটিক ফিল্ড:", স্ট্রিং (zMag));

বিলম্ব (1000);

}

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

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

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

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

HMC5883 হল একটি সারফেস-মাউন্ট, মাল্টি-চিপ মডিউল যা কম খরচে কম্পাসিং এবং ম্যাগনেটোমেট্রির মতো অ্যাপ্লিকেশনগুলির জন্য ডিজিটাল ইন্টারফেস সহ লো-ফিল্ড ম্যাগনেটিক সেন্সিংয়ের জন্য ডিজাইন করা হয়েছে। এর এক থেকে দুই ডিগ্রি উচ্চ স্তরের নির্ভুলতা এবং নির্ভুলতা পথচারীদের নেভিগেশন এবং এলবিএস অ্যাপ্লিকেশনগুলিকে সক্ষম করে।

প্রস্তাবিত: