راهاندازی ماژول دوربین OV7670 با آردوینو برای ثبت تصاویر
ماژولهای دوربین یکی از جذابترین قطعات تو دنیای الکترونیک هستن که میتونن پای بینایی ماشین رو به پروژههای ما باز کنن. با اینکه بردهای آردوینو حافظه و پردازنده خیلی قدرتمندی برای پردازش تصویر ندارن، اما با یه سری ترفندها میتونیم عکسها رو باهاشون بگیریم و برای پردازش یا ذخیره به کامپیوتر بفرستیم.
تو این آموزش از آیسیمدار میخوایم سراغ ماژول معروف و پرکاربرد OV7670 بریم. این دوربین کوچیک با کیفیت VGA، قابلیتهای فوقالعادهای مثل تنظیم خودکار نور و رنگ داره و میتونه تصاویر خام رو به سمت آردوینو ارسال کنه. هدف ما تو این پروژه اینه که عکسهای گرفته شده توسط ماژول رو از طریق پورت سریال بخونیم و به کمک یه برنامه جاوا روی سیستممون ذخیره کنیم.
بریم قطعات رو روی میز کارمون بچینیم و قدمبهقدم نرمافزار و سختافزار این دوربین خفن رو راهاندازی کنیم!
- سایز اپتیک 1/6 اینچ
- رزولوشن 640x480 VGA
- رگولاتور روی برد؛ فقط یک منبع 3.3 ولت لازمه
- نصبشده با لنز باکیفیت F1.8 / 6mm
- حساسیت بالا برای نور کم
- روش VarioPixel® برای sub-sampling
- توابع کنترل خودکار تصویر شامل: Automatic
- Exposure Control (AEC)، Automatic Gain Control (AGC)، Automatic White Balance (AWB)، Automatic
- Band Filter (ABF) و کالیبراسیون خودکار Black-Level (ABLC)
- کنترلهای کیفیت تصویر شامل اشباع رنگ، hue، gamma، sharpness (تقویت لبه) و anti-blooming
- ISP شامل کاهش نویز و اصلاح نقصه
- از حالت الایدی و فلاش strobe پشتیبانی میکنه
- از مقیاسبندی پشتیبانی میکنه
- اصلاح سایهاندازی لنز
- تشخیص خودکار فلیکر (50/60 هرتز)
- تنظیم خودکار سطح اشباع (تنظیم UV)
- تنظیم خودکار سطح تقویت لبه
- تنظیم خودکار سطح حذف نویز
- سایز لنز اپتیکال 1/6 اینچ
- رزولوشن VGA (640 در 480 پیکسل)
- دارای رگولاتور داخلی با نیاز به تغذیه تکی 3.3 ولت
- مجهز به لنز باکیفیت 6 میلیمتری / F1.8
- حساسیت بالا برای عملکرد تو محیطهای کمنور
- استفاده از تکنولوژی VarioPixel برای کاهش نویز
- امکانات کنترل خودکار تصویر شامل: نوردهی (AEC)، تنظیم گین (AGC)، وایت بالانس (AWB)، فیلتر باند (ABF) و کالیبراسیون سطح سیاهی (ABLC)
- تنظیمات کیفیت تصویر مثل اشباع رنگ، تغییر طیف، گاما، وضوح لبهها و جلوگیری از بلومینگ نوری
- پردازشگر سیگنال تصویر (ISP) داخلی برای کاهش نویز و اصلاح خطاهای پیکسلی
- پشتیبانی از حالت فلش الایدی و Strobe
- قابلیت تغییر مقیاس تصویر (Scaling)
- اصلاح سایهروشنهای گوشه لنز
- تشخیص خودکار پرش نور (50/60 هرتز)
- تنظیم خودکار سطح اشباع رنگ (UV adjust)
- تنظیم خودکار وضوح لبههای تصویر
- تنظیم خودکار سطح حذف نویز
قطعات موردنیاز
- برد آردوینو UNO به همراه کابل USB
- ماژول دوربین OV7670
- دو عدد مقاومت 10 کیلواهم
- دو عدد مقاومت 4.7 کیلواهم
- بردبورد و سیم جامپر
آمادهسازی قطعات سختافزاری
برای شروع این پروژه، به یه برد آردوینو UNO به همراه کابل اتصالش نیاز داری. قطعه اصلیمون هم همون ماژول دوربین OV7670 هست که وظیفه ثبت تصاویر رو بر عهده داره.
برای هماهنگ کردن سطح ولتاژها بین برد و دوربین، دو تا مقاومت 10 کیلواهم و دو تا مقاومت 4.7 کیلواهم هم آماده کن. همه اینا رو قراره روی یه بردبورد ببندیم و از طریق محیط آردوینو و زبان جاوا باهاشون ارتباط برقرار کنیم.
سیمکشی ماژول دوربین به آردوینو
اول از همه باید مدارت رو دقیقا مثل تصاویر این مرحله ببندی. حواست به پایههای تغذیه و پایههای دیتا باشه تا ماژول بر اثر اشتباه تو سیمکشی آسیب نبینه. مقاومتها اینجا نقش مهمی برای پایداری سیگنالها دارن.
نصب محیط جاوا روی سیستم
برای اینکه بتونیم دیتای تصویری رو از طریق پورت سریال روی کامپیوتر بخونیم، به یه ابزار نرمافزاری نیاز داریم که با زبان جاوا نوشته شده. پس باید نسخه JDK جاوا (مثلا ورژن jdk1.8.0_74) رو دانلود و روی سیستمت نصب کنی. معمولا این برنامه به صورت پیشفرض تو درایو C مسیر Program Files و فولدر Java نصب میشه.
میتونی از عکسهای بالا کمک بگیری. یادت باشه که فایلهای نصب جاوا حجم نسبتا زیادی دارن، پس صبور باش.
آپلود کد روی برد آردوینو
کد اصلی آردوینو برای این پروژه وظیفهاش اینه که رجیسترهای دوربین رو تنظیم کنه و دیتای پیکسلها رو به سمت کامپیوتر بفرسته. این سورسکد رو تو محیط نرمافزار آردوینو باز کن. برد آردوینو رو با کابل به سیستم وصل کن و بعد از انتخاب درست نوع برد و پورت، دکمه آپلود رو بزن. برای اطمینان از تنظیمات درست، به عکسهای این قسمت نگاه کن.
یه نکته مهم: اگه موقع کامپایل دیدی نرمافزار به بعضی از کتابخونههای خطوط اول کد ایراد میگیره، اصلا نگران نشو. خیلی راحت اون خطوط رو با دو تا اسلش (//) کامنت کن تا غیرفعال بشن و مشکل برطرف بشه.
تشخیص پورت اتصال آردوینو
حالا باید بفهمی آردوینو دقیقا به کدوم پورت USB وصل شده. برای این کار تو ویندوز برو تو بخش Control Panel بعد Device Manager و قسمت Ports (COM & LPT) رو باز کن. با کلیک راست روی دستگاهت و رفتن به Properties، تب Port Settings و زدن دکمه Advanced میتونی شماره پورتت (مثل COM4 یا COM5) رو پیدا کنی. مثلا تو سیستم من، آردوینو به پورت COM5 وصل شده بود. این شماره رو تو ذهنت نگه دار.
آمادهسازی فایلهای ارتباطی جاوا
برای اینکه برنامه جاوا بتونه با پورت کامپیوترت حرف بزنه، نیاز به پوشهای حاوی فایلهای کامپایلشده داره که مخصوص همون شماره پورتی باشه که پیدا کردی (مثلا فایل مخصوص COM1 یا COM5). این پوشه که معمولا اسمش code هست رو کپی کن، برو تو مسیری که JDK رو نصب کرده بودی (Local Disk > Program Files > Java > jdk1.8.0_74 > bin) و همونجا پیستش کن.
عکس این مرحله بهت نشون میده که دقیقا تو چه مسیری باید فایلها رو قرار بدی.
ایجاد پوشه برای ذخیره تصاویر
حالا برو تو درایو اصلی ویندوز (Local Disk C) و یه پوشه جدید بساز. اسمش رو بذار out (البته هر اسم دیگهای هم میتونی بذاری ولی تو کدهای آماده معمولا پیشفرض همین مسیره). این پوشه همون جاییه که عکسهای گرفته شده توسط ماژول ذخیره میشن.
اضافه کردن فایلهای dll و jar
1. برای کار با پورت سریال تو جاوا، به چند تا فایل سیستمی خاص نیاز داری. اول فایل win32com.dll رو پیدا کن. باید این فایل رو کپی کنی و تو مسیر C:\Program Files\Java\jdk1.8.0_74\jre\bin قرارش بدی.
2. حالا دو تا فایل دیگه به اسمهای comm.jar و javax.comm.properties هم داری. فایل comm.jar رو ببر تو مسیر C:\Program Files\Java\jdk1.8.0_74\jre\lib\ext پیست کن. فایل javax.comm.properties رو هم مستقیم تو پوشه C:\Program Files\Java\jdk1.8.0_74\jre\lib بنداز.
نکته: اگه موقع کپی کردن این فایلها، ویندوز ازت دسترسی ادمین (administrator permission) خواست، روی Continue کلیک کن تا کپی انجام بشه.
اجرای برنامه برای دریافت عکس تو CMD
منوی استارت ویندوز رو باز کن و برنامه CMD رو اجرا کن. حالا باید مسیر فعلی CMD رو به پوشه bin جاوا تغییر بدی. پس مسیر C:\Program Files\Java\jdk1.8.0_74\bin رو وارد کن تا وارد این پوشه بشی.
حالا کافیه دستور java code.SimpleRead رو تایپ کنی و اینتر بزنی. فرمت دقیقش تو خط فرمان باید شبیه این باشه: C:\Program Files\Java\jdk1.8.0_74\bin>java code.SimpleRead اگه شک داری چطور وارد کنی، یه نگاه به عکس بالا بنداز.
تماشای نتیجه کار!
عیبیابی و حرف آخر
1. اگه تو محیط CMD هیچ عکسی دریافت نکردی و خطا داد، کابل USB آردوینو رو دربیار و به یه پورت دیگه بزن (مثلا اگه تو پورت آبی USB 3.0 بود، بزنش به پورت مشکی USB 2.0 یا برعکس). 2. اگه عکسها ذخیره شدن اما تصویر بههمریخته و پر از نویز بود، باید کد آردوینو رو یه مقدار دستکاری کنی.
خط wrReg(0x11, 12); رو تو کد پیدا کن. به جای عدد 12، اعداد دیگهای مثل 9، 10، 11 یا 13 رو جایگزین کن و کد رو دوباره روی برد آپلود کن. بعد دوباره برنامه رو تو CMD اجرا کن تا نتیجه درست بشه.
راهاندازی دوربینها تو الکترونیک یه قدم خیلی بزرگه. حتما اپلیکیشن آیسیمدار رو دانلود کن و عکس خروجی پروژهات رو برای ما هم بفرست؛ منتظر دیدن کارای خفنت هستیم!
فایلهای پیوست
تو میتونی اولین سازنده باشی!
اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر
این آموزش با استانداردهای اختصاصی آیسیمدار بازنویسی و بهینهسازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.












































گفتگوهای کاربران
هنوز نظری ثبت نشده؛ تو شروع کن!
هنوز نظری ثبت نشده؛ تو شروع کن!