🤖 ربات مسیریاب — چطور خط سیاه را دنبال میکند
ربات مسیریاب کلاسیکترین پروژهی رباتیک است و در تقریباً هر مسابقهای دیده میشود. اصلش خیلی سادهتر از چیزی است که به نظر میرسد.
سنسور چطور خط را میبیند؟
هر سنسور یک LED مادون قرمز دارد که به زمین نور میتاباند و یک گیرنده که بازتاب را میسنجد. سطح سفید نور را برمیگرداند و سطح سیاه جذبش میکند. پس: بازتاب زیاد یعنی سفید، بازتاب کم یعنی روی خط.
منطق دو سنسوره
دو سنسور در دو طرف خط بگذار، طوری که در حالت عادی هر دو روی سفید باشند:
- هر دو سفید ← مستقیم برو
- چپ روی سیاه ← ربات به راست منحرف شده ← به چپ بپیچ
- راست روی سیاه ← به راست بپیچ
- هر دو سیاه ← احتمالاً خط پایان یا تقاطع ← بایست
کد
const int left = 2, right = 3; // سنسورها
const int m1a = 5, m1b = 6, m2a = 9, m2b = 10; // درایور
void drive(int l, int r) {
analogWrite(m1a, l > 0 ? l : 0);
analogWrite(m1b, 0);
analogWrite(m2a, r > 0 ? r : 0);
analogWrite(m2b, 0);
}
void setup() {
pinMode(left, INPUT);
pinMode(right, INPUT);
}
void loop() {
bool onL = digitalRead(left) == LOW; // LOW یعنی سیاه
bool onR = digitalRead(right) == LOW;
if (!onL && !onR) drive(170, 170); // مستقیم
else if (onL && !onR) drive(0, 170); // چپ بپیچ
else if (!onL && onR) drive(170, 0); // راست بپیچ
else drive(0, 0); // بایست
}
سه نکته که کار را درست میکند
- پیچ حساسیت را تنظیم کن. روی هر ماژول سنسور یک پیچ هست؛ آنقدر بچرخانش تا LED نشانگرش دقیقاً روی خط عوض شود.
- ارتفاع سنسور مهم است. حدود ۵ تا ۱۰ میلیمتر از زمین. خیلی بالا یا خیلی پایین، تشخیص خراب میشود.
- سرعت را کم کن. ربات تندرو در پیچها خط را گم میکند. اول آهسته کار کن، بعد سرعت را زیاد کن.
قدم بعدی
وقتی نسخهی دو سنسوره کار کرد، با پنج سنسور و کنترل نسبتی (PID) ربات خیلی نرمتر حرکت میکند — ولی اول همین را درست کن.
منطق مسیریاب را در شبیهساز تمرین کن 🤖