ماژول Pi Camera دوربینی است که برای عکسبرداری و ضبط ویدئوهای با کیفیت به کار میرود. بورد رزبریپای دارای یک رابط CSI (رابط سریال دوربین) میباشد که میتوان ماژول Pi Camera را مستقیما به آن وصل کرد.
ماژول Pi Camera را میتوان با استفاده از یک کابل ریبون ۱۵ پینه به پورت CSI رزبریپای متصل کرد.

ویژگیهای Pi Camera
در این مثال ما یک pi camera نسخه ۱.۳ داریم که ویژگیهای آن در زیر لیست شده است.
- وضوح تصویر: ۵ مگاپیکسل
- ضبط ویدئوی HD ،1080p @30fps ،720p @60fps ،960p @45fps و …
- میتواند عکسهای عریض (wide)، still (بدون حرکت) با رزولوشن ۱۹۴۴*۲۵۹۲ پیکسل بگیرد.
- ارتباط CSI فعال دارد.
چگونه Pi Camera را به رزبریپای وصل کنیم؟
Pi Camera را به صورت زیر به رابط CSI بورد رزبریپای متصل کنید.


اکنون، میتوان از Pi Camera برای گرفتن عکس و ویدئو از طریق رزبریپای استفاده کرد.
پیش از استفاده از دوربین، باید آن را فعال کنیم.
نحوهی فعالسازی قابلیت دوربین روی رزبریپای
برای فعالسازی دوربین روی رزبریپای، با استفاده از دستور زیر صفحهی پیکربندی رزبریپای را باز کنید.
sudo raspi-config
سپس گزینهی Interfacing Options را انتخاب کنید و در آن گزینهی camera را برای فعالسازی قابلیت دوربین انتخاب کنید.
رزبریپای را مجدداً راهاندازی کنید.
حال میتوان در رزبریپای به دوربین دسترسی داشت و میتوانیم با استفاده از Pi Camera روی رزبریپای عکس و ویدئو بگیریم.
مثال
گرفتن عکس و ذخیره آن در پوشه معین.
با استفاده از پایتون میتوانیم عکس بگیریم. در اینجا، یک برنامه پایتون برای گرفتن عکس با استفاده از Pi Camera مینویسیم. در این برنامه، از پکیج (کتابخانه) picamera استفاده کردهایم که کلاسهای مختلفی برای رزبریپای گردآوری کرده است. از بین آنها ما به کلاس PiCamera که مخصوص ماژول دوربین است علاقهمند هستیم.
برنامهی پایتون برای گرفتن عکس
'''
capture images on Raspberry Pi using Pi Camera
http://www.electronicwings.com
'''
import picamera
from time import sleep
#create object for PiCamera class
camera = picamera.PiCamera()
#set resolution
camera.resolution = (1024, 768)
camera.brightness = 60
camera.start_preview()
#add text on image
camera.annotate_text = 'Hi Pi User'
sleep(5)
#store image
camera.capture('image1.jpeg')
camera.stop_preview()
توابع به کار رفته
برای استفاده از کتابخانهی پایتون picamera، باید آن را به برنامهی خود ضمیمه کنیم.
import picamera
کتابخانهی picamera، کلاس PiCamera را برای ماژول دوربین دربردارد. بنابراین، باید یک شی از کلاس PiCamera ایجاد کنیم.
کلاس PiCamera
برای استفاده از Pi Camera در پایتون، باید از کلاس PiCamera استفاده کنیم که APIهای مختلفی برای قابلیت دوربین فراهم آورده است. باید یک شی از این کلاس ایجاد کنیم.
مثال
Camera = picamera.PiCamera()
()Capture
این تابع برای گرفتن عکس با Pi Camera استفاده میشود.
مثال
Camera.capture(“/home/pi/image.jpeg”)
تابع ()capture پارامترهای مختلفی مانند resize ،format ،use_video_port و… دارد که برای عملیاتهای مختلفی استفاده میشوند.
مثال
Camera.capture(“/home/pi/image.jpeg”, resize=(720, 480))
Resolution=(width,height)
رزولوشنی که دوربین با آن عکس گرفته و ویدئو ذخیره کرده و پیشنمایشها نمایش داده میشوند را مشخص میکند. رزولوشن به صورت یک تاپل (width و height)، یک رشته به فرمت WIDTHxHEIGHT یا یک رشته دارای عبارات متداول رزولوشن تصویر، مانند «HD» ،«VGA» ،«1080p» و … تعیین میگردد.
مثال
Camera.resolution = (720, 480) Camera.resolution = “720 x 480” Camera.resolution = “720p” Camera.resolution = “HD”
”Annotate_text = “Text
برای اضافه کردن متن به تصویر، ویدئو و … استفاده میشود.
مثال
Camera.annotate_text = “Hi Pi User”
()start_preview
این تابع پیشنمایش پیشفرض یا با رزولوشن مشخص را نمایش میدهد.
مثال
Camera.start_preview()
()stop_preview
برای بستن پیشنمایش به کار میرود.
مثال
Camera.stop_preview()
نکته: APIهای مختلفی برای کلاس PiCamera موجود است. برای اطلاعات بیشتر میتوانید به APIهای PiCamera رجوع کنید.
برنامهی پایتون برای ضبط ویدئو
'''
Record video on Raspberry Pi using pi Camera
http://www.electronicwings.com
'''
import picamera
from time import sleep
camera = picamera.PiCamera()
camera.resolution = (640, 480)
print()
#start recording using pi camera
camera.start_recording("/home/pi/demo.h264")
#wait for video to record
camera.wait_recording(20)
#stop recording
camera.stop_recording()
camera.close()
print("video recording stopped")
توابع به کاررفته
باید یک شی از کلاس PiCamera ایجاد کنیم. در اینجا، یک شی با نام camera ایجاد کردهایم.
()start_recording
این تابع ضبط ویدئو و ذخیره آن را آغاز میکند.
مثال
Camera.start_recording(‘demo.h264’)
در این مثال یک ویدئو با نام demo و فرمت h264 شروع میشود.
wait_recording(timeout)
اینکدر ویدئو را به مدت timeout ثانیه متوقف میکند.
مثال
Camera.wait_recording(60)
()stop_recording
این تابع برای پایان ضبط ویدئو به کار میرود.
مثال
Camera.stop_recording()
پخش ویدئوی ضبط شده
برای باز کردن ویدئو، میتوان از omxplayer با استفاده از کد زیر بهره گرفت.
omxplayer video_name
- منبع: ترجمه از سایت electronicwings.com
امیدواریم آموزش «اتصال ماژول Pi Camera به رزبریپای (پایتون)» براتون مفید واقع شده باشه.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
آموزش طراحی و ساخت پروژه های الکترونیک و برنامه نویسی میکروکنترلر ها آموزش الکترونیک,آموزش رزبری پای,آموزش راه اندازی ماژول و سنسور,آموزش آردوینو,نرم افزار های الکترونیک, طراحیPCB,برنامه نویسی میکروکنترلرها ARM AVR PIC FPGA