رباتیک و هوافضا

پروژه ی ساخت ربات آتش نشان با استفاده از سرو موتور و آردوینو همراه با کد

ربات آتش نشان

به نام خدا

پروژه ی ساخت ربات آتش نشان با آردوینو

ربات آتش نشانسالانه آتش جان تعداد زیادی از انسان ها را می گیرد و خسارات جبران ناپذیری وارد می کند. به همین خاطر مقابله با آتش یکی از الویت ها پس از رخ دادن آتش سوزی می باشد. اما در بعضی جا ها به دلیل شدت آتش انسان نمی تواند وارد عمل شود و آتش را خاموش کند. علم رباتیک این کار را محقق ساخته است. ربات آتش نشان می تواند جایگزین انسان شود. به این صورت دیگر جان آتش نشانی در مواقع حساس به خطر نمی افتد.

در این پروژه ما قصد داریم تا با استفاده از آردوینو ربات آتش نشانی بسازیم که آتش را پیدا می کند و به سمت آن آب می پاشد. این ربات نمونه ی کوچکی برای تمرین و آزمایش است و می توان از آن در ابعاد بزرگتر برای مقاصد واقعی استفاده کرد.

 

قطعات مورد نیاز پروژه ی ساخت ربات آتش نشان با آردوینو:

آردوینو یونو

سنسور تشخیص آتش

سرو موتور SG90

ماژول L293D

برد بورد کوچک

شاسی موتور با چرخ

مخزن آب کوچک

سیم برد بورد

 

سنسور تشخیص آتش:

مغز اصلی این پروژه آردوینو ست که از طریق سنسور آتش ، شعله را پیدا می کند. شکل این ماژول را در زیر مشاهده می کنید.

بیشتر بخوانید...  رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال

 

 

ربات آتش نشان

همانطور که مشاهده می کنید این سنسور ها دارای گیرنده ی مادون قرمز هستند که از آن ها برای تشخیص شعله استفاده می شود. هنگامی که شعله می سوزد مقداری نور مادون قرمز از خود ساطع می کند. سپس از یک آپ امپ برای بررسی تغییر ولتاژ صورت گرفته، استفاده می کنیم. بنابراین اگر شعله پیدا شده باشد پین خروجی ۰ ولت دارد و اگر شعله ای نباشد پین خروجی ۵ ولت است. مطابق شکل زیر سه سنسور را در سه جهت متفاوت قرار می دهیم.

 

ربات آتش نشان

پس از کشف آتش می توانیم با استفاده ماژول L293D موتور را راه اندازی کنیم و به آتش نزدیک تر شویم. هنگامی که به اندازه ی کافی نزدیک شدیم باید روی آن آب بپاشیم. با استفاده از یک مخزن و یک پمپ ۵ ولتی که بالای سرو موتور قرار دارد این کار محقق می شود و می توان جهت پاشیدن آب را نیز تغییر داد.

شماتیک مدار:

شماتیک مدار که شامل اتصالات کامل مدار است به صورت زیر می باشد.

 

ربات آتش نشان

ممکن است با توجه به شاسی ربات شما ، کمی تغیر در ساختار اتصالات و … رخ دهد.

ربات آتش نشان

 

دانلود کد پروژه ی ربات آتش نشان :

دانلود فایل
/*------ Arduino Fire Fighting Robot Code----- */
 
#include <Servo.h>
Servo myservo;
 
int pos = 0;    
boolean fire = false;
 
/*-------defining Inputs------*/
#define Left_S 9      // left sensor
#define Right_S 10      // right sensor
#define Forward_S 8 //forward sensor
 
/*-------defining Outputs------*/
#define LM1 2       // left motor
#define LM2 3       // left motor
#define RM1 4       // right motor
#define RM2 5       // right motor
#define pump 6
 
void setup()
{
  pinMode(Left_S, INPUT);
  pinMode(Right_S, INPUT);
  pinMode(Forward_S, INPUT);
  pinMode(LM1, OUTPUT);
  pinMode(LM2, OUTPUT);
  pinMode(RM1, OUTPUT);
  pinMode(RM2, OUTPUT);
  pinMode(pump, OUTPUT);
 
  myservo.attach(11);
  myservo.write(90); 
}
 
void put_off_fire()
{
    delay (500);
 
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    
   digitalWrite(pump, HIGH); delay(500);
    
    for (pos = 50; pos <= 130; pos += 1) { 
    myservo.write(pos); 
    delay(10);  
  }
  for (pos = 130; pos >= 50; pos -= 1) { 
    myservo.write(pos); 
    delay(10);
  }
  
  digitalWrite(pump,LOW);
  myservo.write(90);
  
  fire=false;
}
 
void loop()
{
   myservo.write(90); //Sweep_Servo();  
 
    if (digitalRead(Left_S) ==1 && digitalRead(Right_S)==1 && digitalRead(Forward_S) ==1) //If Fire not detected all sensors are zero
    {
    //Do not move the robot
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    }
    
    else if (digitalRead(Forward_S) ==0) //If Fire is straight ahead
    {
    //Move the robot forward
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, LOW);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, LOW);
    fire = true;
    }
    
    else if (digitalRead(Left_S) ==0) //If Fire is to the left
    {
    //Move the robot left
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, LOW);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, HIGH);
    }
    
    else if (digitalRead(Right_S) ==0) //If Fire is to the right
    {
    //Move the robot right
    digitalWrite(LM1, HIGH);
    digitalWrite(LM2, HIGH);
    digitalWrite(RM1, HIGH);
    digitalWrite(RM2, LOW);
    }
    
delay(300); //Slow down the speed of robot
 
     while (fire == true)
     {
      put_off_fire();
     }
}

 

بیشتر بخوانید...  اندازه گیری رطوبت و دما با آردوینو و سنسور DHT11

دیدگاه‌ها (4)

*
*

    امین مهمان شهریور 21, 1399 پاسخ

    سلام وقت بخیر. بسیار پروژه جالبی بود من قطعات تهیه کردم مدارش بستم
    کد پروژه اپلود کردم. وقتی اتش روشنه سنسور ها فعال میشه اما ربات حرکت نمیکنه. علتش چی میتونه باشه؟
    میتونم منبع درایور جدا از اردینو بگیرم؟ اگر ممکنه راهنمایی کنید تشکر

      Admin مدیر کل آبان 16, 1399 پاسخ

      توجه داشته باشید که همه زمین های مدار( منفی تغذیه ها ) باید به هم وصل باشن، منظورم موقع استفاده از منبع مجزا هستش
      اگه مشکلتون حل نشد توی تلگرام فیلم پروزه رو بفرستید تا مشکلتون رو حل کنن

    امیرحسین مهمان اردیبهشت 29, 1400 پاسخ

    سلام وقتتون بخیر بنده تمام وسایلی رو که گفتین خریداری کردم و ربات رو ساختم حالا سنسور ها کار میکنن ولی ربات حرکتی انجام نمیده حتی پمپ اب هم کار نمیکنه میتونید یه راهنمایی ما بفرمایید خیلی مچکرم از سایت خوبتون

      Admin مدیر کل شهریور 21, 1400 پاسخ

      سلام
      توی تلگرام یا واتس اپ مشکلاتتون رو بگید از ربات عکس و فیلم بگیرید بفرستید