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

تشخیص خواب آلودگی راننده با آردوینو

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

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

مدار تشخیص خواب راننده با آردوینو

مدار تشخیص خواب آلودگی راننده از دو بخش فرستنده و گیرنده تشکیل شده است. بخش فرستنده از فرستنده RF و سنسور تشخیص پلک زدن تشکیل شده است و سمت گیرنده از Arduino Uno با گیرنده RF برای پردازش داده ها استفاده می کند. ما قبلاً از ماژول‌های RF 433 مگاهرتز با آردوینو برای ساخت پروژه‌هایی مانند قایق آردوینو RC، ربات کنترل‌ شده با حرکت دست و … استفاده کردیم. شماتیک مدار بخش فرستنده و گیرنده در زیر آورده شده است.

سمت فرستنده

مدار تشخیص خواب آلودگی راننده

همانطور که در شکل نشان داده شده است، ابتدا باتری 9 ولت DC با استفاده از یک رگولاتور ولتاژ 7805 به 5 ولت DC کاهش می یابد و سپس منبع تغذیه 5 ولت DC به سنسور پلک زدن چشم و فرستنده RF داده می شود. پین خروجی سنسور پلک زدن به فرستنده RF داده می شود تا آن را به صورت بی سیم به انتهای گیرنده منتقل کند.

سمت گیرنده

مدار گیرنده تشخیص خواب راننده با آردوینو

همانطور که در شکل نشان داده شده است، در سمت گیرنده، گیرنده RF به منبع تغذیه 5 ولت DC آردوینو متصل است. آردوینو از 12 ولت DC تغذیه می کند. منبع تغذیه خارجی خروجی گیرنده RF به پین ​​آنالوگ آردوینو وصل می شود. Buzzer مطابق شکل به پین ​​دیجیتال آردوینو متصل می شود.

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

قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

سنسور پلک زدن چشم

سنسور پلک زدن چشم

سنسور پلک زدن چشم برای تشخیص پلک زدن چشم استفاده می شود و با استفاده از آن می توانیم فعالیت هایی مانند خواب آلودگی راننده در حین رانندگی را نیز تشخیص دهیم. این سنسور بر اساس فناوری LED مادون قرمز کار می کند. دارای فرستنده مادون قرمز و گیرنده LED است که برای تشخیص پلک زدن چشم استفاده می شود. عملکرد سنسور IR ساده به صورت زیر نشان داده شده است:

نحوه کار سنسور پلک زدن چشم

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

هنگامی که تابش فرودی بیشتر روی دیود نوری باشد، افت ولتاژ در مقاومت سری/پتانسیومتر زیاد خواهد بود. در آی سی مقایسه کننده (Op-amp)، هر دو ولتاژ آنالوگ مرجع و ولتاژهای خروجی واقعی با هم مقایسه می شوند. اگر ولتاژ دو سر مقاومت به فتودیود بیشتر از ولتاژ مرجع باشد، خروجی مقایسه کننده HIGH و در غیر این صورت LOW است. از آنجایی که خروجی مقایسه کننده به یک LED متصل است، زمانی که حسگر فعالیت هایی مانند پلک زدن را تشخیص دهد، LED روشن میشود. ولتاژ آستانه را می توان با تنظیم پتانسیومتر بسته به شرایط تنظیم کرد.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

مشخصات فنی سنسور پلک زدن چشم

  • ولتاژ ورودی: 5V DC
  • خروجی: TTL(5V/0V)
  • سه پین هدر برای ارتباط
  • تکنولوژی مادون قرمز

ماژول فرستنده و گیرنده RF 433 مگاهرتز

RF مخفف رادیو فرکانس است. محدوده فرکانس رادیو بین 30 کیلوهرتز و 300 گیگاهرتز متغیر است. در اینجا ما از یک ماژول فرستنده گیرنده RF 433 مگاهرتز استفاده می کنیم. این ماژول RF شامل فرستنده RF 433 مگاهرتز و گیرنده RF است. جفت فرستنده/گیرنده (Tx/Rx) در فرکانس 433 مگاهرتز کار می کند. فرستنده RF داده های سریال را دریافت کرده و به صورت بی سیم از طریق RF از طریق آنتن خود ارسال می کند. داده های ارسالی توسط گیرنده RF که با فرکانس مشابه فرستنده کار می کند دریافت می شود.

ماژول فرستنده RF از کلیدهای تغییر دامنه (ASK) استفاده می کند و در فرکانس 433 مگاهرتز کار می کند. ماژول فرستنده ورودی داده سریال را می گیرد و آن سیگنال را از طریق RF ارسال می کند. سپس سیگنال های ارسالی به صورت بی سیم توسط ماژول گیرنده دریافت می شود.

ماژول گیرنده RF داده ها را دریافت کرده و به پین ​​داده OUTPUT ارسال می کند. داده های خروجی را می توان برای اقدامات بیشتر توسط میکروکنترلر رمزگشایی کرد.

برنامه نویسی آردوینو برای تشخیص خواب آلودگی

پس از انجام اتصالات سخت افزاری برای سمت فرستنده و گیرنده، اکنون زمان آپلود کد در آردوینو نانو است که به سمت گیرنده متصل است. این کد کامل در انتهای سند آورده شده است. ابتدا بیایید کد زیر را به صورت گام به گام درک کنیم:

ابتدا باید متغیرهای مورد نیاز مطابق شکل زیر اعلام شوند.

int flag=0;
int t1=0;
int t2=0;

در Setup()، تمام مقداردهی های اولیه شامل مقداردهی اولیه پورت سریال و اعلام پین ها مطابق شکل زیر انجام می شود.

void setup() {
  Serial.begin(9600);
  pinMode(2,OUTPUT);
}

خروجی داده سریال گیرنده RF از پایه آنالوگ A0 خوانده می شود و مطابق شکل در یک متغیر ذخیره می شود. برای بررسی مقادیر مرجع، می‌توانیم آن را با استفاده از مانیتور سریال ببینیم.

  int x=analogRead(A0);
  Serial.println(x);

پس از تعیین مقدار مرجع، عبارت if-else برای تشخیص خواب آلودگی نوشته می شود. همانطور که در کد زیر نشان داده شده است، تابع millis() برای دانستن مدت زمان پلک زدن چشم استفاده می شود. اگر بیشتر از این مقدار باشد، یک بوق فعال میشود و به راننده هشدار میدهد. ما مدت زمان 1000 میلی ثانیه (1 ثانیه) را تنظیم کردیم.

if(x<400 && flag==0) {
    flag=1;
    t1=millis();
}
else if(x>400 && flag==1) {
    flag=0;
    t2=millis();
    Serial.println(t2-t1);
    if((t2-t1)>1000) {
        digitalWrite(2,HIGH);
        Serial.println("Alert!!!!!!!!!!!!!!!!!");
        delay(2000);
        digitalWrite(2,LOW);
    }
    else;
  }
}

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

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

4 (4 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

9 نظر

  1. یه مانع جلو عینکشه راننده بدبخت نصف شبی سنسور اذیتش میکنه میزنه به جایی

  2. سلام وقتتون بخیر
    ایا ای سی hd12e و hd12d با ای سی ht12e و ای سی ht12d متفاوته؟

  3. سلام مجدد
    اقای رحمیی ممنون میشم منو راهنمایی کنید که چطور ای سی hd12e و hd12d رو تهیه کنم به همراه سنسور پلک زدن
    مابقی قطعات خریداری شده و مورد دیگه اینکه به جای ماژول rf ماژول ir تهیه شده که با چند فروشنده صحبت کردم گفتن فرقی نداره
    فقط و فقط من خواهش از شما این هستش که منو راهنمایی کنید این قطعات رو تهیه کنم
    ترم اخر دانشگام و موضوع پروژه رو نمیتونم عوض کنم

    1. سلام عزیز
      ماژول RF برای ارتباط رادیویی هست ماژول IR یعنی مادون قرمز کلا از هم جدا هستند.
      قطعاتی که در ایران نیست رو از خارج از کشور میتونید سفارش بدید

  4. سلام من این پروژه رو ب ای پایان نمامه م انتخاب کردم ولی اس ها و سنسور پلک زدن چشم رو هیچ جا نمیتونم پیدا کنم ممنون میشم منو راهنمایی کنید

    1. سلام عزیز
      میتونید از خارج سفارش بدید

    2. سلام برای سنسور پلک زدن چشم چیکار کردید؟ تونستید پیدا کنید؟

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

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

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

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