مشروع 25: 🛣️ روبوت تتبّع الخط (Line Follower)
المصدر: شرح إنجليزي
📘 الشرح
🎯 الفكرة والهدف:
روبوت يتبع خطاً على الأرض تلقائياً باستخدام حسّاسَي أشعة تحت حمراء.
📘 الشرح:
• كل حسّاس IR يميّز الخط (أسود) عن الأرضية (أبيض).
• حسب قراءة الحسّاسين نصحّح اتجاه العجلات عبر L298N.
🔌 طريقة التوصيل
- L298N: IN1←5, IN2←6, IN3←9, IN4←10
- حسّاس IR الأيمن ← الطرف 2
- حسّاس IR الأيسر ← الطرف 4
🧩 المكوّنات المطلوبة
- أردوينو أونو
- هيكل سيارة بعجلات ومحرّكَي DC
- درايفر L298N
- حسّاسا تتبّع خط IR
- بطارية وأسلاك
💻 الكود
int IN1 = 5, IN2 = 6, IN3 = 9, IN4 = 10;
int rightIR = 2, leftIR = 4;
void fwd() { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); }
void right() { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); }
void left() { digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); }
void stopM() { digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,LOW); }
void setup() {
pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT);
pinMode(rightIR,INPUT); pinMode(leftIR,INPUT);
}
void loop() {
int r = digitalRead(rightIR), l = digitalRead(leftIR);
if (l == 0 && r == 0) fwd(); // كلاهما على الخط
else if (l == 1 && r == 0) left(); // انحرف يساراً
else if (l == 0 && r == 1) right(); // انحرف يميناً
else stopM();
}
فيديوهات أخرى

مشروع 1: محرك السيرفو (نسخة ٢)

مشروع 2: المداخل والمخارج مع السيرفو

مشروع 3: الليد ثلاثي الألوان RGB (نسخة ٢)

مشروع 4: شريط ليد WS2812 (نسخة ٢)

مشروع 5: مقدمة NodeMCU ESP8266 (أول برنامج)

مشروع 6: التحكّم عن بعد Blynk + ESP8266 (نسخة ٢)
🛠️ لطلب عمل مشروع مشابه، أو مساعدة في تنفيذه، يمكنكم التواصل معنا.
تواصل عبر واتساب