اتصال ماژول Pi Camera به رزبری‌پای (پایتون)

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

ماژول Pi Camera را می‌توان با استفاده از یک کابل ریبون ۱۵ پینه به پورت CSI رزبری‌پای متصل کرد.

ارتباط ماژول Pi Camera با رزبری‌پای با استفاده از پایتون

ویژگی‌های Pi Camera

در این مثال ما یک pi camera نسخه ۱.۳ داریم که ویژگی‌های آن در زیر لیست شده است.

  • وضوح تصویر: ۵ مگاپیکسل
  • ضبط ویدئوی HD ،1080p @30fps ،720p @60fps ،960p @45fps و …
  • می‌تواند عکس‌های عریض (wide)، still (بدون حرکت) با رزولوشن ۱۹۴۴*۲۵۹۲ پیکسل بگیرد.
  • ارتباط CSI فعال دارد.

چگونه Pi Camera را به رزبری‌پای وصل کنیم؟

Pi Camera را به صورت زیر به رابط CSI بورد رزبری‌پای متصل کنید.

ارتباط ماژول Pi Camera با رزبری‌پای با استفاده از پایتون

ارتباط ماژول Pi Camera با رزبری‌پای با استفاده از پایتون

اکنون، می‌توان از Pi Camera برای گرفتن عکس و ویدئو از طریق رزبری‌پای استفاده کرد.

پیش از استفاده از دوربین، باید آن را فعال کنیم.

نحوه‌ی فعال‌سازی قابلیت دوربین روی رزبری‌پای

برای فعال‌سازی دوربین روی رزبری‌پای، با استفاده از دستور زیر صفحه‌ی پیکربندی رزبری‌پای را باز کنید.

sudo raspi-config

سپس گزینه‌ی Interfacing Options را انتخاب کنید و در آن گزینه‌ی camera را برای فعال‌سازی قابلیت دوربین انتخاب کنید.

رزبری‌پای را مجدداً راه‌اندازی کنید.

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

حال می‌توان در رزبری‌پای به دوربین دسترسی داشت و می‌توانیم با استفاده از 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 استفاده می‌شود.

مطلب پیشنهادی:  معرفی Tinker Board شرکت ASUS (مشابه رزبری پای)

مثال

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

این تابع ضبط ویدئو و ذخیره آن را آغاز می‌کند.

مطلب پیشنهادی:  دسترسی به ورودی و خروجی‌های همه منظوره رزبری‌پای - Raspberry Pi GPIO

مثال

Camera.start_recording(‘demo.h264’)

در این مثال یک ویدئو با نام demo و فرمت h264 شروع می‌شود.

wait_recording(timeout)

اینکدر ویدئو را به مدت timeout ثانیه متوقف می‌کند.

مثال

Camera.wait_recording(60)

()stop_recording

این تابع برای پایان ضبط ویدئو به کار می‌رود.

مثال

Camera.stop_recording()

پخش ویدئوی ضبط شده

برای باز کردن ویدئو، می‌توان از omxplayer با استفاده از کد زیر بهره گرفت.

omxplayer video_name

امیدواریم آموزش «اتصال ماژول Pi Camera به رزبری‌پای (پایتون)» براتون مفید واقع شده باشه.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

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

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