آموزش آردوینوپروژه های آردوینو

ربات ضدعفونی کننده اتوماتیک با لامپ فرابفنش و آردوینو

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

همانطور که گفته شد ربات ما دارای LED های فرابنفش است. کشف شده است که ویروس ها، باکتری ها و عوامل بیماری زا در معرض نور ماورا بنفش (UV) غیرفعال میشوند. این نور باعث از بین بردن مواد ژنتیکی موجود در عوامل بیماری زا میشوند. ویروس ها مثل کووید 19 (کرونا) میتوانند برای مدت طولانی در سطوح زنده بمانند. تاباندن اشعه فرابنفش به آنها باعث غیرفعال شدن میشود.

بقیه پروژه ها در زمینه کرونا را نیز مشاهده کنید:

مدار ربات ضد عفونی کننده با آردوینو

تصویر مدار در لحظه اول شاید پیچیده بنظر برسد، اما بسیار ساده است. ما سه سنسور التراسونیک داریم که موانع را تخشیص میدهند. پاه های Fround و VCC سنسور های التراسونیک را به Ground و 5V آردوینو متصل میکنیم. پایه های Trig و Echo سنسور ها به پایه های نشان داده شده آردوینو متصل میشوند. برای کنترل موتور ها از موتور درایور L293D استفاده میکنیم. ال ای دی های ماورا بنفش نیز همیشه روشن هستند بنابراین مستقیما با یک مقاومت 330 اهم به منبع تغذیه متصل میشوند. ما برای تغذیه ربات از یک باتری 7.4 ولتی و از یک رگولاتور 7805 برای تبدیل آن به 5 ولت استفاده میکنیم.

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

مدار ربات ضد عفونی کننده با آردوینو

قطعات مورد نیاز

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

قطعات مورد نیاز ربات ضدعفونی کننده ربات کرونا

  • برد آردوینو پرو مینی
  • ماژول التراسونیک HC-SR04 (سه عدد)
  • L293D درایور موتور
  • موتورهای 5 ولت
  • LED های ماورا بنفش (هشت عدد)
  • تنظیم کننده ولتاژ 7805
  • باتری لیتیوم یون 7.4 ولت
  • مقاومت 330 اهم (ده عدد)

ساخت محفظه برای ربات ضدعفونی کننده مبتنی بر آردوینو

تصاویر زیر به شما برای ساخت محفظه ربات کمک میکنند. میتوانید با توجه به مواد در دسترس، خلاقیت و نیاز خود محفظه را ایجاد کنید. بهترین گزینه استفاده از ورق ها است. محفظه را مانند تصاویر برش بزنید و ال ای دی ها و ماژول التراسونیک را در آن ها قرار دهید.

ساخت محفظه برای ربات ضدعفونی کننده مبتنی بر آردوینو

طراحی قالب ربات ضدعفونی کننده آردوینو

کد آردوینو ربات ضد عفونی کننده سطح با نور ماورابنفش

کد کامل پروژه در انتهای صفحه قرار داده شده است. در این جا قسمت های مهم کد را بررسی میکنیم. برای درک اطلاعات دریافتی از سنسور های التراسونیک از کتابخانه خاصی استفاده نمیکنیم. در ابتدای کد تعیین میکنیم پین های Trig و Echo به کدام پین های آردوینو متصل هستند. در این پروژه سه پایه اکو و سه پایه ماشه داریم. توجه داشته باشید که 1 به معنی سنسور چپ ، 2 سنسور جلو و 3 سنسور سمت راست است.

const  int trigPin1 = 3;
const int echoPin1 = 5; 
const int trigPin2 = 6;
const int echoPin2 =9; 
const int trigPin3 = 10;
const int echoPin3 = 11;

سپس متغیرهایی را برای فاصله از نوع int تعریف کردیم و برای مدت زمان نوع (long) را انتخاب کردیم. باز هم ما از هر کدام سه تا داریم. پیشنهاد میکنم مقاله انواع متغیر در آردوینو را مشاهده کنید.

long duration1;
 long duration2;
 long duration3;
int distanceleft;
int distancefront;
int distanceright;

در بخش void setup ، باید نوع پایه های آردوینو را که به سنسور ها متصل هستند را تعریف کنیم. برای پین های Trig باید نوع خروجی و برای پین های Echo باید نوع ورودی را در نظر بگیریم. همچنین ارتباط سریال را با نرخ 9600 آغاز میکنیم.

pinMode(trigPin1, OUTPUT);
pinMode(trigPin2, OUTPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin1, INPUT); 
pinMode(echoPin2, INPUT);
pinMode(echoPin3, INPUT);
Serial.begin(9600);

همچنین پین های متصل به موتور درایور نیز تماما به صورت خروجی تعریف میشوند.

pinMode(4, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(12, OUTPUT);

در void loo[ ، ما سه بخش برای سه حسگر داریم. همه بخشها یکسان کار می کنند اما هر بخش برای سنسور های مختلف کار می کنند. در هر بخش ابتدا پایه Trig را به مدت 10 میکروثانیه High میکنیم و سپس با با دستور pulsein() مدت زمان رفت و برگشت موج التراسونیک به اشیا را بدست می آوریم. با استفاده از فرمول ساده و سرعت صدا در هوا که 340 متر بر ثانیه است، فاصله رفت و برگشت را محاسبه میکنیم. از آنجا که ما به فاصله نیاز داریم، فاصله رقت و برگشت را تقسیم بر 2 میکنیم. در نهایت فاصله هر حسگر از اشیای روبروی آن را در متغیر مربوطه ذخیره میکنیم.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distanceleft = duration1 * 0.034 / 2;
Serial.print("Distance1: ");
Serial.println(distanceleft);

بعد از فهمیدن فاصله هر سنسور از مانع، با دستور if موتور ها را کنترل میکنیم. این بسیار ساده است. ما فاصله آستانه را 15 سانتی متر در نظر گرفتیم. شما میتوانید این مقدار را تغییر دهید. با استفاده از این شرط، به طور مثال هنگامی که سنسور سمت چپ در فاصله ای کمتر از 15 سانتی متر با مانع باشد، به سمت راست حرکت میکند.

if ((distanceleft <= 15 && distancefront <= 15 && distanceright > 15) || (distanceleft <= 15 && distancefront > 15 && distanceright > 15))

در زیر کدی را که برای حرکت موتور چپ ، راست و جلو استفاده شده است به طور جداگانه توضیح داده ایم.

این بخش از کد برای حرکت دادن ربات به سمت راست استفاده می شود:

 digitalWrite(4, HIGH);
 digitalWrite(7, LOW);
 digitalWrite(8, HIGH);
 digitalWrite(12, LOW);

این بخش از کد برای حرکت ربات به سمت چپ استفاده می شود:

 if ((distanceleft > 15 && distancefront <= 15 && distanceright <= 15) || (distanceleft > 15 && distancefront > 15 && distanceright <= 15) ||  (distanceleft > 15 && distancefront <= 15 && distanceright > 15) )
 digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(12, LOW);

این بخش از کد برای حرکت مستقیم ربات استفاده می شود:

 if ((distanceleft <= 15 && distancefront > 15 && distanceright <= 15) || (distanceleft > 15 && distancefront > 15 && distanceright > 15)) 
  {
    digitalWrite(4, HIGH);
    digitalWrite(7, LOW);
    digitalWrite(8, HIGH);
    digitalWrite(12, LOW);
   }

کد آردوینو ربات ضد عفونی کننده سطح با نور ماورابنفش

موارد موجود در فایل : سورس کامل

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *