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

مشروع 9: 🤖 روبوت ذكي يتجنّب الحواجز (نسخة ٣)

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

📘 الشرح

🎯 الفكرة والهدف:
نسخة متقدّمة: عند وجود حاجز يقيس المسافة يميناً ويساراً ويختار الاتجاه الأوسع.

📘 الشرح:
• نستخدم سيرفو لتوجيه الحسّاس ومقارنة المسافتين.
• نفس مبدأ L298N للمحرّكات.

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

  • L298N: IN1←5, IN2←6, IN3←9, IN4←10
  • HC-SR04: Trig←A0, Echo←A1
  • السيرفو ← الطرف 3

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

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

💻 الكود

#include <Servo.h>
Servo look; int IN1=5,IN2=6,IN3=9,IN4=10,trig=A0,echo=A1;
long dist(){ digitalWrite(trig,LOW);delayMicroseconds(2);digitalWrite(trig,HIGH);delayMicroseconds(10);digitalWrite(trig,LOW); return pulseIn(echo,HIGH)*0.034/2; }
void fwd(){ 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 turnR(){ digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH); }
void turnL(){ digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW); }

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(dist()>20){ fwd(); return; }
  stopM(); look.write(150); delay(300); long l=dist();
  look.write(30); delay(300); long r=dist(); look.write(90);
  if(l>r) turnL(); else turnR(); delay(400);
}

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

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