مشروع 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); }
}
فيديوهات أخرى

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

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

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

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

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

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