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

ربات تشخیص چهره و دنبال کننده صورت با آردوینو و Processing

سلام. پروژه ربات تشخیص چهره و دنبال کننده صورت با آردوینو را آماده کردیم.

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

تا به حال شده است که بخواهید پروژه تشخیص چهره را بدون استفاده از برنامه نویسی های دیگر مثل OpenCV ، ویژوال بیسیک #C و … بسازید ؟ در این پروژه آردوینو ما با استفاده از مخلوط کردن قدرت Arduino و اندروید یک بازوی رباتیک دنبال کننده صورت را میسازیم. مزیت این پروژه این است که نیازی به خرید ماژول دوربین ندارید و با دوربین گوشی این کار انجام میشود. همچنین نیازی نیست که آردوینو به کامپیوتر متصل شود. همچنین ما برای ارتباط Android و Arduino از یک ماژول بلوتوث استفاده میکنیم. برنامه اندرویدی استفاده شده در این پروژه با استفاده از Processing اندروید تولید شده است. میتوانید در انتهای صفحه این برنامه را دانلود کنید.

فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

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

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

در انتهای مطلب فیلم عملکرد پروژه و توضیحات کامل کد پروژه را مشاهده میکنید.

چاپ سه بعدی قطعات (اختیاری)

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

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

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

چاپ سه بعدی قطعات ربات

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

پروژه ربات تشخیص صورت و دنبال کننده چهره با Arduino

مدار ربات دنبال کننده صورت با آردوینو

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

توضیحات شماتیک مدار ربات دنبال کننده چهره

همانطور که در شماتیک مدار دیده میشود، مدار ما دارای 2 سروو موتور است. یکی برای جابجایی تلفن به سمت چپ و راست است و دیگری برای تنظیم شیب تلفن همراه است. جهت حرکت سروو موتور توسط آردوینو نانو کنترل میشود. اطلاعات حرکت نیز توسط ماژول بلوتوث Hc 05 در اختیار Arduino قرار میگیرند. تمام مدار نیز با یک باتری 9 ولت تغذیه میشود. این مدار را می توان به راحتی بر روی برد بورد متصل کرد.

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

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

  1. آردوینو نانو
  2. موتور سروو SG90 -دو عدد
  3. ماژول بلوتوث HC-05 / HC-06
  4. باتری 9 ولت
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

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

همانطور که قبلاً گفتیم مغز اصلی این پروژه برنامه Android است. این برنامه اندرویدی با استفاده از پردازش اندروید (Processing Android) توسعه یافته است. می توانید مستقیماً این برنامه را بر روی تلفن همراه خود نصب کرده و با دنبال کردن مراحل زیر آن را راه اندازی کنید.

  1. فایل APK را در انتهای صفحه بارگیری کنید.
  2. مدار را روشن کنید.
  3. در تنظیمات تلفن خودماژول بلوتوث با نام “HC-05” را جستجو کنید. (اگر نام ماژول خود را تغییر داده اید، نام آن را دوباره به HC-05 تغییر دهید.)
  4. به ماژول بلوتوث خود متصل شوید. در صورت درخواست رمز 000 و 1234 را امتحان کنید.
  5. شما باید تصویر دوربین خود را در صفحه ببینید و همچنین در بالای صفحه عبارت Connected to : HC-05 را مشاهده کنید.
  6. دوربین خود را جرکت دهید، باید مربع سبزی را روی چهره روبروی توسط دوربین مشاهده کنید.

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

می توانید با آوردن پیشرفتهای زیادی که نیازی به رمزگذاری برنامه Android خودتان نیستید ، این پروژه ردیابی چهره Arduino را به سطح بعدی برسانید. ایجاد یک برنامه اندرویدی ممکن است دشوار به نظر برسد اما با کمک پردازش به من اعتماد کنید که می توانید در هیچ زمان یادگیری آن را یاد بگیرید. كد پردازش كامل كه براي ساخت اين برنامه استفاده مي شود را مي توان در اينجا بارگذاري كرد. شما می توانید با خلاقیت خود پیشرفت کنید. برای کسب اطلاعات بیشتر در مورد پردازش ، پروژه های زیر را بررسی کنید:

کد پروژه ردیابی چهره با آردوینو

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

برنامه آردوینو برای این پروژه نسبتاً ساده است، فقط باید بر اساس مقادیر دریافت شده از ماژول بلوتوث، مسیر دو موتور سروو را کنترل کنیم. کد کامل را می توانید در انتهای این آموزش دریافت کنید. در اینجا چند خط مهم از کد Arduino را توضیح میدهیم.

در کد زیر اتصال سریال با پین D12 به عنوان RX و D11 به عنوان TX برقرار می شود. از این رو پین D12 باید به TX ماژول بلوتوث و پین D11 به RX ماژول بلوتوث وصل شود.

SoftwareSerial cam_BT(12, 11);  // RX, TX

سپس ماژول بلوتوث را با نرخ باود 9600 راه اندازی میکنیم. اطمینان حاصل کنید که ماژول نیز با همان نرخ baud کار می کند. در غیر این صورت آن را تغییر دهید.

cam_BT.begin(9600); //نرخ باود 9600
cam_BT.println("Ready to take commands");

در خط زیر میگوییم آردوینو اطلاعات به دست آمده از گوشی را بخواند. همچنین این داده ها در متغیر “BluetoothData” ذخیره میشوند.

if (cam_BT.available()) //دستور خواندن اطلاعات دریافتی
   {
BluetoothData=cam_BT.read();
Serial.print("Incoming from BT:");
Serial.println(BluetoothData);
}

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

if (BluetoothData==49) //چرخش به چپ
{pos1+=2; servo1.write(pos1);}

if (BluetoothData==50) //چرخش به راست
{pos1-=2; servo1.write(pos1);}

if (BluetoothData==51) //چرخش به بالا
{pos2-=2; servo2.write(pos2);}

if (BluetoothData==52) //چرخش به پایین
{pos2+=2; servo2.write(pos2);}

پس از آماده کردن مدار و بارگذاری برنامه در آردوینو، نرم افزار را باز کنید. برنامه به طور خودکار به ماژول بلوتوث با نام Hc-05 متصل میشود و منتظر میماند تا چهره ای بیابد و آن را شناسایی کند. سپس میتوانید چهره خود یا عکس چهره ای را جلوی دوربین قرار دهید تا آن را شناسایی کند. سپس میتوانید حرکت کنید یا عکس را حرکت دهید تا ببینید ربات چطور به دنبال چهره حرکت میکند.

موارد موجود در فایل : سورس کامل ، شماتیک پروژه ، نرم افزار اندروید

4.3 (12 نفر)

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

محمد رحیمی

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

21 نظر

  1. شما اگر پروژه رو تست نمی کنید چرا در سایت قرار می دید. واقعا که شما خودتون یک بار این پروژه رودرست کنید، نرم افزار تصویر رو وارونه نشون میده، کدی به بلوتوث ارسال نمی کنه.
    من خیلی از پروژه های شما رو دیدم که ترجمه شده هست؛ شاید مطالبی که ترجمه می کنید، مطالب پرت و در پیتی باشن لطفا این کار رو نکنید اونم شمایی که انقدر دوره های اموزشی خوبی دارید.

    1. سلام عزیز
      اکثر پروژه های سایت ترجمه شده هستند و به دلیل مشغله وقت برای تست کردن نیست
      فیلم عملکرد دارند و پروژه ها عمل میکنند
      سعی میکنیم از این به بعد تست کنیم

  2. سلام این پروژه توسط شما تست شده ؟
    من این مدار رو بستم ولی اپ موبایلش مشکل داره تصویر رو وارونه نشون میده و هیچ کدی به ماژول بلوتوث ارسال نمیکنه
    ممنون میشم راهنمایی کنید من این پروژه رو برای کارشناسیم انتخاب کردم باید ازش جواب بگیرم

    1. سلام عزیز
      این پروژه ترجمه شده هست ما تست نکردیم

  3. سلام یه سوال
    این فقط با همون برنامه اندروید کار میکنه
    مثلا برای دوربین نرم افزار هایی مثل تلگرام یا اینستا کار میکنه؟

    1. سلام جناب، فقط با برنامه خاص پروژه کار میکند.

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

  5. سلام مجدد.ببخشید زحمتتون دادم.کتابخونه رو از کجا باید نصب کنم؟ ممنون

  6. می شه لطفا بگین این ارور برای چیه؟ ممنون می شم.اخه خیلی برام مهمه

    1. کتابخانه های مورد نیاز رو باید نصب کنید.

  7. فایل AndroidManifest.xml برای چیه؟ با تشکر فراوان از شما و سایت عالیتون

  8. سلام.کد پراسسینگ ارور می ده.No library found for android.content
    No library found for android.os
    No library found for android.os
    No library found for android.bluetooth
    No library found for android.view
    The type android.content.Intent cannot be resolved. It is indirectly referenced from required .class files

  9. سلام.هر کاری می کنم فایل توی گوشی من باز نمی شه.می شه راهماییم کنید؟ ممنون

    1. سلام جناب. دوباره دانلود کنید و فایل رو با نرم افزار WinRAR باز کنید (RAR).

  10. سلام.ببخشید برای اینکه من با ماژول دوربین ov7670 و اردوینو بتونم همین تشخیص چهره رو انجام بدم باید چه کار کنم؟ ممنون از سایت عالیتون

  11. سلام.ببخشید چطور می شه این پروژه رو با ماژول دوربین ov7670 انجام داد؟ با تشکر

  12. سلام.ببخشید پاسخ شما به سوال من اینجا نیومد ولی در بخش اخرین نظرات مطالب دیگه سایت هست.چرا اینجوری شده؟

  13. سلام.ببخشید من می خوام وقتی چهره تشخیص داده شد یک ال ای دی روشن بشه.برای این کار باید باید چی کار کنم؟ ممنون

    1. سلام جناب. در قسمت چرخش به چپ و راست با دستور digitalWrite ال ای دی مورد نظرتون رو کنترل کنید.

  14. درود و خدا قوت
    برنامه اندروید با چه زبانی نوشته شده است ؟
    آیا سورس برنامه اندروید هم در زمینه پروژه است ؟

    1. سلام جناب. برنامه اندروید با Processing نوشته شده و سورس برنامه هم در فایل دانلودی موجود هست.

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

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