اطلاعیه

Collapse
No announcement yet.

دوربین ov7670

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دوربین ov7670

    با سلام خدمت همه شما :wow: تو این تاپیک قراره در مورد راه اندازی دوربین ov7670 بحث بشه من 1 هفته ای رو این دوربین کار کردم و فکر میکنم خیلی
    از شما هم دوست داشته باشید با این دوربین کار کنید یا دارید کار میکنید فکر کنم اگه بتونیم تو این تاپیک با هم رو این مورد کار کنیم به نتیجه ی بهتری دست
    پیدا کنیم . از اساتید محترم هم خواهش میکنم تو این تاپیک ما رو همراهی کنن دوستان دیگه هم اگه کسی مطلبی در مورد این دوربین میدونه ممنون میشم کمکمون کنن تا پایان این تاپیک این دوربین هم به یکی از پروژه های آماده تو سایت تبدیل شه اگه حاضر به شروع کارید لطفا نظر خودتونو اعلام کنید

    #2
    پاسخ : دوربین ov7670

    بعضی از ویژگیهای این دوربین:
    .ماکزیمم نرخ 30 فریم در ثانیه برای VGA
    2.فرمتهای خروجی RGB565/555/444 , yuv/ycbcr 4.2.2
    3.ابعاد تصویر قابل تعریف در فرمت های VGA/QVGA/CIF/QCIF
    4.باس داده 8 بیتی
    5.داشتن قابلیتهای زیادی برای پردازش تصویر
    6.داشتن بافر FIFO


    RGB
    این مدل رنگ ، برای ایجاد تصویر در تلویزیون و مانیتور ها به کار گرفته می شود. در این مدل ،تمام رنگ هااز ترکیب سه رنگ تشکیل می شود.این سه رنگ عبارت هستند از قرمز(R) ، سبز (G) و آبی (B) که به آن RGB اطلاق می شود. با ترکیب رنگهای فوق که به آنها ابتدایی (Primary) می گویند رنگهای دیگر یا ثانویه (Secondary) ایجاد می شود.

    YUV
    فضای رنگ YUV از 3 مولفه تشکیل شده است که Y میزان شدت رنگ را نشان
    می دهد و UV رنگ مورد نظر را نشان می دهد.به کمک مولفه ی
    Y تنها می توان یک تصویر سیاه و سفید بد ست اورد و برای بدست اوردن یک
    تصویر رنگی به هر سه مولفه نیاز است.

    fifoبافر
    FIFO کوتاهآ‌شدهٔ عبارت First In First Out (اولین ورودی از همه زودتر خارج میآ‌شود) است. این سیاست اساس کار صفآ‌ها را تشکیل میآ‌دهد و به مفهوم آن است که اولین دادهٔ ذخیره شده در صف، نخستین دادهآ‌ای نیز هست که بازیابی میآ‌شود. با توجه به آنآ‌چه گفته شد، روشن است که در سیاست LIFO، ورود و خروج دادهآ‌ها، از یک سمت صورت میآ‌گیرد (در واقع تنها یک سمت تودهٔ دادهآ‌ها باز است) در حالی که در سیاست FIFO، ورود و خروج دادهآ‌ها، از دو سمت صورت میآ‌گیرد (یک سمت برای ورودی و یک سمت برای خروجی) و ما به دو سر تودهٔ دادهآ‌ها دستآ‌رسی خواهیم داشت (یکی برای ورود و دیگری برای خروج).

    دیدگاه


      #3
      پاسخ : دوربین ov7670

      سلام دوست گرامی.بسیار متشکر بابت دراختیار قرار دادن این اطلاعات. لطف میکنین بفرمایین که :
      این دوربین رو کجا میشه گیرآورد؟حدود قیمت؟ درصورت امکان دیتاشیت یا عکس؟ ( پدر تنبلی بسوزه! :mrgreen: )

      دیدگاه


        #4
        پاسخ : دوربین ov7670

        با سلام خدمت شما این دوربین رو میتونید از کویرالکترونیک تهیه کنید که یکیش که بافر fifo داره 32500 و اونیکه fifo نداره 22500 . مثالهایی هم به همراه
        دوربین ضمیمه شده که فکر می کنم بتونه کمک زیادی بهمون کنه.البته اقای طراح در تاپیک زیر این دوربین رو با سری xmega راه انداختن که شماتیک و کد اون
        هم تواین صفحه هست پیشنهاذ میکنم حتما یه سر به این تاپیک بزنید چرا که خیلی از ابهامات رو بر طرف می کنه.
        من فقط دو تا سوال مونده تو ذهنم
        1.اولی این که تغذیه pic بر خلاف xmega . ولته5 و دوربین ماکزیمم 3.5 ولت رو میتونه تحمل کنه این مشکل رو چطوری باید حل کرد
        2.باید روی پایه xclk کلاک 10 تا 24 مگاهرتز ایجاد کرد که چطوری میشه رو یه پایه این کارو کرد .
        http://www.eca.ir/forum2/index.php?topic=45632.45




        اضافه شده در تاریخ :
        سلام بچه ها مشکل دوم حل شد با کریستال اسیلاتورهای 4 پایه میتونید با دادن ولتاژ به طور مستقیم ازش استفاده کرد :nice:
        ولی در مورد مشکل اول هنوز کسی نمیدونه باید چیکار کرد :angry:دوستان اگه نظری دارید هم اکنون نیازمند یاری سبزتان هستیم

        دیدگاه


          #5
          پاسخ : دوربین ov7670

          رگولاتور 3.3 ولت میشه استفاده کرد؟ مثلا FAN1117-3.3 که من حدود 3-4 ماه قبل smd این رگولاتور رو خریده بودم.

          دیدگاه


            #6
            پاسخ : دوربین ov7670

            نوشته اصلی توسط saeidmo
            سلام بچه ها مشکل دوم حل شد با کریستال اسیلاتورهای 4 پایه میتونید با دادن ولتاژ به طور مستقیم ازش استفاده کرد :nice:
            ولی در مورد مشکل اول هنوز کسی نمیدونه باید چیکار کرد :angry:دوستان اگه نظری دارید هم اکنون نیازمند یاری سبزتان هستیم
            خب همون جوری که گفتند تغذیه دوربین رو جدا کنید ایا مشکلی با این کار دارید؟
            گویند سنگ لعل شود در مقام صبر اری شود ولی به خون جگر شود
            همیشه آخر همه چیز خوبه، اگر هم هنوز خوب نشده پس هنوز آخرش نشده(چارلی چاپلین)

            دیدگاه


              #7
              پاسخ : دوربین ov7670

              با سبام خدمت همه دوستان

              نوشته اصلی توسط saeidmo
              1.اولی این که تغذیه pic بر خلاف xmega . ولته5 و دوربین ماکزیمم 3.5 ولت رو میتونه تحمل کنه این مشکل رو چطوری باید حل کرد

              خیلی از میکرو ها هستن که میتوانند با ولتاژ کمتر از 3.3 حتی 2.5 , ولت کار کنن

              من به شما پیشنهاد میکنم که به جز اسیلاتور تغذیه کل مدارتون رو روی 3.3 ولت قرار بدین و اصلا از این موضوع نترسین که فرکانس 20Mhz اسیلاتور که با 5 ولت تغذیه شده رو مستقیما به دوربین متصل کنید , زیرا چنانچه ولتاژ خروجی این اسیلاتور رو بگیرید متوجه میشوید که ولتاژی حدود 1.5 ولت هست

              پس شما فقط باید تغذیه اسیلاتور رو روی 5 ولت قرار بدین
              نا امیدی یه دروغ بزرگه که آدما به خودشون میگن
              تلاش یه حقیقت بزرگه که با صبر به ثمر میرسه

              دیدگاه


                #8
                پاسخ : دوربین ov7670

                با سلام خدمت شما ممنون از پاسختون ولی منظورم اینه که همانطوری که شما واسه ارتباط با کارتهای mmc یه مقومت 2.2 سری ویه مقاومت 3.3 زمین
                میشه چون که در این کارتها حداقل ولتاژ 1 منطقی 2.475 ولته و حداقل ولتاژ ورودی لازم برای یک منطقی 2.0625 ولت و همینطور حداکثر ولتاژ صفر منطقی
                0.4125 ولت و حداکثر ولتاژ ورودی برای صفر منطقی 0.825 ولت است بنابراین از مقاومتهای 2.2 و3.3 برای کم کردن ولتاژ ورودی کارت و رساندن ان به حدود 2.5 ولت استفاده کردیم . مطمنا در این پروژه که هم از lcd tft وهم از دوربینی استفاده میشود که با 3.3 ولت تغذیه میشن نمیشه به میکرو 5 ولت داد.
                خیلی از میکرو ها هستن که میتوانند با ولتاژ کمتر از 3.3 حتی 2.5 , ولت کار کنن
                بله حق با شماست در دیتاشیت بیشتر میکروها 2.5 تا 5.5 دکر کرده ولی فرموش نکنید که میزان سطح ولتاژ تغذیه رابطه ی مستقیمی با سرعت پردازش میکرو داره مثلا برای dspic30f برای رسیدن به حداکثر سرعت 30MIPS به ولتاژ حدود 4.5 تا 5.5 ولت نیازه و اگر سطح ولتاژ کم باشد (حدود3.6 ) حداکثر
                سرعت پردازش 15MIPS می شه .ممنون میشم اسم میکروهای مد نظرتون رو بهم بگید چون دیشب یکی رو پیدا کردم که یه رگولاتور داخلی 3.3 ولت
                داره با این که از خانواده ی 8 بیتی هاست و البته اگه می خوای ازش استفاده کنی باید کامپایلرت نسخه 2011 به بعد باشه تا ساپورتش کنه بازم ممنون از
                توجهتون

                دیدگاه


                  #9
                  پاسخ : دوربین ov7670

                  سلام اینم اون میکرویی که گفتم :wow:
                  http://datasheet.octopart.com/PIC18F...t-10122143.pdf
                  خوب حالافکر کنم هیچ مشکلی واسه شروع کار نباشه به نظر من باید قدم به قدم رفت جلو
                  1:از چه کامپایلری استفاده کنیم؟از اونجایی که ورژنهای جدید کامپایلر ها این میکروها رو ساپورت میکنه و ccs ورژنهای جدیدش معمولا باگهای زیادی داره
                  من اونو انتخاب نمیکنم mplab هم چون کار باهاشو چند وقتی بیشتر نیست شروع کردم پس تصمیم گرفتم از mikroc استفاده کنم خیلی راحتم با یه سرچ میتونید
                  ver 5.61 رو با حجم 25 مگ دانلود کنید.
                  2:قدم بعدی راه اندازی lcd n96 در مد 8 بیتی با استفاده از کتابخونه ی زیر که باید از xmega با کمی تغییر به mikroc تبدیل بشه
                  3:تبدیل کتابخونه ی int.c,int.h
                  4:وسایر کتابخونه ها که ترتیپش مهم نیست هر کی هر کدومو تونست
                  خواهشا واسه هماهنگی بیشتر و دلگرمی به ادامه ی کار دوستانی که دوست دارن تو این مسیر ما رو همراهی کنن نظر خودشونو اعلام کنن http://www.eca.ir/forum2/index.php?a....0;attach=8922

                  دیدگاه


                    #10
                    پاسخ : دوربین ov7670

                    با سلام خدمت جناب saeidmo


                    میشه پروژه رو کامل تعریف کنید
                    دقیقا با این دوربین چه کارهایی میشه انجام داد
                    و ما قراره با این دوربین چیکار کنیم



                    من یک پیشنهاد دارم

                    اگر قراره پردازش تصویر انجام بدیم , اگر قراره ضبط و پخش تصویر داشته باشیم , اگر میخواهیم خروجی هایی مثل USB داشته باشیم

                    بزرگترین دقدقه کتاب خانه ها هستن

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

                    و لازم نباشه راهی رو که خیلی ها رفتن و نتیجش شده این کتاب خانه ها رو دوباره برین



                    کتاب خانه های کامپایلر هایی مثل mikroc فقط زیبا هستن
                    کامل نیستن , درست کار نمیکنن و باید کرک شن
                    این پروژه میتونه بهانه خوبی برای آموزش Mplab باشه


                    موفق باشید
                    نا امیدی یه دروغ بزرگه که آدما به خودشون میگن
                    تلاش یه حقیقت بزرگه که با صبر به ثمر میرسه

                    دیدگاه


                      #11
                      پاسخ : دوربین ov7670

                      با سلام خدمت شما
                      حرف شما رو در مورد این که با mplab کار کنیم باهاش مشکلی ندارم ولی هنوز اعتماد به نفس کافی واسه کار با اون رو ندارم چون فقط مطالبی رو که آقای
                      baby_1 تو تاپیک مطرح کردن رو دنبال کردم و هنوز علامت سوالهای زیادی از این کامپایلر تو ذهنمه(مثلا خیلی ساده واسه این که بگم کریستالم 20 مگاهرتزه باید چی بنویسم :cry2 ولی اگه یکی مثل شما که با این کامپایلر و کتابخونه هاش اشنایی داره کنارمون باشه مشکلی ندارم درمورد این که می خوایم با
                      این دوربین چیکار کنیم فعلادر مرحله ی اول مطمینا نمیشه رفت رو پردازش تصویر و این حرفا هدف اول میتونه پخش انلاین باشه و بعدش حالا ذخیره رو mmc و
                      بعدش رو خودتون تعیین کنید من چند سوال ابتدایی از mplab دارم که فکر کنم مشکلمو فعلا حل میکنه
                      1:برای دسترسی به یه رجیستر فقط ذکر اسمش کافیه یا باید با فرمت خاصی نوشت تو mikroc فقط اسمشو میگفتیم
                      2:واسه اینکه فقط یه بیت از رجیستر دسترسی داشته باشیم چطور مثلا تو mikroc : TMR2IE_bit
                      3:میشه این #pragma که اول باید بنوییسیم یه بار بگید کلا چند تان که اولش باید تعریف کنیم اخه طبق عادت mikroc خودش تنظیم میکرد زیاد با این فیوزبیتها سروکار نداشتم
                      بازم ممنونم از شما راستی من از کامپایلر mplabx ver1.00 استفاده میکنم

                      دیدگاه


                        #12
                        پاسخ : دوربین ov7670

                        نوشته اصلی توسط saeidmo
                        1:برای دسترسی به یه رجیستر فقط ذکر اسمش کافیه یا باید با فرمت خاصی نوشت تو mikroc فقط اسمشو میگفتیم
                        2:واسه اینکه فقط یه بیت از رجیستر دسترسی داشته باشیم چطور مثلا تو mikroc : TMR2IE_bit
                        3:میشه این #pragma که اول باید بنوییسیم یه بار بگید کلا چند تان که اولش باید تعریف کنیم اخه طبق عادت mikroc خودش تنظیم
                        با سلام

                        برای دسترسی به رجیسترها همون اسمی که داخل دیتاشیت هست کافی هست

                        برای دسترسی بیتی اول اسم خود رجیستر بعد bit بعد هم اسم اون بیت مثلا PORTCbits.RC0=0x1;

                        هر میکرویی تعداد فیوزبیتهای خودشو داره برای دیدن لیست کامل اون میتونید به مسیر جایی که C18 نصب کردید داخل پوشه doc در قسمت hlpPIC18ConfigSet رجوع کنید

                        موفق باشید

                        عامل کلیدی تمام موفقیتها " عمل کردن" است

                        دیدگاه


                          #13
                          پاسخ : دوربین ov7670

                          سلام

                          حرف شما رو در مورد این که با mplab کار کنیم باهاش مشکلی ندارم ولی هنوز اعتماد به نفس کافی واسه کار با اون رو ندارم چون فقط مطالبی رو که آقای baby_1 تو تاپیک مطرح کردن رو دنبال کردم و هنوز علامت سوالهای زیادی از این کامپایلر تو ذهنمه(مثلا خیلی ساده واسه این که بگم کریستالم 20 مگاهرتزه باید چی بنویسم )
                          ببینید دوست من , هر سوال یک پله است که با قدم گزاشتن روی اون یک قدم به بالاتر حرکت میکنید
                          پس بپرسید تا حرکت کنید

                          این درست نیست که خیلی ها میگن کامپایلر هایی مثل MPLAB سخت هستن

                          این کامپایلر ها فقط و فقط قوانین بسیاری دارن که شما باید اونارو بدونید , برای مثال اگر شما سازو کار استفاده از کتاب خانه MMC رو یاد بگیرید و بدانید که چطور میشه از این کتاب خانه استفاده کرد , دیگر در استفاده از خیلی از کتاب خانه های پیشرفته مشکلی ندارید

                          و این قانون مند بودن باعث سادگی و فهم بیشتر میشوند نه سخت بودن

                          من تا جایی که بتوانم و وقتم بهم اجازه بده در خدمت هستم , اما دوستان باید بدونن که بیشتر منابع آموزشی در حال حاضر انگلیسی هستن اما منابع فارسی که وجود داره برای شروع و پیشرفت کافی هستن
                          و اما منابع انگلیسی آنقدر زیاد هستن که شما برای راه اندازی هیچ سخت افزاری دچار مشکل نمیشوید

                          و من هم به همین شکل شروع کردم
                          یک پروژه رو بهانه قرار دادم و پیش رفتم
                          و رسیدم


                          مثلا خیلی ساده واسه این که بگم کریستالم 20 مگاهرتزه باید چی بنویسم
                          در کامپایلر های دیگر شما باید اسیلاتور خودتون رو معرفی کنید
                          تابه حال پرسیدین چرا ؟

                          یکی از مهم ترین دلایل , برای محاسبه تاخیرهای زمانی هست
                          مثلا شما میخواهید در بین برنامه یک ثانیه تاخیر ایجاد کنید
                          در این هنگام کامپایلر شما قبل از کامپایل میاد نگاه میکنه شما چه عددی رو برای اسیلاتور انتخاب کردین و بعد با چند محاسبه متوجه میشه که باید چند سیکل صبر کنه تا 1ثانیه تاخیر ایجاد بشه

                          در این کامپایلر قانون به این شکل نیست , این کامپایلر شما رو با سخت افزار درگیر میکنه و شما باید خودتون همیشه هواستون جمع باشه که در چه فرکانسی دارید کار میکنین تا هنگام ایجاد تاخیر خودتون تعداد سیکل هایی که باید صبر کنید رو محاسبه کنید و در برنامه قرار بدین

                          پس احتیاجی به تعریف اسیلاتور در ابتدای برنامه نیست


                          1:برای دسترسی به یه رجیستر فقط ذکر اسمش کافیه یا باید با فرمت خاصی نوشت تو mikroc فقط اسمشو میگفتیم
                          بله فقط اسم کاملش کافیه

                          2:واسه اینکه فقط یه بیت از رجیستر دسترسی داشته باشیم چطور مثلا تو mikroc : TMR2IE_bit
                          برای این کار باید ابتدا کلمه bits. را آورد و سپس نام آن بیت رو بنویسید
                          برای مثال اگر بخاهید پورت RB4 رو یک کنید:

                          PORTCbits.RC4


                          3:میشه این #pragma که اول باید بنوییسیم یه بار بگید کلا چند تان که اولش باید تعریف کنیم اخه طبق عادت mikroc خودش تنظیم میکرد زیاد با این فیوزبیتها سروکار نداشتم
                          بازم ممنونم از شما راستی من از کامپایلر mplabx ver1.00 استفاده میکنم
                          توضیحش مشکله , #pragma استفاده های مخطلفی داره
                          اما کاربرد این دستور در تنظیمات فیوز بیت ها ساده هست
                          همان طور که میدانید پروگرامر شما هنگام پروگرام کردن میکرو گزینه هایی برای تنظیم فیوز بیت ها دارد
                          این گزینه ها به صورت پیش فرض بر روی مقادیر خاسی در پروگرامر شما تنظیم شده است , خب این موضوع خیلی خوبه که بشه این پیش فرض ها رو تغییر داد و هنگام پروگرام کردن دیکر به تنظیمات نپردازیم و سریعا میکرو خودمون رو پروگرام کنیم

                          این امر به وسیله #pragma config انجام میشود
                          برای مثال :

                          #pragma config OSC = HS

                          نا امیدی یه دروغ بزرگه که آدما به خودشون میگن
                          تلاش یه حقیقت بزرگه که با صبر به ثمر میرسه

                          دیدگاه


                            #14
                            پاسخ : دوربین ov7670

                            ممنونم از توضیحات بسیار کاملتون :nerd:
                            پس بحث کامپایلر تمام شد
                            اقای ramezani.t میشه در مورد این میکرو که واسه این پروژه انتخاب کردم نظر بدید به نظر من که باید خوب باشه و اینکه یه رگولاتور 3.3 ولت داخلی داره
                            این دقیقا یعنی چی من اینقدی که از رگولاتور می دونم باید ولتاژی که بهش میدی بیشتر از خروجیش یعنی 3.3 باشه ولی محدوده ولتاژی این میکرو از 1.8
                            شروع میشه که از 3.3 کمتره
                            http://datasheet.octopart.com/PIC18F...t-10122143.pdf

                            دیدگاه


                              #15
                              پاسخ : دوربین ov7670

                              نوشته اصلی توسط saeidmo
                              با سلام خدمت شما این دوربین رو میتونید از کویرالکترونیک تهیه کنید که یکیش که بافر fifo داره 32500 و اونیکه fifo نداره 22500 . مثالهایی هم به همراه
                              دوربین ضمیمه شده که فکر می کنم بتونه کمک زیادی بهمون کنه.البته اقای طراح در تاپیک زیر این دوربین رو با سری xmega راه انداختن که شماتیک و کد اون
                              هم تواین صفحه هست پیشنهاذ میکنم حتما یه سر به این تاپیک بزنید چرا که خیلی از ابهامات رو بر طرف می کنه.
                              من فقط دو تا سوال مونده تو ذهنم
                              1.اولی این که تغذیه pic بر خلاف xmega . ولته5 و دوربین ماکزیمم 3.5 ولت رو میتونه تحمل کنه این مشکل رو چطوری باید حل کرد
                              2.باید روی پایه xclk کلاک 10 تا 24 مگاهرتز ایجاد کرد که چطوری میشه رو یه پایه این کارو کرد .
                              http://www.eca.ir/forum2/index.php?topic=45632.45
                              درباره سوال دومتون:
                              در مورد دوربین های که یک رم به شماره al422 روشون موجوده باید بگم که یه اسیلاتور 24مگاهرتز روی خود برد تعبیه شده.به عکس زیر توجه کنید.یه چیز فلزی کنار ماژول دوبین هست. همون اسیلاتور.به همین منظور اگه چندتا شکل پایین ترش رو نگاه کنید میبینید برا یکی از پایه ها نوشته xclk/nc که میتونه چیزی وصل نشه
                              http://www.emartee.com/product/42043/OV7670%20AL422%20FIFO%20Camera%20Module%20CF7670C% 20V2

                              و همچنین به جمله زیر توجه کنید
                              2、24MHZ active crystal oscillator, so it can work without external input XCLK signal

                              .در مورد اقای طراح که با xmega راه انداختن این دوربین رو باید بگم که ایشون از نوع بدون fifo استفاده کرده بودن و وظیفه xmega فقط تشخیص اینتراپت پایه vsync وسپس init کردن lcd بود. اگه دقت کنید میبینید خود پایه های دوربین رو مستقیم به دیتای lcd وصل کرده بودن و میکرو هیچ دخالتی نمیتونست روی دیتای خروجی دوربین داشته باشه.اونم به یه دلیل چون pio میکرو بیشتر از چند مگاهرتز رو نمیتونه تشخیص بده اما این در صورتی بود که سرعت ارسال اطلاعات توسط دوربین حداقل بشتر از 10 مگاهرتزه.
                              اما نوع fifo دار کاملا متفاوته شما در زمان اینتراپت vsync باید al422 رو فعال کنید تا اطلاعات روش نوشته بشه و سپس با زدن هر پالس روی wen اطلاعات رو به صورت اهسته تر بخونید که تقریبا در هر ثانیه یه یک یا دو تصویر میتونید اینجوری دریافت کنید و اطلاعات توسط میکرو هم قابل خوندن هست.

                              دیدگاه

                              لطفا صبر کنید...
                              X