به نام خدا
پروژه ی ساخت ربات آتش نشان با آردوینو
سالانه آتش جان تعداد زیادی از انسان ها را می گیرد و خسارات جبران ناپذیری وارد می کند. به همین خاطر مقابله با آتش یکی از الویت ها پس از رخ دادن آتش سوزی می باشد. اما در بعضی جا ها به دلیل شدت آتش انسان نمی تواند وارد عمل شود و آتش را خاموش کند. علم رباتیک این کار را محقق ساخته است. ربات آتش نشان می تواند جایگزین انسان شود. به این صورت دیگر جان آتش نشانی در مواقع حساس به خطر نمی افتد.
در این پروژه ما قصد داریم تا با استفاده از آردوینو ربات آتش نشانی بسازیم که آتش را پیدا می کند و به سمت آن آب می پاشد. این ربات نمونه ی کوچکی برای تمرین و آزمایش است و می توان از آن در ابعاد بزرگتر برای مقاصد واقعی استفاده کرد.
قطعات مورد نیاز پروژه ی ساخت ربات آتش نشان با آردوینو:
آردوینو یونو
سنسور تشخیص آتش
سرو موتور SG90
ماژول L293D
برد بورد کوچک
شاسی موتور با چرخ
مخزن آب کوچک
سیم برد بورد
سنسور تشخیص آتش:
مغز اصلی این پروژه آردوینو ست که از طریق سنسور آتش ، شعله را پیدا می کند. شکل این ماژول را در زیر مشاهده می کنید.
همانطور که مشاهده می کنید این سنسور ها دارای گیرنده ی مادون قرمز هستند که از آن ها برای تشخیص شعله استفاده می شود. هنگامی که شعله می سوزد مقداری نور مادون قرمز از خود ساطع می کند. سپس از یک آپ امپ برای بررسی تغییر ولتاژ صورت گرفته، استفاده می کنیم. بنابراین اگر شعله پیدا شده باشد پین خروجی ۰ ولت دارد و اگر شعله ای نباشد پین خروجی ۵ ولت است. مطابق شکل زیر سه سنسور را در سه جهت متفاوت قرار می دهیم.
پس از کشف آتش می توانیم با استفاده ماژول 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(); } }
سلام وقت بخیر. بسیار پروژه جالبی بود من قطعات تهیه کردم مدارش بستم
کد پروژه اپلود کردم. وقتی اتش روشنه سنسور ها فعال میشه اما ربات حرکت نمیکنه. علتش چی میتونه باشه؟
میتونم منبع درایور جدا از اردینو بگیرم؟ اگر ممکنه راهنمایی کنید تشکر
توجه داشته باشید که همه زمین های مدار( منفی تغذیه ها ) باید به هم وصل باشن، منظورم موقع استفاده از منبع مجزا هستش
اگه مشکلتون حل نشد توی تلگرام فیلم پروزه رو بفرستید تا مشکلتون رو حل کنن
سلام وقتتون بخیر بنده تمام وسایلی رو که گفتین خریداری کردم و ربات رو ساختم حالا سنسور ها کار میکنن ولی ربات حرکتی انجام نمیده حتی پمپ اب هم کار نمیکنه میتونید یه راهنمایی ما بفرمایید خیلی مچکرم از سایت خوبتون
سلام
توی تلگرام یا واتس اپ مشکلاتتون رو بگید از ربات عکس و فیلم بگیرید بفرستید