آردوینو Arduinoپروژه های آردوینو

چگونه با آردوینو دوربین بسازیم (عکس برداری با ماژول OV7670)

سلام. پروژه جذاب چگونه با آردوینو دوربین بسازیم ( پروژه دوربین آردوینو با ماژول OV7670) را آماده کردیم. در این آموزش میفهمیم چگونه با استفاده از دوربین و آردوینو عکس و تصویر برداری کنیم. فیلم عملکرد مدار رو از دست ندهید !

چگونه با آردوینو دوربین بسازیم ؟

چگونه با آردوینو دوربین بسازیم
چگونه با آردوینو دوربین بسازیم

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

در این پروژه آردوینو ما از ماژول دوربین OV7670 و آردوینو استفاده میکنیم و بین آنها ارتباط بر قرار میکنیم و تصویر را در لپتاپ مشاهده میکنیم. کیفیت و طول سیم ها در این پروژه مهم است زیرا تغییر هر کدام از معیار های کیفیت و طول سیم میتواند تاثیر زیادی بر کیفیت تصویر دریافتی بگذارد و نویز آن را کم و زیاد کند! فیلم عملکرد مدار در پایین صفحه قرار داده شده است.

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

دوربین OV7670 بر روی ولتاژ 3.3 بهترین کارایی رو دارد پس ما نمیتوانیم به طور مستقیم از برد آردوینو که به پین های خروجی GPIO ولتاژ 5 ولت میدهد استفاده کنیم. OV7670 یک دوربین FIFO است اما ما در این پروژه تصویر و فریم ها را بدون FIFO ضبط میکنیم. این پروژه شامل آشنایی با ماژول دوربین OV7670 ، اتصال آردوینو به ماژول دوربین و PC ، مشاهده تصاویر از طریق نرم افزار پورت خوان است.

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

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

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

همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.

ماژول دوربین OV7670 چیست ؟

پروژه دوربین آردوینو
پروژه دوربین آردوینو

این ماژول دوربین یک ماژول FIFO است که از سازندگان مختلف با پیکربندی ها مختلف موجود است. ماژول OV7670 تصاویر کامل 8 بیتی را فراهم میکند. این دوربین میتواند فیلم برداری تا حداکثر 30 فریم بر ثانیه را در کیفیت VGA انجام دهد. این ماژول میتواند با حداکثر فرکانس 400KHz کار کند. این ماژول توانایی عکس برداری با کیفیت حدود 656*488 را دارد.

مطلب پیشنهادی:  آموزش پروگرام بیسیم روی آردوینو با بلوتوث

آموزش استفاده از پورت خوان برای نمایش تصویر از طریق برد آردوینو

آموزش استفاده از پورت خوان برای نمایش تصویر از طریق برد آردوینو

  1. برد آردوینو را به هر پورتی که میخواهید متصل کنید.
  2. نرم افزار را باز کنید روی Check کلیک کنید تا پورت مورد نظر را پیدا کنید.
  3. سپس روی Start کلیک کنید تا خواندن شروع شود و تصویر را مشاهده کنید.
  4. اگر خواستید عکس بگیرید روی Save Pictures کلیک کنید.

توضیحات کد پروژه ثبت تصویر با Arduino

کد کامل پروژه در فایل دانلودی قرار داده شده است. در ابتدا باید کتابخانه های مورد نیاز را فراخوانی کنیم. ماژول دوربین OV7670 برای ارتباط با آردوینو از پروتکل I2C استفاده میکند. پس باید کتابخانه <util/twi.h> را در ابتدای آن فراخوانی کنیم.

#include <util/twi.h>

این دوربین توانایی ثبت تصاویر با کیفیت QVGA را دارد. با کد زیر ما وضوح را روی QVGA قرار میدهیم. کد زیر مقادیر از پیش تعریف شده مربوط به کیفیت تصویر را در برنامه تعیین میکند.

setResolution();

تصاویر ثبت شده در این پروژه مونوکروم هستند.کد زیر نیز مقادیر از پیش تعریف شده مربوط به رنگ تصویر را در برنامه تعیین میکند.

setColor();

تابع زیر مقادیر Hex را ثبت میکند. اغلب این مقدار درست جواب میدهد اما در صورتی که تصویر قسمت شده به دست آوردید ، 10 را در کد پایین به 9 ، 11 و یا 12 تغییر دهید.

writeReg(0x11, 10);

تابع زیر برای بدست آوردن اندازه تصویر استفاده میشود. در این پروژه آردوینو ما تصاویر را با وضوح 320*240 ثبت میکنیم.

captureImg(320, 240);

فیلم آموزش عکس برداری با استفاده از Arduino

موارد موجود در فایل : شماتیک ، فایل Hex ، فایل آردوینو ، و …

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

دوره آموزش STM32

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

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

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

محمد رحیمی

محمد رحیمی

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

41 نظر

  1. سلام. ببخشید دوباره مزاحم شدم یک سوال داشتم. چجوری میشه تعداد فریم هارو بیشتر کرد؟؟؟؟ اگه شده حتی 1 فریم هم بیشتر بشه خوبه ممنون میشم جواب بدین

  2. سلام. ببخشید دوباره مزاحم شدم یک سوال داشتم. چجوری میشه تعداد فریم هارو بیشتر کرد؟؟؟؟ اگه شده حتی 1 فریم هم بیشتر بشه خوبه ممنون میشم جواب بدین.

  3. سلام و خسته نباشین
    میشه سورس نرم افزار سیشارپ رو هم قرار بدین

  4. سلام مجدد.ببخشید باز مزاحمتون می شم.نمی شه همین تحلیل تصویر رو با همین ماژول OV7670 و اردوینو انجام داد؟ اخه من رزبری پای ندارم. ممنون

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

  5. سلام مجدد.ببخشید منظورتون از processing چی بود؟نرم افزار processing؟ می شه یکم توضیح بیشتری بدین؟ ممنون از شما و سایت خوبتون

  6. سلام.
    ببخشید چه کار کنیم تا دستگاه ما بتونه تصویر خروجی رو تحلیل کنه؟مثلا مثل دوربین های تشخیص پلاک یا تشخیص چهره.
    با تشکر

    1. سلام، اگر با برنامه های پراسسینگ ترکیب کنید انجام میشه، processing رو در سایت سرچ کنید.

  7. سلام. ممنون از پروژه تون. یک سوال داشتم. چجوری میشه تعداد فریم هارو بیشتر کرد؟؟؟؟ اگه شده حتی 1 فریم هم بیشتر بشه خوبه ممنون میشم جواب بدین

  8. با سلام این برنامه پورت خوان نمیدونم چرا ارور میده ینی هرچقدر که رو گذینه check میزنم بازهم com1 رو انتخاب میکنه. ممنون میشم جواب بدین

    1. مشکل از ویندوزتون هست، با یک سیستم دیگه بررسی کنید.

  9. سلام ببخشید این نرم افزار پورت خوان رو من باز میکنم و میزنم Start ارور میده و یک صفحه باز میکنه با که گزینه detaile هست که دورش ابی شده و اون رو باز میکنم کلی نوشته میاد رو صفحه و اصلا تصویری نشون نمیده…… و اینکه 3تا برنامه اردینو هست که یکی ino نداره و اون دوتایی که هم دارن یکی نوشته استاندارد و یکی دیگه نوشته بوت لودر. ممنون میشم جواب بدین و راهنمایی کنید

    1. سلام جناب. از همون فایل با پسوند ino استفاده کنید.

  10. سلام خیلی ممنون از پزوژه خوبتون چند تا سوال داشتم
    1:ایا دوربین استفاده شده در اینجا ov7670 بدون حفظه fifo هست ؟؟؟
    2:چرا فایل برای من دانلود نمیشه ؟؟؟
    3: چجوری میشه که این تصویر رو به گوشی اندروید ارسال کرد ؟؟
    ممنون میشم جواب بدین

    1. سلام جناب. بله ماژول دوربین بدون fifo هست. لینک بررسی شد صحیحه. سوال آخرتون رو اطلاع ندارم.

  11. سلام ببخشید میشه با برد اردینو یک \ه\اد با برد بالا ساخت اگه میشه و اگه میتونید لینک اوزش این کار رو بهم بدین ممنون

    1. سلام جناب. پیامتون صحیح نوشته نشده منظورتون رو متوجه نشدم.

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

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

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

    2. سلام ببخشید یک سوال داشتم برای من این لینک باز نمیشه و دانلود نمیشه. اون رو در یک صفحه جدید که باز کردم و سیو کردم فقط یک شماتیک مدار بود و 3 تا برنامه نویسی اردوینو. میشه بگین که کدوم برنامه درسته؟و اینکه اون نرم‌افزار پورت خان هم داخلش نبود. ممنون میشم جواب بدین

    3. لینک دانلود نرم افزار پورت خوان قرار گرفت. برای آپلود برنامه باید از فایل با پسوند ino استفاده کنید.

  13. سلام مهندس.
    داخل فایل .
    نرم افزار پورت خوان و کتابخانه برای دوربین هم است ؟؟

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

  14. با سلام چرا تصویر سیاه سفید هست.در صورتیکه هم سیمارو چک کردم و هم جای پورتcom عوض کردم اما فایده ای نداشت.ممنون میشم راهنمایی بفرمایید.؟؟

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

    2. با سلام
      چطوری میتوانم تصویر رنگی بگیرم؟
      در برنامه چه تغییراتی لازم دارد؟چون من تصویر رنگی نیاز دارم.ممنون میشم راهنمایی بفرمایید.؟؟

    3. فکر نمیکنم با این روش (این پروژه) بشه تصویر رنگی دریافت کرد. اگر همچین پروژه ای در سایت قرار گرفت اطلاع رسانی میشه.

  15. سلام با برنامه blink هم میشه تصویر دوربین رو دریافت کرد؟

  16. سلام خسته نباشید مهندس اردینو دوربین رنگی ساپورت میکنه بعد میشه تصویر انداخت روی lcd?

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

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

  17. سلام
    خیلی ممنون از مطلب جالبتون
    لطفا کد فیلم برداری رو هم قرار بدین

    1. سلام. این مشکل از کد نیست و به سیستم یا مدار شما ربط داره. مدار رو از نو بسازید و از پورت COM دیگر و در صورت امکان با سیستم دیگری چک کنید.

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

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