آموزش رسبری پای قسمت چهارم(راه اندازی دوربین ov5647 و نصب کتابخانه open cv به زبان c و پایتون)

به نام خدا و با سلام خدمت هموطنان گرامی

در این آموزش قصد دارم تجربیاتمو در خصوص راه اندازی دوربین و نصب کتابخونه opencv با شما به اشتراک بزارم.

در این اموزش من دوربین ov5647 استفاده کردم البته با وب کم هم میتونید به رسبری متصل بشید که اونم میگم خدمتتون.

مرحله اول :

پس از تهیه دوربین اون رو به صورت شکل زیر به رسبری پای متصل کنید :

لطفا به کانکتور دوربین و جهت فلت دوربین دقت کنید(اشتباهی دوربین رو به کانکتور lcd متصل نکنید)

پیشنهاد میکنم این آموزش رو هم حتما ببینید : آموزش ایجاد فایل پایتون در رسبری پای و بخش gpio 

قبل از شروع مراحل اصلی رسبری پای رو آپدیت کنید :

مرحله ۲ :نحوه نصب کتابخونه opencv:

قبل از این که کامند های راه اندازی روربین به زبان c رو بگم یه نکته رو باید بگم و اون اینه که باید این C Compiler Identification Is GNU 4.9.2 روی رسبری نصب باشه وگرنه بین راه موقع بیلد کردن با خطا ی کامند نات فاند مواجه میشید…

که برای نصبش هم حتما بخش کامپایل و پروژه به زبان سی و سی پلاس پلاس رو در آموزش قبل ببینید و تا پیشنیاز های کامپایل پروژه به زبان سی روی رسبریتون نصب بشه وهم قبلش کتابخونه opencv رو نصب کنید: 

اول از همه  camera  رو در رسبری مانند شکل زیر فعال کنید و رسبری رو ریبوت کنید!!

پس از بالا اومدن رسبری کامند زیر رو وارد کنید و اینتر بزنید و اگر سوالی پرسید y رو زده و اینتر کنید و صبر کنید تا نصب بشه :

نحوه نصب کتابخونه opencv:

 

اول از همه باید پیشنیازهای opencv رو نصب کنید :

حالا بعده اینکه دانلود کردید و کارایی که گفتم رو انجام دادید باید برید سراغ ترمینال رسبری پای و کامند های زیر رو به ترتیب وارد کنید:

طبق کد های بالا شما عملا qt  روهم نصب میکنید….

هر جا ازتون سوال پرسید y  و اینتر رو بزنید…

یکم زمان میبره(یکم که نه خیلی 🙄 ) نصبشون بنابراین صبر کنید ” البته میتونید تا زمانی که اون فایل زیپ اوپن سی وی دانلود بشه شما تا اینجا کاراتون رو انجام بدید)…

—حالا باید کتابخونه opencv رو دانلود و نصب کنید حدود ۷۰ مگابایت هستش میتونید مستقیم از ترمینال با کامند زیر دانلود کنید

wget https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.2.0/opencv-3.2.0.zip/download

 اما چون فیلتره این کار امکان پذیر نیست...!!!!!!

حالا کاری که من بهتون پیشنهاد میکنم استفاده از ف*ی*ل*ت*ر*ش*ک*ن هستش؛ به این صورت در محیط ویندوز میتونید از هات اسپات شیلد استفاده کنید و فایل رو دانلود کنید و پس از دانلود بریزید رو فلش و فایل رو با فلش به رسبری پای انتقال بدید و سپس در شاخه اصلی(home\pi) یه پوشه به اسم opencv_regular بسازید و  فایل زیپ کتابخونه رو در پوشه opencv_regular  کپی کنید.که من لینک دانلود فایل رو براتون قرار میدم شما اخرین ورژن رو دانلود کنید(ورژن ما ۳٫۲٫۰ ) :

https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/

حالا نوبت به کامپایل کتابخونه opencv میرسه که با کامند های زیر این کارو انجام بدید :

اول باید اون رو از حالت زیپ خارج کنید با کامند های زیر انجام میدیدم ضمن اینکه اینجا ما از ورژن ۳٫۲٫۰ این کتابخونه استفاده کردیم.

در کامند های بالا بعده اینکه دستور make رو زدین کلی طول میکشه( حدود ۵ ساعت) تا کتابخونه بیلد شه

نکته : اگر در اجرای هر دستوری در ترمینال  به شما ارور پرمیژن هارو داد قبله دستور sudo اضافه کنید

“اگر تحت هر شرایطی این ورژن برای شما بیلد نشد ورژن های دیگرو تست کنید بالاخره درست میشه سر این مطلب و نصب این کتابخونه نابود شدم 😡 ”

پس از اینکه عملیات بیلد تموم شد کامند های زیر را به ترتیب وارد کنید :

پس از وارد کردن کامند دوم یه فایل باز میشه که باید کد زیر رو در اون تایپ کنید و در نهایتctrl+x بزنید و سپس y و در اخر اینتر رو بزنید تا برگردید به محیط ترمینال و کامند زیر رو وارد کنید:

پس از وارد کردن کامند دوم یه فایل باز میشه که برید به ته مطلب و  نوشته زیر رو باید در اون کپی کنید :

و سپس ctrl+x و y و اینتر رو که بزنید وارد محیط ترمینال میشید

و حالا دستور زیر رو تایپ کنید و اینتر کنید :

تا اینجا اگر کار بدون خطا دنبال شده میشه گفت opencv نصب و بیلد شده حالا باید یه سمپلی یه نمونه کد اجرا کنید ببنید کار میکنه…

که دستورات زیر رو به ترتیب تایپ کنید :

توجه : به علامت  دقت کنید این سینگل کوتیشن نیستا!!!!!!!!!!

در اینجا سمپل بدون اررو کامپایل میشه…

و برای اجرای سمپل فیس دیتکت هم کد زیر رو بکوبید تو ترمینال 😉

، اگر تنظیمات دوربین اوکی و نصب باشه چهرتون شناسایی خواهد شد  اگرم گفت دوربین بالا نمیاد در ادامه اموزش ( مرحله ۳ در خدمت شما هستم تا دوربینو راه بندازیم)

اگر خطا داد که کمرا دیدنت ورک و… کد زیر رو تو ترمینال بزنید و دوباره کامپایل کنید و اجرا کنید:

من تو سمپلهای اوپن سی وی سمپل فیس دیتکت رو اجرا کردم(بعده یه هفته سروکله زدن )و بالاخره اجرا شد هر چی هم بود گذاشتم تا استفاده کنید،موفق باشید)

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

برای نصب opencv از این منبع و این منبع هم میتونید استفاده کنید …

مرحله ۳ : نصب کتابخانه و گرفتن عکس توسط دوربین و ذخیره آن به زبان سی 

برای نصب کتابخانه ابتدا باید آن را از این لینک دانلود کنید و در پوشه download قرار دهید ما در اینجا از ورژن

raspicam-0.1.6.zip

استفاده کرده ایم.

پکیج cmake را با دستور زیر نصب کنید :

 

پس از اینکه فایل زیپ را دانلود کردید و در پوشه دانلود قرار گرفت ترمینال را باز کنید و کامند های زیر را به ترتیب تایپ کنید:

 

بعده اینکه خط آخر رو وارد کردید دوربین پس از گذشت زمان ۳ ثانیه عکس رو میگیره و در پوشه camera و بعد در پوشه build ذخیره میکنه میتونید برید و ببینید اگر ترمینال رو نبندید  برای گرفتن دوباره عکس میتونید دوباره خط آخر رو بزنید تا عکس جدید جایگزین عکس قبلی بشه…

اگر میبینید که عکس رنگ های واقعی نداره یا … برید به ادامه مطلب و raspistill  رو اجرا کنید … درست میشه…

برای دیدن آموزش تصویری این مبحث در آپارات به این لینک مراجعه کنید…

 

  • راه اندازی وبکم با رسبری پای و گرفتن عکس و فیلم توسط نرم افزار

ابتدا با تایپ کامند زیر نرم افزار رو نصب کنید البته قبلش میتونید یه lsusb بزنید تا ببینید ایا وب کم شناسایی میشه یا نه…

برای اجرای نرم افزار هم در ترمینال تایپ کنید guvcview  ، در این حالت اگر وبکم متصل نباشد با ارور پیدانشدن وبکم مواجه می شوید و اگر متصل باشد نرم افزار guvcview باز می شود.

 

  • راه اندازی دوربین و گرفتن عکس و فیلم به زبان پایتون

همونطور که میدونید دوربین رسبری پای باید ENABLE باشه

ابتدا با کامند زیر کتابخونه رو نصب کنید

 

  1. گرفتن عکس به زبان پایتون

یه فایل تکست ایجاد کنید و اون رو باپسوند py. ذخیره کنید و سپس کد زیر رو کپی کنید و و کد رو ران کنید(اموزششو تو پست های قبل اموزش رسبری پای دادم)

 

 

۲٫گرفتن فیلم به زبان پایتون

منبع 

  • راه اندازی دوربین و گرفتن عکس و فیلم با ابزار raspistill
  1. نحوه گرفتن عکس در رسبری پای

یکی از ابزارهای کامند لاین برای گرفتن عکس raspistill می باشد، برای استفاده از این ابزار در خط فرمان دستور را به ترتیب زیر وارد کنید:

با اجرای این دستور دوربین روشن شده و یک عکس در شاخه ای که دستور در آن وارد شده به نام img.jpg ذخیره می شود.

ابزار raspistill سوئیچ های زیادی دارد که در زیر تعدادی از آنها را معرفی می کنم.

اگر بخواهید به عکس گرفته شده طول و عرض اضافه کنید با سوئیچ h و w طول و عرض عکس را مشخص کنید:

کیفیت عکس را می توانید با سوئیچ q تعیین کنید که مقداری بین ۰ تا ۱۰۰ می‌گیرد:

در مثال های بالا تمامی عکس ها پس از ۵ ثانیه گرفته می شوند اما می توانید این زمان را با سوئیچ t تغییر دهید و مقدار دلخواه خود را قرار دهید. این سوئیچ مقدار را به میلی‌ثانیه دریافت می کند:

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

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

  ۲٫نحوه گرفتن فیلم در رسبری پای

برای فیلم برداری می‌توانید از ابزار raspivid استفاده کنید. دستور زیر یک فیلم ۵ ثانیه ای می گیرد:

برای تنظیم زمان از سوئیچ t استفاده کنید که مقدار را به میلی ثانیه دریافت می کند. اگه تمایل داشته باشید که دوربین دائما روشن باشد کافیست مقدار t را ۰ تنظیم کنید.

اگر تصویر شما برعکس بود نسبت به کابل دوربین، میتوانید توسط سوئیچ های hf- یا vf- آن را ۱۸۰ درچه چرخش دهنید.

سوالی بود در قسمت نظرات بپرسید!!!!!

شاد و سربلند باشید….

 

 

mehdi sehati

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

مطالب مرتبط

guest

2 نظرات
Inline Feedbacks
View all comments
مسعود امیری
مسعود امیری
4 years ago

با سلام و تشکر از مطلب بسیار خوبی که گذاشتید انصافا خیلی دنبالش بودم مدتیه یه سوال داشتم من میخواستم دوربین رو پس از زدن یک کلید برای چند ثانیه فعال کنم که تصویر آنلاین همزمان فرستاده بشه به یه رزبری دیگه از طریق wifi(تو فاصله کم و بدون نیاز به روتر) و طرف رزبری گیرنده اون رو نشون بده همچنین صدا هم ارتباط دوطرفه برقرار کنن به نظرتون شدنیه ؟

2
0
Would love your thoughts, please comment.x