HMC5883L ম্যাগনেটোমিটার হল একটি সেন্সর যা Arduino প্রকল্পে তিনটি অক্ষে চৌম্বক ক্ষেত্র পরিমাপ করার ক্ষমতার জন্য ব্যাপকভাবে ব্যবহৃত হয়। এটি ডিজিটাল কম্পাস, ড্রোনগুলির জন্য নেভিগেশন সিস্টেম এবং অন্যান্য স্বায়ত্তশাসিত যানবাহন তৈরির জন্য এটিকে একটি দুর্দান্ত পছন্দ করে তোলে। সাশ্রয়ী মূল্যের ছাড়াও, এর ইন্টিগ্রেশন সহজ ধন্যবাদ এর I2C ইন্টারফেসের জন্য, এটি নতুনদের জন্য আদর্শ করে তোলে।
এই নিবন্ধে আমরা HMC5883L এর প্রধান বৈশিষ্ট্যগুলি, বিভিন্ন Arduino বোর্ডের সাথে এর সংযোগ এবং এর ব্যবহারের জন্য ব্যবহারিক উদাহরণগুলি নিয়ে আলোচনা করতে যাচ্ছি। শেষ পর্যন্ত, আপনি এই শক্তিশালী সেন্সরের পূর্ণ সম্ভাবনার সদ্ব্যবহার করে, Arduino-এর সাথে আপনার নিজস্ব ডিজিটাল কম্পাস প্রকল্প বাস্তবায়ন করতে সক্ষম হবেন।
HMC5883L কি এবং এটি কিভাবে কাজ করে?
HMC5883L হল a তিনটি অক্ষ ম্যাগনেটোমিটার যা X, Y এবং Z অক্ষে পৃথিবীর চৌম্বক ক্ষেত্রের উপাদানগুলিকে পরিমাপ করে এটি শুধুমাত্র চৌম্বক ক্ষেত্রের উপস্থিতি সনাক্ত করতে দেয় না, তবে প্রাপ্ত পরিমাপের ভিত্তিতে গণনার মাধ্যমে অভিযোজন নির্ধারণ করতে দেয়৷ এই বৈশিষ্ট্যগুলি এটিকে ডিজিটাল কম্পাসের মতো ওরিয়েন্টেশন সিস্টেম তৈরির জন্য আদর্শ সেন্সর করে তোলে।
সেন্সরটি সাধারণত GY-273 মডেলের মতো মডিউলগুলিতে পাওয়া যায়, এতে Arduino বোর্ড বা অন্যান্য মাইক্রোকন্ট্রোলারের সাথে সরাসরি সংযোগের সুবিধার্থে প্রয়োজনীয় ইলেকট্রনিক্সও রয়েছে। এর পাওয়ার সাপ্লাই নমনীয়, এবং এটি 3.3V এবং 5V উভয়ের সাথে চালিত হতে পারে, যা বিভিন্ন সিস্টেমের সাথে সামঞ্জস্যের ক্ষেত্রে এটিকে বহুমুখী করে তোলে।
আরডুইনো সংযোগ
আরডুইনোর সাথে HMC5883L সংযোগ করা সত্যিই সহজ I2C ইন্টারফেসের জন্য ধন্যবাদ এটি ব্যবহার করে। এই যোগাযোগের জন্য শুধুমাত্র দুটি পিন প্রয়োজন: SDA এবং SCL, যা অবশ্যই Arduino বোর্ডের সংশ্লিষ্ট পিনের সাথে সংযুক্ত থাকতে হবে।
- পাড়া Arduino Uno, ন্যানো এবং মিনি: SDA পিন A4 এবং SCL কে A5 এর সাথে সংযুক্ত করে।
- আপনি যদি আরডুইনো মেগা বা ডিউ ব্যবহার করেন: SDA পিন 20 এর সাথে এবং 21 পিন করার জন্য SCL এর সাথে সংযুক্ত থাকতে হবে।
- আরডুইনো লিওনার্দোর ক্ষেত্রে: SDA পিন 2 এ যায় এবং SCL 3 পিন করে।
আসুন ভুলে গেলে চলবে না যে ম্যাগনেটোমিটার 2x0E এর একটি নির্দিষ্ট I1C ঠিকানার সাথে কাজ করে, তাই এটি পরিবর্তন করা সম্ভব নয়। এই ঠিকানাটি এই ধরনের সেন্সরের জন্য অনন্য, যার মানে হল যে আমরা একই I5883C বাসে একাধিক HMC2L ডিভাইস সংযুক্ত করতে পারি না।
ম্যাগনেটিক ফিল্ড রিডিং
HMC5883L অপারেশনের প্রধান পদ্ধতি হল তিনটি অক্ষে চৌম্বক ক্ষেত্রের মান পড়া। আরডুইনোতে এই মানগুলি পেতে, আমরা জেফ রোবার্গ দ্বারা তৈরি একটি লাইব্রেরি ব্যবহার করি। আপনি এই বইয়ের দোকান খুঁজে পেতে পারেন আপনার গিটহাবের সংগ্রহশালা এবং Arduino IDE-তে ব্যবহারের জন্য এটি ডাউনলোড করুন।
একবার লাইব্রেরি ইনস্টল হয়ে গেলে, সেন্সরটি শুরু করা যেতে পারে এবং চৌম্বক ক্ষেত্রের মানগুলি পড়তে শুরু করতে পারে। এখানে একটি সহজ উদাহরণ শুধু এটি করা:
#include "Wire.h"
#include "I2Cdev.h"
#include "HMC5883L.h"
HMC5883L magnetometro;
int16_t mx, my, mz;
void setup() {
Serial.begin(9600);
Wire.begin();
magnetometro.initialize();
}
void loop(){
magnetometro.getHeading(&mx, &my, &mz);
Serial.print("mx: "); Serial.print(mx);
Serial.print(" my: "); Serial.print(my);
Serial.print(" mz: "); Serial.println(mz);
delay(100);
}
এই কোডে, ম্যাগনেটোমিটার শুরু করা হয় এবং তিনটি অক্ষের মানগুলি একটি লুপে পড়া হয়। প্রতিবার আমরা `লুপ()` চালাই, X, Y এবং Z-এ চৌম্বক ক্ষেত্রের মান সিরিয়াল মনিটরে প্রদর্শিত হবে।
পরিসীমা এবং লাভ সেটিংস
HMC5883L আপনাকে সামঞ্জস্য করতে দেয় চৌম্বক ক্ষেত্র পরিমাপ পরিসীমা বিভিন্ন লাভের মাত্রা সহ ±0.88 গাউস এবং ±8.1 গাউসের মধ্যে। ডিফল্ট পরিসীমা হল ±1.3 গাউস, এবং আপনি আপনার প্রকল্পের প্রয়োজন অনুসারে এটি পরিবর্তন করতে পারেন। কোডের মধ্যে নিম্নলিখিত লাইন ব্যবহার করে এটি করা যেতে পারে:
magnetometro.setGain(value);
যেখানে মূল্য 0 এবং 7 এর মধ্যে একটি পূর্ণসংখ্যা, যা লাভের স্তর নির্বাচন করবে। নীচে আমরা আপনাকে সংশ্লিষ্ট মানগুলির সাথে একটি টেবিল দেখাই:
বীরত্ব | Rango | লাভ (এলএসবি/গাউস) |
---|---|---|
0 | ±0.88Ga | 1370 |
1 | ±1.3Ga | 1090 |
2 | ±1.9Ga | 820 |
3 | ±2.5Ga | 660 |
4 | ±4.0Ga | 440 |
5 | ±4.7Ga | 390 |
6 | ±5.6Ga | 330 |
7 | ±8.1Ga | 230 |
একটি ডিজিটাল কম্পাস নির্মাণ
HMC5883L এর সবচেয়ে সাধারণ ব্যবহার হল একটি বিল্ডিং ডিজিটাল কম্পাস. এটি করার জন্য, আমাদের X এবং Y অক্ষের রিডিং ব্যবহার করে সেন্সর এবং চৌম্বকীয় উত্তরের মধ্যে কোণ গণনা করতে হবে: এটি সূত্র ব্যবহার করে অর্জন করা হয়েছে:
float angulo = atan2(my, mx) * 180 / M_PI;
এই মানটি আপনাকে চৌম্বকীয় উত্তরের সাথে অভিযোজন কোণ দেবে। এই কোণ সামঞ্জস্য করতে ভৌগলিক উত্তর, আপনাকে অবশ্যই আপনার অবস্থানের চৌম্বকীয় পতনের বিষয়টি বিবেচনা করতে হবে, যা আপনি www.ign.es বা www.ngdc.noaa.gov এর মতো বিভিন্ন ওয়েবসাইটে পরামর্শ করতে পারেন৷
সঠিক চৌম্বকীয় পতন
একবার আপনার অবস্থানের চৌম্বকীয় পতন হয়ে গেলে, আপনাকে প্রাপ্ত কোণ থেকে এটি বিয়োগ করতে হবে। যেমন:
angulo -= declinacion;
যখন কোণ ঋণাত্মক হয়, আপনি সর্বদা 360 এবং 0 ডিগ্রির মধ্যে সামঞ্জস্যপূর্ণ একটি ইতিবাচক মান পেতে 360 ডিগ্রি যোগ করতে পারেন:
if (angulo < 0) angulo += 360;
এই সেটিং আপনাকে একটি কম্পাস দেবে যা সর্বদা ভৌগলিক উত্তরে সঠিকভাবে নির্দেশ করবে।
অনুশীলনে, এই সেন্সর এবং কিছু লাইব্রেরির সাহায্যে আপনি কয়েক মিনিটের মধ্যে একটি কম্পাস পেতে পারেন। যাইহোক, দয়া করে মনে রাখবেন যে HMC5883L একটি সেন্সর যা বাহ্যিক হস্তক্ষেপের জন্য সংবেদনশীল, যেমন কাছাকাছি ধাতু বা উচ্চ স্রোত দ্বারা উত্পন্ন ক্ষেত্র, যা রিডিং পরিবর্তন করতে পারে।