مضى على الشبكة و يوم من العطاء.

[ مشروع ] مشروع دبابة سبيكتروم

Spectrum Team

./عضو جديد

السمعة:

مشروع دبابة سبيكتروم 🚗



هو مشروع يعمل على مبدأ حركة الدبابة أو العربة إلى الأمام دائمًا, ولكن إن وجدت جسم أمامها من خلال Ultrasonic Sensor (مستشعر الموجات فوق الصوتية) فإنها تقوم بالنظر يمينًا ويسارًا ليجد الإتجاه الذي لا يوجد به جسم ويستطع التحرك له بدون وجود عوائق.

العربة أو الدبابة تتكون مما يلي:
  • Arduino UNO
1715505369892.png

  • مستشعر الموجات فوق الصوتية Ultrasonic Sensor

1715505398744.png

  • مصدر طاقة و MINI SERVO MOTOR (محرك سيرفو صغير)

صص.jpg

  • جسم الدبابة وبعض الأسلاك
تمثيل لسريكت (الدارة) على برنامج محاكاة
1715611102332.png
ما يحصل هو أن الدبابة تتحرك إلى الأمام وعند رؤيتها جسم من خلال الموجات فوق الصوتية, فإن محرك السيرفو يعمل ويحرك مسشعر الموجات فوق الصوتية بزاوية مُعينة نحن نحددها يمينًا ويسارًا, ويبقى مُستشعر الموجات يرسل إشارات إلى حين رؤيته اتجاه يمكنه السير به من دون مُعوقات.

معلومة: يعمل مُستشعر الموجات فوق الصوتية ( Ultrasonic Sensor ) على مبدأ إرسال الموجات بشكلٍ دائم, وعندما يتلقى رد لهذه الموجات فإنه يكتشف وجود جسم أمامه يرد الموجات المرسلة.

وللمزيد من التفاصيل عن مبدأ عمل المُستشعر شاهد هذا الفيديو 🔗 , ولكن تذكر أنه في حالتنا المُستشعر يتحرك فيجب أن نُراعي قيمتها في معرفة المسافة بين المُستشعر و الجسم

والآن هذه العملية كلها يتم برمجتها من خلال الـ Arduino و هذا هو الكود المستخدم

#include <Servo.h> //Servo motor library. This is standard library
#include <NewPing.h> //Ultrasonic sensor function library. You must install this library
//our L298N control pins
const int LeftMotorForward = 5;
const int LeftMotorBackward = 4;
const int RightMotorForward = 3;
const int RightMotorBackward = 2;
//sensor pins
#define trig_pin A1 //analog input 1
#define echo_pin A2 //analog input 2
#define maximum_distance 200
boolean goesForward = false;
int distance = 100;
NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function
Servo servo_motor; //our servo name

void setup(){
pinMode(RightMotorForward, OUTPUT);
pinMode(LeftMotorForward, OUTPUT);
pinMode(LeftMotorBackward, OUTPUT);
pinMode(RightMotorBackward, OUTPUT);

servo_motor.attach(11); //our servo pin
servo_motor.write(90);
delay(200);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
}
void loop(){
int distanceRight = 0;
int distanceLeft = 0;
delay(50);
if (distance <= 30){
moveStop();
delay(300);
moveBackward();
delay(700);
moveStop();
delay(300);
distanceRight = lookRight();
delay(500);
distanceLeft = lookLeft();
delay(500);
if (distance >= distanceLeft){
turnRight();
moveStop();
}
else{
turnLeft();
moveStop();
}
}
else{
moveForward();
}
distance = readPing();
}
int lookRight(){
servo_motor.write(5);
delay(500);
int distance = readPing();
delay(500);
servo_motor.write(90);
return distance;
}
int lookLeft(){
servo_motor.write(175);
delay(500);
int distance = readPing();
delay(500);
servo_motor.write(90);
return distance;
delay(500);
}
int readPing(){
delay(70);
int cm = sonar.ping_cm();
if (cm==0){
cm=250;
}
return cm;
}
void moveStop(){

digitalWrite(RightMotorForward, LOW);
digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
digitalWrite(LeftMotorBackward, LOW);
}
void moveForward(){
if(!goesForward){
goesForward=true;

digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
}
}
void moveBackward(){
goesForward=false;
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorBackward, HIGH);

digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorForward, LOW);

}
void turnRight(){
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorBackward, HIGH);

digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorForward, LOW);

delay(500);

digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);


}
void turnLeft(){
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorForward, LOW);
digitalWrite(RightMotorBackward, LOW);
delay(500);

digitalWrite(LeftMotorForward, HIGH);
digitalWrite(RightMotorForward, HIGH);

digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorBackward, LOW);
}
وبالطبع تحتاج لمصدر طاقة, وجسم الدبابة يمكن طباعته على الطابعة ثلاثية الأبعاد 3D أو يوجد عدد من الأجسام والهياكل الجاهزة للاستخدام

كان هذا شرح مُبسط لمبدأ عمل الدبابة وإن شاء الله سنتوسع في المستقبل في عمل كل جزء من أجزائها

 

المرفقات

  • 1715611352889.jpeg
    1715611352889.jpeg
    37.9 KB · المشاهدات: 1,401
التعديل الأخير بواسطة المشرف:
مشروع دبابة سبيكتروم 🚗

مشاهدة المرفق 10244

هو مشروع يعمل على مبدأ حركة الدبابة أو العربة إلى الأمام دائمًا, ولكن إن وجدت جسم أمامها من خلال Ultrasonic Sensor (مستشعر الموجات فوق الصوتية) فإنها تقوم بالنظر يمينًا ويسارًا ليجد الإتجاه الذي لا يوجد به جسم ويستطع التحرك له بدون وجود عوائق.

العربة أو الدبابة تتكون مما يلي:
  • Arduino UNO

  • مستشعر الموجات فوق الصوتية Ultrasonic Sensor


  • مصدر طاقة و MINI SERVO MOTOR (محرك سيرفو صغير)


  • جسم الدبابة وبعض الأسلاك

ما يحصل هو أن الدبابة تتحرك إلى الأمام وعند رؤيتها جسم من خلال الموجات فوق الصوتية, فإن محرك السيرفو يعمل ويحرك مسشعر الموجات فوق الصوتية بزاوية مُعينة نحن نحددها يمينًا ويسارًا, ويبقى مُستشعر الموجات يرسل إشارات إلى حين رؤيته اتجاه يمكنه السير به من دون مُعوقات.

معلومة: يعمل مُستشعر الموجات فوق الصوتية ( Ultrasonic Sensor ) على مبدأ إرسال الموجات بشكلٍ دائم, وعندما يتلقى رد لهذه الموجات فإنه يكتشف وجود جسم أمامه يرد الموجات المرسلة.

وللمزيد من التفاصيل عن مبدأ عمل المُستشعر شاهد هذا الفيديو 🔗 , ولكن تذكر أنه في حالتنا المُستشعر يتحرك فيجب أن نُراعي قيمتها في معرفة المسافة بين المُستشعر و الجسم

والآن هذه العملية كلها يتم برمجتها من خلال الـ Arduino وبالطبع تحتاج لمصدر طاقة, وجسم الدبابة يمكن طباعته على الطابعة ثلاثية الأبعاد 3D أو يوجد عدد من الأجسام والهياكل الجاهزة للاستخدام

كان هذا شرح مُبسط لمبدأ عمل الدبابة وإن شاء الله سنتوسع في المستقبل في عمل كل جزء من أجزائها

ما شاء الله مشروع رائع
ننتظر جديدكم دائما باذن الله
 
مشروع جميل ❤️
بداية موفقة في عالم الميكاترونيكس ومستوى متميز الصراحة 🔥
 

آخر المشاركات

عودة
أعلى