আরডুইনো আইডিইতে প্রোগ্রাম লিখতে হলে আমরা বেশকিছু লাইব্রেরি ব্যবহার করি। কিছু লাইব্রেরি আরডুইনোতেই ইন-বিল্ট। যেমনঃ Liquidcrystal.h, SD.h, servo.h ইত্যাদি।
/wp:paragraph wp:paragraphকিছু কিছু লাইব্রেরি আবার ইন্টারনেট থেকে ডাউনলোড করে ইন্সটল করে নিতে হয়। যেমন, TFT.h, TinyGPS.h, ইত্যাদি আরও অনেক লাইব্রেরি। ইন্টারনেটে আরডুইনো লাইব্রেরির সহজলভ্যতা আরডুইনোর প্রজেক্টগুলোকে করেছে সংক্ষিপ্ত এবং সকলের জন্য সহজ। লাইব্রেরি ইন্সটল করে কয়েকলাইন কোড লিখলেই প্রজেক্ট শেষ। কিন্তু, যদি এমনকোনো ডিভাইস নিয়ে আমাদের কখনও কাজ করতে হয়, যার লাইব্রেরি রেডিমেড নেই? আমরা কি পারব ইন্টারনেটের উপর নির্ভর না করে নিজেদের লাইব্রেরি নিজেরাই লিখতে?
/wp:paragraph wp:paragraphএই টিউটোরিয়ালে আমরা শিখব লাইব্রেরি লেখা। উদাহরন হিসেবে বেছে নিলাম Gravity: Analog Turbidity Sensor For Arduino। এই সেন্সরটি পানির টারবিডিটি অর্থ্যাৎ, পানি কতটা ঘোলা তা নির্ণয় করে। Turbidity sensor এর আউটপুট পিন থেকে অ্যানালগ রিড করে প্রথমে ভোল্টেজে রুপান্তর করে নিতে হয়। অর্থ্যাৎ,
/wp:paragraph wp:codeVoltage=analogvalue*5.00/1024.00
/wp:code wp:paragraph
তারপর এই ভোল্টেজ থেকে একটি সূত্রের সাহায্যে টারবিডিটি নির্ণয় করা হয়। সূত্রটি হচ্ছে,
/wp:paragraph wp:code Turbidity=-1120*Voltage²+5720voltage-4352.9
/wp:code wp:paragraph {“align”:”left”}
এই Turbidity sensor এর জন্যই আমরা একটি আরডুইনো লাইব্রেরি তৈরী করব। আগেই বলে রাখি, টারবিডিটি সেন্সরটি ব্যবহার করা খুবই সহজ। কোনোরকম লাইব্রেরি ছাড়াই অল্প কয়েকলাইন কোড লিখেই ব্যবহার করা যায়। যেহেতু, লাইব্রেরি লেখা শিখতে একটি খুব সহজ কিন্তু কার্যকর একটি উদাহরন দরকার, তাই এই সেন্সরের জন্যই লাইব্রেরি লেখা হল।
/wp:paragraph wp:tableপ্রয়োজনীয় যন্ত্রপাতি | পরিমাণ | প্রোডাক্ট লিংক |
Arduino UNO-R3 | 1 | এখানে ক্লিক করুন |
Gravity: Analog Turbidity Sensor For Arduino | 1 | এখানে ক্লিক করুন |
Male to male jumpers | 3 | এখানে ক্লিক করুন |
সার্কিট কানেকশনঃ
/wp:paragraph wp:paragraphআরডুইনো এবং টারবিডিটি সেন্সরের মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।
/wp:paragraph wp:gallery {“ids”:[56195],”className”:”alignwide”} /wp:gallery wp:tableArduino UNO-R3 | Turbidity sensor |
5V | VCC |
GND | GND |
A0 | Output |
লাইব্রেরি ও মূল প্রোগ্রামঃ
/wp:paragraph wp:paragraphযেকোনো আরডুইনো লাইব্রেরিতে দুটি ফাইল থাকবেই। একটি হল, .cpp আরেকটি .h। সুতরাং আজকে উদাহরনস্বরুপ যে প্রোগ্রামটি লিখব তাতে তিনটি ফাইল থাকবে। যার মধ্যে দুটি হল লাইব্রেরি ফাইল, আরেকটি মূল প্রোগ্রাম।
/wp:paragraph wp:paragraphপ্রথমে আমরা আরডুইনো আইডিইতে একটি নতুন ফাইল ওপেন করবো। যার নাম হবে-turbidity.ino। এরপর add new tab এ ক্লিক করে দুটি নতুন ট্যাব যোগ করব।
/wp:paragraph wp:image {“id”:56206}একটির নাম দেব turbidity.h। আরেকটির নাম দেব turbidity.cpp।
/wp:paragraph wp:paragraphturbidity.h– এটি হচ্ছে হেডার ফাইল। এই ফাইলে সকল ক্লাস এবং ক্লাসের অন্তর্ভুক্ত অবজেক্ট এবং ফাংশনগুলোকে ডিভাইন করা হবে।
/wp:paragraph wp:image {“id”:56205}উপরের ছবিটি হচ্ছে turbitity.h অংশের কোড। এখানে Turbidity নামে একটি ক্লাস ডিফাইন করা হয়েছে। ক্লাসটিতে রয়েছে একই নামের একটি কন্সট্রাকটর। আরও আছে দুটি ফাংশন ফাংশন দুটির নাম হচ্ছে voltagecalc() এবং turbiditycalc(). এই ফাংশনদুটি যথাক্রমে টারবিডিটি সেন্সরের অ্যানালগ আউটপুট ভোল্টেজ এবং টারবিডিটি হিসাব করবে। turbidity.ino ফাইলটির শুরুতেই turbidity.h ফাইলটি ইনক্লুড করতে হবে।
/wp:paragraph wp:paragraphturbidity.cpp-এই ফাইলের শুরুতেও turbidity.h কে ইনক্লুড করে নিতে হবে। turbidity.h এ যেসকল কন্সট্রাকটর এবং ফাংশন ডিফাইন করা হয়েছে, সেই ফাংশনগুলো লেখা হবে।
/wp:paragraph wp:gallery {“ids”:[57016]}এখানে, শুরুতেই sensorvalue নামক একটি ইন্টিজার টাইপ গ্লোবাল ভ্যারিয়েবল ডিক্লেয়ার করা হয়েছে।আমাদের এক্সপেরিমেন্টে টারবিডিটি সেন্সরের আউটপুট আরডুইনোর A0 পিনের সাথে কানেক্ট করা ছিল। তাই, এখানে আমরা লিখেছি-
/wp:paragraph wp:code int sensorvalue=A0;
/wp:code wp:paragraph {“align”:”center”}
এরপরেই আরেকটি voltage নামক একটি ফ্লোট টাইপ গ্লোবাল ভ্যরিয়েবল ডিক্লেয়ার করা হয়েছে।
/wp:paragraph wp:codefloat voltage;
/wp:code wp:paragraph {“align”:”left”}
voltagecalc() নামক ফাংশনটি যেহেতু Turbidity Class এর সদস্য, তাই ফাংশনের নামের শুরুতে Turbidity:: লেখা হয়েছে।
/wp:paragraph wp:codefloat Turbidity::voltagecalc()
{
int sensorvalue=analogRead(sensorpin);
float voltage=sensorvalue*5.00/1024.00;
return(voltage);
}
/wp:code wp:paragraph
এই ফাংশনটি A0 পিনের অ্যানালগ ভ্যালু রিড করে sensorvalue নামক ভ্যারিয়েবলে সেইভ করে। তারপর সেন্সরভ্যালুকে ভোল্টেজে রুপান্তর করে voltage নামক ভ্যারিয়েবলে জমা রাখে।
এই ফাংশনটিকে কল করলে ভাংশনটি ভোল্টেজ রিটার্ন করবে।
একইভাবে turbiditycalc() নামক ফাংশনটি ভোল্টেজ থেকে টারবিডিটি হিসাব করে টারবিডিটি রিটার্ন করবে।
/wp:paragraph wp:codefloat Turbidity::turbiditycalc()
{
float ax2=-1120.40*voltage;
ax2=ax2*voltage;
float bx=5742.30*voltage;
float c=-4352.90;
float turbidity=ax2+bx+c;
return(turbidity);
}
/wp:code wp:paragraph
এবার মূল প্রোগ্রামে যাওয়া যাক।
/wp:paragraph wp:paragraphturbidity.ino– এটি হচ্ছে মূল প্রোগ্রাম।
/wp:paragraph wp:image {“id”:56204}turbidy.cpp ফাইলে যে ফাংশনগুলো লেখা হয়েছে সেগুলোকেই মূল প্রোগ্রামে কল করা হবে। আগেই বলা হয়েছে প্রোগ্রামের শুরুতে অবশ্যই turbidity.h হেডার ফাইলকে ইনক্লুড করে নিতে হবে।
/wp:paragraph wp:paragraphএখানে, Turbidity ক্লাসটির একটি অবজেক্ট ডিক্লেয়ার করা হয়েছে।
/wp:paragraph wp:codeTurbidity turbidity;
/wp:code wp:paragraph
সেটআপ ফাংশনে ৯৬০০ বড রেটে সিরিয়াল কমিউনিকেশন শুরু করা হয়েছে।
/wp:paragraph wp:codevoid setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
/wp:code wp:paragraph
লুপ ফাংশনে Turbidity ক্লাসের voltagecalc() এবং turbiditycalc() ফাংশনকে কল করা হয়েছে।
/wp:paragraph wp:codevoid loop() {
// put your main code here, to run repeatedly:
Serial.print("Voltage:");
Serial.print(turbidity.voltagecalc());
Serial.print(", ");
Serial.print("Turbidity:");
Serial.println(turbidity.turbiditycalc());
delay(2000);
}
/wp:code wp:paragraph
এবং এই .ino ফাইলটি আরডুইনোতে আপলোড করার পর আমরা সিরিয়াল মনিটরে টারবিডিটি সেন্সরের আউটপুট দেখতে পাব।
/wp:paragraph wp:image {“id”:56193}লাইব্রেরি ইন্সটল করাঃ কোডটি যেখানে সেইভ হয়েছে সেই ফোল্ডারে যান। তারপর .cpp ও .h ফাইলদুটো কপি করুন।
/wp:paragraph wp:gallery {“ids”:[56187]}তারপর, আপনার কম্পিউটারে আরডুইনো যে ড্রাইভে ইন্সটল করা সেই ড্রাইভে Arduino ফোল্ডারে ক্লিক করুন। তারপর libraries ফোল্ডারের ভেতরে turbidity নামক একটি নতুন ফোল্ডার খুলুন। তারপর কপি করা ফাইলদুটো ওখানে পেস্ট করে দিন। লাইব্রেরিটি ইন্সটল হয়ে গেছে। ভবিষ্যতে অন্য যেকোনো প্রোগ্রামে এই লাইব্রেরিকে ইনক্লুড এবং ব্যবহার করা যাবে।
/wp:paragraph wp:gallery {“ids”:[56188]}এবার ছোট্ট আরও একটা কাজ বাকি। এটা না করলেও এই লাইব্রেরি ভালোভাবেই কাজ করবে। তবে ফার্নিশড লুকের জন্য এটি প্রয়োজন। প্রোগ্রামের ছবিগুলোতে লক্ষ্য করুন, ক্লাস এবং ফাংশনগুলোর নাম কমলা রঙয়ে লেখা। এটা কিন্তু শুরু থেকেই এমন ছিল না। কি-ওয়ার্ড হাইলাইটিং এর জন্য, লাইব্রেরিটি যে ফোল্ডারে একটু আগেই সেইভ করা হল, সেই ফোল্ডারে keywords.txt(সব ছোট হাতের হতে হবে) নামক একটি টেক্সট ফাইল ক্রিয়েট করুন।
/wp:paragraph wp:image {“id”:56190}এবার টেক্সট ফাইলটিতে আমাদের তৈরী করা লাইব্রেরির ক্লাস এবং ফাংশনগুলোর নাম লিখুন। ক্লাসগুলোকে KEYWORD1 এবং ফাংশনগুলোকে KEYWORD2 হিসেবে ডিফাইন করতে হবে। ক্লাস/ফাংশনের নাম এবং KEYWORD1/2 এর মাঝখানে একটি ট্যাব দেওয়া প্রয়োজন।
/wp:paragraph wp:gallery {“ids”:[56189]}আমাদের লাইব্রেরি বানানো শেষ।
/wp:paragraph wp:paragraph {“textColor”:”vivid-green-cyan”}পরবর্তী টিউটোরিয়ালে আমরা এই লাইব্রেরি ব্যবহার করেই একটি টারবিডিটি মিটার তৈরী করব।
/wp:paragraph ]]>