وبلاگ آموزشی جم ترونیک

آموزش راه‌اندازی ماژول دوربین OV7670

آموزش راه‌اندازی ماژول دوربین OV7670

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

معرفی ماژول دوربین OV7670

این ماژول یک سنسور پردازش تصویر محبوب است که در زمینه‌های گسترده‌ای از رباتیک تا پزشکی کاربرد دارد؛ ماژول دوربین OV7670 دارای اسیلاتور، تقسیم‌کننده ولتاژ و قابلیت اتصال به انواع میکروکنترلرها است.

سنسور دوربین OV7670 یک سنسور کم‌مصرف و به‌صرفه است که می‌تواند تصاویر و ویدیوها را با حداکثر رزولوشن ۴۸۰ * ۶۴۰ ضبط کند. این سنسور از پروتکل‌های ارتباطی مانند 12C پشتیبانی می‌کند که باعث می‌شود این ماژول با سیستم‌های مختلفی سازگار باشد.

ماژول دوربین OV7670 دارای سنسور ۰.۳ مگاپیکسلی است و ویدیوهایی با حداکثر ۳۰ فریم بر ثانیه ضبط می‌کند. این ماژول فقط با ولتاژ ۳.۳ ولت کار می‌کند، در نتیجه در پروژه‌های مختلف نباید از پین‌های ۵ ولت آردوینو استفاده کنید.

خرید ماژول دوربین OV670

ویژگی‌های ماژول دوربین OV7670

  •   سایز اپتیکال یک‌ششم اینچ
  •   رزولوشن ۶۴۰ در ۴۸۰
  •   رگولاتور آن‌بورد
  •   عملکرد فقط در ولتاژ ۳.۳ ولت
  •   لنز شش میلی‌متری با کیفیت بالا و F1.8
  •   حساسیت بالا در مکان‌های کم‌نور
  •   استفاده از متد واریوپیکسل برای نمونه‌برداری‌های فرعی
  •   کنترل تصویر اتوماتیک
  •   کنترل نوردهی، کنترل Gain، تراز سفیدی اتوماتیک، کالیبراسیون سطح سیاه خودکار
  •   امکان تنظیم و کنترل کیفیت تصویر شامل Saturation و Sharpness
  •   ISP شامل کاهش نویز
  •   پشتیبانی از LED و عکس‌برداری با فلش

سخت‌افزار

  •   سنسور تصویر OV7670: هسته اصلی ماژول دوربین، یک سنسور کم‌مصرف CMOS با عملکرد بالا
  •   لنز: ماژول دوربین معمولا دارای یک لنز ثابت یا قابل تنظیم است که محدوده دید و کیفیت تصویر را مشخص می‌کند.
  •   اسیلاتور: ماژول دوربین OV7670 دارای یک نوسان‌گر است که کلاک سیگنال را به سنسور تصویر برای افزایش هماهنگی می‌فرستد.
  •   رگولاتور ولتاژ:‌ یک تقسیم‌کننده ولتاژ برای تامین ولتاژهای مختلف ضروری مدار دوربین
  •   رابط: امکان اتصال به میکروکنترلر را از طریق پروتکلی مانند 12C فراهم می‌کند.
  •   مدارهای پشتیبان: این ماژول مدارهای پشتیبانی اضافی مانند خازن‌های جداکننده و مقاومت‌های پول‌- آپ

پایه‌ها

  •   پین VCC: ولتاژ ورودی ۳.۳ ولت
  •   پین GND
  •   پین SDIOC:‌ پین 12C سریال کلاک
  •   پین SDIOD: پین 12C سریال دیتا
  •   پین VSYNK: هماهنگ‌سازی عمودی تصویر خروجی
  •   پین HREF: هماهنگ‌سازی افقی تصویر خروجی
  •   پین XCLK: پین ورودی کلاک سیستم
  •   پین PCLK: خروجی این پین یک کلاک سیگنال برای هماهنگی انتقال داده‌های پیکسل به میکروکنترلر است.
  •   پین‌های D0  تا D7: پین‌های انتقال دیتای پیکسل از سنسور به میکروکنترلر
  •   پین RESET: استفاده برای ریستارت کردن ماژول دوربین
  •   پین PWDN: پین خاموش کردن ماژول

آموزش راه‌اندازی ماژول دوربین OV7670

آموزش راه‌اندازی ماژول دوربین OV7670

 

الان که با ماژول دوربین OV7670 آشنا شده‌اید، نوبت به راه‌اندازی آن با آردوینو و استفاده از آن در پروژ‌‌ه‌های مختلف می‌رسد. راه‌اندازی این ممکن است برای افراد مبتدی سختی‌هایی داشته باشد؛ ما در ادامه این مقاله به ساده‌ترین شکل ممکن راه‌اندازی این ماژول با استفاده از آردوینو را برای‌تان فراهم کرده‌ایم.

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

 

اتصال پایه‌ها

  1.     پین 3v3 را به پین ۳ ولت آردوینو وصل کنید.
  2.     پین‌های زمین را به یک‌دیگر وصل کنید.
  3.     پین SDIOC را به پین A5 آردوینو وصل کنید.
  4.     پین SDIOD را به پین A4 آردوینو متصل کنید.
  5.     پین VSYNK را به پین D3، پین HREF را به پین D8، پین PCLK را به پین D2 و پین XCLK را به پین D11 وصل کنید.
  6.     پین‌های D0 تا D3 را به ترتیب به پین‌های A0 تا A3 و پین‌های D4 تا D7 را به ترتیب به پین‌های D4 تا D7 آردوینو وصل کنید.
  7.     پین RESET را به پین 3v3 آردوینو و پین PWDN  را به پین GND وصل کنید.

مدارتان را مشابه تصویر بالا بسازید. مقاومت‌های ۱۰ هزار اهمی را به شکل موازی به پین‌های 3v3 و سیم‌های SDIOD و SDIOC متصل کنید. مقاومت‌های ۴.۷ هزار اهمی را به پین زمین و پین XCLK اتصال دهید.

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

کدنویسی

کدنویسی و راه‌اندازی ماژول دوربین OV7670 با include کردن کتاب‌خانه‌های مورد نیاز برای این ماژول در کد آغاز می‌شود. از آن‌جایی که این ماژول برپایه پروتکل 12C فعالیت می‌کند، از کتاب‌خانه <util/twi.h> استفاده می‌کنیم. تمام این کتاب‌خانه‌ها به‌صورت پیش‌فرض در IDE آردوینو وجود دارند و تنها صدا زدن آن‌ها در کد، کافی است.

تابع setup () شامل تنظیمات اولیه برای گرفتن تصویر است. اولین تابعی که در کد استفاده می‌کنیم؛

است که به آردوینو یک مقدار اولیه می‌دهد. با این تابع رابط‌های ارتباطی مانند PWM Clock، پین‌های وقفه، بیت‌های برابری و توقف را اضافه می‌کنیم.

پس از تنظیم آردوینو، نوبت به تنظیم دوربین می‌رسد. در زمان تنظیم دوربین، تنها امکان تغییر مقدارهای registery وجود دارد؛ این مقدارها را از پیش‌فرض به مقدار دلخواه خود تغییر می‌دهیم. همچنین تاخیر مورد نیاز را با توجه به فرکانس میکروکنترلری که استفاده می‌کنیم، در کد قرار می‌دهیم. میکروکنترلرهای کندتر، زمان بیش‌تری برای پردازش صرف کرده و در نتیجه فاصله بین گرفتن تصاویر بیش‌تر می‌شود.

دوربین برای گرفتن تصاویر QVGA تنظیم شده است، در نتیجه باید رزولوشن تصاویر را هم تنظیم کنیم. برای این کار از تابع setResolution(); استفاده می‌کنیم.

با تابع setColor(); می‌توان رنگ تصاویر گرفته شده را تعیین کرد. در این آموزش از حالت مونوکروم استفاده شده است؛ مقادیر این تابع به‌صورت پیش‌فرض توسط دوربین تعیین شده‌اند و می‌توان از بینشان انتخاب نمود.

با استفاده از تابع captureImg(320, 240); می‌توان رزولوشن عکس خروجی را تنظیم کرد؛ در این بخش از کد رزولوشن روی ۲۴۰ *۳۲۰ تنظیم شده است.

کد کامل این پروژه در انتهای مقاله قرار گرفته شده است؛ فقط لازم است تا آن را پس از اتصال ماژول به آردوینو، در IDE کپی کنید تا ماژولتان راه‌اندازی شود.

 

کد کامل برای راه‌اندازی ماژول دوربین OV7670

 

جمع‌بندی

ماژول دوربین OV7670 دارای کاربردهای زیادی است و می‌توانید از آن در پروژه‌های مختلفی استفاده کنید. ما در این مقاله این ماژول را بررسی کرده و راه‌اندازی آن را آموزش دادیم. راه‌اندازی این ماژول ممکن است برای افراد مبتدی ساده نباشد، به همین دلیل باید دقت بالایی داشته باشید تا به ماژول آسیبی نرسد.

بازگشت به لیست

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

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