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

چگونه با آردوینو دوربین بسازیم (عکس برداری با ماژول 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);
موارد موجود در فایل : شماتیک ، فایل Hex ، فایل آردوینو ، و …

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

دوره آموزش STM32

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

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

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

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

محمد رحیمی

محمد رحیمی

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

61 نظر

  1. سلام
    چطوری میتوانم جزییات این پروژه را دریافت نمایم؟
    نحوه اتصال دوربین به آردوینو

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

  2. سلام خسته نباشید میخواستم این پروژه رو روی due اجرا کنم آیا تغییری توی بستن مدار باید بدم نسبت به این ؟
    بخوام تصویر با سرعت بیشتری دریافت کنم چه تغییری باید توی کد بدم برای due

    1. سلام جناب، نیاز به تغییر زیادی نیست فقط در انتخاب پین ها ممکنه به ویرایش نیاز داشته باشه.

  3. سلام ببخشید لطفا جواب من را بدین
    الان من برای چند دقیقه حواسم نبود بجای ۳.۳ مثبت رو به ۵ وصل کردم
    بعد الان هرچی که امتحان می کنم
    Led پای ۱۳ چشمک میزنه
    یعنی سوخته ؟؟؟؟؟

    1. منظور من دوربین بود
      و الان پای های a5 , a4 رو به مقاومت و بعد به پای های دوربین sda , scl دوربین زدم و بهش ولتاژ ۳.۳ دادم
      الان شمک میزنه
      و زمانی که مدار رو کامل می بندم
      نرم افزار میگه در حال باز کردن
      پورت
      و کاری نمی کنه

    2. سلام جناب. اتصال 3.3 ولت به پایه 5 ولت مشکلی برای ماژول ایجاد نمیکنه

  4. با سلام
    ۱- دوربین باید حافظه fifo داشته باشه یا بدون fifo هم میشه این پروژه رو انجام داد؟
    ۲- میشه تصویر رو بصورت رنگی دریافت کرد؟
    ۳- میشه بدون نرم افزار پورت خوان با این دوربین عکس گرفت و روی اس دی کارت ذخیره کرد؟
    لطفا برای هر کدوم آموزشی قرار بدید.(فقط یکم سریعتر)
    با تشکر

    1. سلام، بدون حافظه fifo،
      در این پروژه تصویر رنگی دریافت نمیشه،
      امکان ذخیره سازی در sd وجود داره.

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

  6. خیر کد به راحتی اپلود می شه و هیچ خطایی نمیده.بعد از اینکه کد اپلود می شه ال ای دی 13 شروع به چشمک زدن می کنه.ممنون

    1. یک برنامه خالی روی برد آپلود کنید ببینید باز هم چشمک میزنه یا خیر.

  7. سلام.ال ای دی پین 13 من هی چشمک می زنه و هیچ تصویری نشون داده نمی شه. می شه راهنماییم کنید؟ ممنون از سایت عالیتون

    1. سلام جناب، کد به درستی آپلود میشه و خطایی مشاهده نمیکنید؟

    2. منظورم دوربین بود
      یعنی پایه 3.3 ولت را به ۵ زدم
      نه برای چند ثانیه چند دقیقه

      بعد الان فقط پایه های
      مثبت و منفی
      Sda و scl رو زدم باز هم شمک می زنه

  8. هر کاری می کنم نمی شه توی نرم افزار پورت خوان می نویسه com 8 port opened ولی هیچ تصویری نمیاره.

    1. سلام جناب، ممکنه باعث ایجاد مشکل بشه.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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