সুচিপত্র:

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 শিল্ড

5. ইথারনেট কেবল

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

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

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

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

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

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

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

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

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

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

পাশাপাশি ব্যবহারকারীদের স্বাচ্ছন্দ্যের জন্য, আমরা এখানে কোডটি ব্যাখ্যা করছি:

কোডিং এর প্রথম ধাপ হিসাবে, আপনাকে জাভা ক্ষেত্রে pi4j লাইব্রেরি ডাউনলোড করতে হবে, কারণ এই লাইব্রেরি কোডে ব্যবহৃত ফাংশনগুলিকে সমর্থন করে। সুতরাং, লাইব্রেরি ডাউনলোড করতে আপনি নিম্নলিখিত লিঙ্কটি দেখতে পারেন:

pi4j.com/install.html

আপনি এই সেন্সরের জন্য এখানে কাজ করা জাভা কোডটি অনুলিপি করতে পারেন:

আমদানি com.pi4j.io.i2c. I2CBus;

com.pi4j.io.i2c. I2CDevice আমদানি করুন;

mport com.pi4j.io.i2c. I2CFactory;

আমদানি java.io. IOException; পাবলিক ক্লাস HMC5883

{

পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং আর্গস ) ব্যতিক্রম ছুঁড়ে দেয়

{

// I2C বাস তৈরি করুন

I2CBus বাস = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C ডিভাইস পান, HMC5883 I2C ঠিকানা হল 0x1E (30)

I2CDevice ডিভাইস = Bus.getDevice (0x1E);

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

// সাধারণ পরিমাপ কনফিগারেশন, ডেটা রেট o/p = 0.75 Hz

device.write (0x00, (বাইট) 0x60);

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

// ক্রমাগত পরিমাপ মোড

device.write (0x02, (বাইট) 0x00);

Thread.sleep (500);

// 0x03 (3) থেকে 6 বাইট ডেটা পড়ুন

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

বাইট ডেটা = নতুন বাইট [6];

device.read (0x03, data, 0, 6);

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

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

যদি (xMag> 32767)

{

xMag -= 65536;

}

int zMag = ((data [2] & 0xFF) * 256 + (data [3] & 0xFF));

যদি (zMag> 32767)

{

zMag -= 65536;

}

int yMag = ((data [4] & 0xFF) * 256 + (data [5] & 0xFF));

যদি (yMag> 32767)

{

yMag -= 65536;

}

// স্ক্রিনে আউটপুট ডেটা

System.out.printf ("X-Axis- এ ম্যাগনেটিক ফিল্ড: %d %n", xMag);

System.out.printf ("Y-Axis- এ ম্যাগনেটিক ফিল্ড: %d %n", yMag);

System.out.printf ("Z-Axis- এ ম্যাগনেটিক ফিল্ড: %d %n", zMag);

}

}

লিখুন () এবং পড়ুন () ফাংশন যথাক্রমে কমান্ড লিখতে এবং সেন্সর আউটপুট পড়ার জন্য ব্যবহৃত হয়। নিচের অংশটি চৌম্বক ক্ষেত্রের মান পড়ার চিত্র তুলে ধরে।

// 0x03 (3) থেকে 6 বাইট ডেটা পড়ুন

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

বাইট ডেটা = নতুন বাইট [6];

device.read (0x03, data, 0, 6);

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

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

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

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

প্রস্তাবিত: