إن لم يعمل التشغيل، افتحه على YouTube ↗

مشروع 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();
}

فيديوهات أخرى

🛠️ لطلب عمل مشروع مشابه، أو مساعدة في تنفيذه، يمكنكم التواصل معنا.
تواصل عبر واتساب
✓ تم نسخ رابط المشروع
تمت الإضافة إلى السلة