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

مشروع 23: 🤖 روبوت يتجنّب العوائق

المصدر: شرح عربي

📘 الشرح

🎯 الفكرة والهدف:
سيارة روبوت تسير للأمام وتلتفّ تلقائياً عند وجود عائق — أشهر مشاريع الروبوت.

📘 الشرح:
• HC-SR04 يقيس المسافة أمام الروبوت.
• إن كان الطريق خالياً يتقدّم، وإلا يتوقّف ويلتفّ.
• درايفر L298N يتحكّم بمحرّكَي العجلات.

🔌 طريقة التوصيل

  • L298N: IN1←5, IN2←6, IN3←9, IN4←10
  • المحرّكات على OUT1/2 و OUT3/4
  • HC-SR04: Trig←A0, Echo←A1
  • سيرفو ← الطرف 3
  • تغذية L298N من البطارية و GND مشترك

🧩 المكوّنات المطلوبة

  • أردوينو أونو
  • هيكل سيارة بعجلات ومحرّكَي DC
  • درايفر محرّكات L298N
  • حسّاس HC-SR04
  • محرّك سيرفو SG90
  • بطارية وأسلاك

💻 الكود

#include <Servo.h>
Servo look;
int IN1 = 5, IN2 = 6, IN3 = 9, IN4 = 10;
int trig = A0, echo = A1;

long distance() {
  digitalWrite(trig, LOW); delayMicroseconds(2);
  digitalWrite(trig, HIGH); delayMicroseconds(10); digitalWrite(trig, LOW);
  return pulseIn(echo, HIGH) * 0.034 / 2;
}
void forward() { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); }
void stopM()   { digitalWrite(IN1,LOW);  digitalWrite(IN2,LOW); digitalWrite(IN3,LOW);  digitalWrite(IN4,LOW); }
void turn()    { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); digitalWrite(IN3,LOW);  digitalWrite(IN4,HIGH); }

void setup() {
  pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT);
  pinMode(trig,OUTPUT); pinMode(echo,INPUT);
  look.attach(3); look.write(90);
}

void loop() {
  if (distance() > 20) forward();
  else { stopM(); delay(200); turn(); delay(400); }
}

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

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