পাঠ ৩০/৩১: সানফাউন্ডার আরডুইনো কিট থেকে স্মার্ট কার দ্বারা কার-৮ লাইন ট্র্যাকিং | রোবোজ্যাক্স
এই গাইডটি আপনাকে SunFounder 3-ইন-1 Arduino কিট ব্যবহার করে একটি লাইন-অনুসরণকারী স্মার্ট কার তৈরির প্রক্রিয়ার মাধ্যমে পরিচালিত করে।
ভিডিওতে প্রদর্শিত প্রকল্পটি একটি ইনফ্রারেড লাইন ট্র্যাকিং মডিউল ব্যবহার করে সাদা পৃষ্ঠের উপর কালো রেখা সনাক্ত করে এবং গাড়িটিকে ট্র্যাকে রাখতে দুটি মোটর নিয়ন্ত্রণ করে। এটি একটি মৌলিক রোবোটিক্স প্রকল্প যা আপনাকে সেন্সর রিডিং, শর্তসাপেক্ষ যুক্তি এবং মোটর নিয়ন্ত্রণ সম্পর্কে শেখায়। বাস্তব-বিশ্বের মূল্য অপরিসীম—এটি গুদামগুলিতে স্বয়ংক্রিয় নির্দেশিত যানবাহন (AGV), রোবোটিক ভ্যাকুয়াম ক্লিনার যা ঘরের প্রান্ত অনুসরণ করে এবং স্বায়ত্তশাসিত নেভিগেশন শেখার জন্য শিক্ষামূলক প্ল্যাটফর্মগুলির ভিত্তি। মৌলিক নির্মাণের বাইরে, আপনি এই ধারণাটি ব্যবহার করতে পারেন:

- একটি সহজ রোবট তৈরি করা যা একটি গোলকধাঁধা বা ট্র্যাকে পূর্বনির্ধারিত পথে চলাচল করতে পারে।
- একটি ছোট অফিস বা ল্যাবের জন্য একটি স্বয়ংক্রিয় ডেলিভারি কার্ট তৈরি করা।
- স্কুলের বিজ্ঞান প্রকল্প বা প্রতিযোগিতার জন্য একটি লাইন-অনুসরণকারী রোবট তৈরি করা।
- একটি শিল্প কনভেয়র বেল্টের জন্য একটি সিস্টেমের প্রোটোটাইপ তৈরি করা যা অবস্থানের ভিত্তিতে আইটেম বাছাই করে।
হার্ডওয়্যার এবং উপাদানসমূহ
এই প্রকল্পের মূল হল লাইন ট্র্যাকিং মডিউল, যা একটি ইনফ্রারেড (IR) ট্রান্সমিটার এবং রিসিভার জোড়া ব্যবহার করে। মূল উপাদানগুলির একটি বিবরণ এখানে দেওয়া হল:
- লাইন ট্র্যাকিং মডিউল (TCRT5000): এই সেন্সরটি ইনফ্রারেড আলো নির্গত করে এবং প্রতিফলিত তীব্রতা পরিমাপ করে। মডিউলটিতে একটি LM393 কম্প্যারেটর রয়েছে যা অ্যানালগ সংকেতকে ডিজিটাল HIGH বা LOW আউটপুটে রূপান্তর করে।
- মোটর সহ স্মার্ট কার চ্যাসিস: SunFounder কিটে দুটি গিয়ারযুক্ত মোটর সহ একটি গাড়ির ফ্রেম অন্তর্ভুক্ত রয়েছে, যা গাড়িটিকে চালনা করার জন্য Arduino দ্বারা নিয়ন্ত্রিত হয়।
- Arduino বোর্ড: অপারেশনের "মস্তিষ্ক", যা সেন্সর পড়ে এবং মোটরগুলিতে কমান্ড পাঠায়।
- মোটর ড্রাইভার (গাড়ির শিল্ডে): এই সার্কিটটি Arduino-এর কম-পাওয়ার পিনগুলিকে উচ্চ-কারেন্ট মোটর নিয়ন্ত্রণ করতে দেয়।
ওয়্যারিং গাইড
লাইন ট্র্যাকিং মডিউলের ওয়্যারিং সহজবোধ্য। ভিডিওটি নিম্নরূপ সংযোগগুলি প্রদর্শন করে (ভিডিওতে 04:04 সময়ে):
- লাইন ট্র্যাকার VCC (মাঝের পিন): Arduino-এর 5V পিনের সাথে সংযোগ করুন।
- লাইন ট্র্যাকার GND (বাম পিন): Arduino-এর GND পিনের সাথে সংযোগ করুন।
- লাইন ট্র্যাকার OUT (ডান পিন): Arduino-এর ডিজিটাল পিন 2-এর সাথে সংযোগ করুন।
মোটরগুলি গাড়ির শিল্ডের মোটর ড্রাইভারের সাথে সংযুক্ত। কোডে, ডান মোটরটি পিন 5 এবং 6 দ্বারা নিয়ন্ত্রিত হয়, এবং বাম মোটরটি পিন 9 এবং 10 দ্বারা, যেমনটি ভিডিও প্রদর্শনে দেখানো হয়েছে (ভিডিওতে 12:28 সময়ে)।
কোড ব্যাখ্যা
কোডটি লাইন ট্র্যাকার থেকে ডিজিটাল সংকেত পড়তে এবং সেই অনুযায়ী মোটর নিয়ন্ত্রণ করতে ডিজাইন করা হয়েছে। এখানে মূল ব্যবহারকারী-কনফিগারযোগ্য অংশগুলি রয়েছে:
const int in1 = 5; // in1,2 ডান মোটরের জন্য
const int in2 = 6;
const int in3 = 9; // in3,4 বাম মোটরের জন্য
const int in4 = 10;
const int lineTrack = 2;
- মোটর পিন (in1, in2, in3, in4): এই ধ্রুবকগুলি নির্ধারণ করে কোন Arduino পিনগুলি মোটর ড্রাইভারের সাথে সংযুক্ত। যদি আপনার ওয়্যারিং ভিন্ন হয়, তবে আপনাকে আপনার সেটআপের সাথে মিলিয়ে এই মানগুলি পরিবর্তন করতে হবে।
- লাইন ট্র্যাকার পিন (lineTrack): এটি সেন্সরের সংকেত আউটপুটের সাথে সংযুক্ত ডিজিটাল পিন নির্ধারণ করে। কোডটি এই পিনটি পড়ে নির্ধারণ করে যে সেন্সরটি কালো বা সাদা পৃষ্ঠের উপর আছে কিনা।
মূল লুপে, আপনি গাড়ির বাঁক নেওয়ার গতি নিয়ন্ত্রণ করতে speed ভেরিয়েবলটি সামঞ্জস্য করতে পারেন। মানটি 0 থেকে 255 পর্যন্ত হয়, যেখানে উচ্চতর মান গাড়িটিকে দ্রুত বাঁক নিতে সাহায্য করে।
int speed = 150;//0 থেকে 255
যুক্তিটি সহজ: যদি সেন্সর HIGH (কালো রেখা) পড়ে, গাড়িটি বামে বাঁক নেয়; অন্যথায়, এটি ডানে বাঁক নেয়। কাস্টম ফাংশন moveLeft() এবং moveRight() এটি অর্জনের জন্য মোটর নিয়ন্ত্রণ করে। উদাহরণস্বরূপ, বামে বাঁক নিতে, ডান মোটরটি ঘোরে যখন বাম মোটরটি থেমে থাকে, গাড়িটিকে ঘুরিয়ে দেয়। এই আচরণটি ভিডিওতে বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে (ভিডিওতে 10:39 সময়ে)।
কালো রেখার উপর লাইন ট্র্যাকার স্থাপন করা। পাশাপাশি সংবেদনশীলতা সামঞ্জস্য করা।
লাইভ প্রকল্প প্রদর্শন
ভিডিওটি লাইন-অনুসরণকারী গাড়ির একটি লাইভ প্রদর্শনের মাধ্যমে শেষ হয় (ভিডিওতে 13:13 সময়ে)। গাড়িটিকে একটি কালো ট্র্যাকে রাখা হয়, এবং সেন্সরটি সরাসরি রেখার উপর অবস্থান করে। গাড়িটি চলার সাথে সাথে, সেন্সরটি কালো রেখা এবং সাদা পটভূমি সনাক্ত করে, মোটরগুলিতে তার দিক সামঞ্জস্য করার জন্য সংকেত পাঠায়। প্রদর্শনটি দেখায় যে গাড়িটি সফলভাবে একটি সম্পূর্ণ বৃত্ত সম্পন্ন করে, যা সহজ বাম/ডান সংশোধন যুক্তির কার্যকারিতা প্রমাণ করে।
অধ্যায়সমূহ
- [00:00] লাইন ট্র্যাকিংয়ের পরিচিতি
- [01:09] লাইন ট্র্যাকিং মডিউল কীভাবে কাজ করে
- [04:04] লাইন ট্র্যাকিং মডিউল সংযোগ করা
- [04:23] সিরিয়াল মনিটরের মাধ্যমে সেন্সর পরীক্ষা করা
- [07:27] লাইন-ফলোয়িং লজিক বোঝা
- [09:08] লাইন-ফলোয়িং গাড়ির কোড
- [11:37] লাইন-ফলোয়িং গাড়ির প্রদর্শন
- [13:13] কালো ট্র্যাকে লাইভ পরীক্ষা
/*
this is code for the tutorial: Lesson 30/31: Car-8 Line Tracking by Smart Car from SunFounder Arduino Kit
YouTube video: https://www.youtube.com/watch?v=Cp2rD5RkYug
Get the code from: 📚⬇️ Download and resource page https://robojax.com/RJT613
www.robojax.com
*/
const int in1 = 5; // in1,2 for right motor
const int in2 = 6;
const int in3 = 9; // in3,4 for left motor
const int in4 = 10;
const int lineTrack = 2;
void setup() {
Serial.begin(9600);
//motor
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
//line track
pinMode(lineTrack, INPUT);
}
void loop() {
int speed = 150;//0 to 255
int lineColor = digitalRead(lineTrack); // 0:white 1:black
// Serial.println(lineColor); //print on the serial monitor
if (lineColor) {
Serial.print("Black ");
moveLeft(speed);
} else {
Serial.print("White ");
moveRight(speed);
}
}
void moveLeft(int speed) {
Serial.println("LEFT");
analogWrite(in1, 0);
analogWrite(in2, speed);
analogWrite(in3, 0);
analogWrite(in4, 0);
}
void moveRight(int speed) {
Serial.println("RIGHT");
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, speed);
analogWrite(in4, 0);
}
Common Course Links
Common Course Files
সম্পদ ও রেফারেন্সসমূহ
এখনো কোনো সম্পদ নেই।
ফাইলসমূহ📁
কোনো ফাইল উপলব্ধ নেই।