دوربین رزبری پای یک ماژول کوچک است که میتوان آن را به رزبری پای وصل و برای تصویربرداری استفاده کرد. در مجموع سه نسخه از این دوربین وجود دارد که در سالهای ۲۰۱۳، ۲۰۱۶ و ۲۰۲۳ معرفی شدهاند. در این مقاله ما آموزش راهاندازی دوربین رزبری پای و تصویربرداری با استفاده از ترمینال یا یک برنامه پایتون را برایتان آماده کردهایم.
معرفی دوربین رزبری پای
تا به حال سه نسخه از دوربین رزبری پای توسط رزبری پای به بازار عرضه شده است؛ اولین نسخه از این دوربین در سال ۲۰۱۳ معرفی شد که یک مدل ۵ مگاپیکسلی بود. نسخه دوم دوربین رزبری پای یک مدل ۸ مگاپیکسلی بود که در سال ۲۰۱۶ معرفی شد و آخرین نسخه از این دوربین یک مدل ۱۲ مگاپیکسلی است که در سال ۲۰۲۳ معرفی شده است. با معرفی سومین نسخه از دوربین رزبری پای، نسخه اول این دوربین از رده خارج شد.
تمام این دوربینها دارای مدلهای نور مرئی و مادون قرمز هستند؛ درحالیکه نسخه سوم این دوربین دارای دوربین استاندارد و Wide است و در مجموع چهار دوربین مختلف را شامل میشود.
نسخه اول این دوربین دارای سنسور ۵ مگاپیکسلی OmniVision OV5647 و نسخه دوم آن دارای سنسور ۸ مگاپیکسلی Sony IMX219 بود. آخرین ورژن دوربین رزبری پای دارای سنسور ۱۲ مگاپیکسلی Sony IMX708 است. دوربین رزبری پای ۳ دارای قابلیت فوکوس خودکار هم هست.
رزولوشن تصویر گرفتهشده توسط دوربینهای رزبری پای به بردی که استفاده میکنید بستگی دارد. این دوربینها از رزولوشن و افپیاس 1080p30، 720p60 و VGA90 پشتیبانی میکنند. ما در ادامه این مقاله آموزش راهاندازی دوربین رزبری پای مدل دوم را با استفاده از کد پایتون برایتان فراهم کردهایم.
خرید ماژول دوربین رزبری پای ۵ مگا پیکسل
راه اندازی دوربین رزبری پای: اتصال به برد رزبری پای
- برق برد رزبری پای را قطع کنید.
- لبههای گیره پلاستیکی برد رزبری پای را بالا بکشید.
- کابلهای دوربین را به پورت Camera در رزبری پای متصل کنید. این پورت بین پورت HDMI و اترنت قرار دارد. کابل را طوری متصل کنید که کانتکتهای نقرهای آن به سمت پورت HDMI باشد. بخش فلزی کابل باید به سمت پورت دوربین برد باشد.
- گیره برد را به آرامی به سمت داخل فشار دهید. با این کار از خارج شدن دوربین در صورت کشیدهشدن کابل جلوگیری میکنید.
الان که دوربین به برد متصل شده است، رزبری پای را تنظیم میکنیم تا بتواند با دوربین ارتباط برقرار کند.
نکته: با توجه به مدل دوربین، ممکن است پلاستیکی آبیرنگ روی لنز دوربین قرار داشته باشد که فقط وظیفه محافظت از آن را دارد. این پلاستیک را از روی لنز بردارید.
کنترل دوربین رزبری پای
- رزبری پای خود را راهاندازی کنید.
- نرمافزار Raspberry Pi Configuration از منوی استارت یا کامند لاین باز کنید. این ابزار زیرمجموعه تب Preferences در منوی استارت است.
همچنین میتوانید از کد زیر برای اجرای آن از طریق کامند لاین استفاده کنید.
sudo raspi-config - سپس گزینه Interfaces را انتخاب کنید؛ گزینه دوربین به صورت پیشفرض غیرفعال است، آن را فعال کنید.
- پس از آن رزبری پای را ریستارت کنید.
راه دیگر کنترل دوربین رزبری پای، استفاده از پایتون و کتابخانه picamera است. میتوانید از ماژول picamera و تابع Pi Camera برای کنترل دوربین خود با پایتون استفاده کنید؛ برای این کار از کد پایتون زیر استفاده کنید:
1 2 3 |
from picamera import PiCamera camera = PiCamera() |
برای ارسال دادهها و اطلاعات به رزبری پای، دستور
1 |
camera.start_preview() |
را اضافه کنید. اگر پیشنمایشی که دریافت کردید برعکس است، با دستور camera.rotation = 180 این مشکل را حل کنید. مقدار دادهشده به این دستور متغیر است، درنتیجه میتوانید پیشنمایشتان را تنظیم کنید. این کار ممکن است نتیجه نهایی را عوض کند و عکستان را خراب کند.
گرفتن عکس با دوربین رزبری پای
راحتترین راه برای گرفتن عکس با این دوربین، استفاده از ترمینال است. ترمینال را باز کرده و کد زیر را ران کنید:
1 |
raspistill -o home/pi/image.jpg |
دستور raspistill پس از گذشت پنج ثانیه از رانشدن کد، عکس میگیرد. مکان ذخیرهسازی عکس و نام آن باید در کد نوشته شود، درغیر اینصورت کد کار نمیکند. درنتیجه اگر میخواهید عکستان با نامی غیر از image و در مکانی غیر از home و فولدر pi ذخیره شود، این مقدارها را در کد تغییر دهید.
گرفتن عکس با دوربین رزبری پای با پایتون
اگر میخواهید با استفاده از پایتون از دوربین رزبری پای خود استفاده کنید و عکس بگیرید، تصویرتان با عکس گرفتهشده عوض خواهد شد؛ از Ctrl + Z برای خارجشدن از این صفحه استفاده کنید.
درنهایت برای گرفتن عکس با استفاده از پایتون، از دستور
1 2 3 4 5 6 7 8 9 10 11 |
camera.capture('path/path/desiredfilename.jpg') و کد زیر استفاده کنید. camera.start_preview() time.sleep(5) camera.capture('/home/pi/Desktop/image.jpg') camera.stop_preview() |
برای ذخیره عکس با نام متفاوت و در مسیری دیگر، این مقدارها را به دلخواه خود در کد عوض کنید.
میتوانید مقدار ماژول time را هم عوض کنید؛ ما این دستور را به کد پایتون اضافه کردیم تا همانند ترمینال، پنج ثانیه بعد از اجرای کد عکس گرفته شود. همواره دستور camera.stop_preview() را در آخر کد خود و پس از تنظیم دوربین اضافه کنید.
برای خرید ماژول دوربین در انواع مختلف با قیمت مناسب کلیک کنید.
ضبط ویدیو با دوربین رزبری پای
برای ضبط ویدیو با استفاده از ترمینال از دستور raspivid و کد زیر استفاده کنید:
1 |
raspivid -o home/pi/video.h264 |
همانند گرفتن عکس با ترمینال، اگر نام ویدیو و مسیر ذخیره را در کد ننویسید، کدتان کار نمیکند. این کد یک ویدیوی پنجثانیهای را ضبط خواهد کرد.
همچنین میتوانید رزولوشن تصویر یا ویدیوی خود را در ترمینال با استفاده از کدهای زیر تعیین کنید.
1 |
raspistill -o home/pi/image.jpg -w 1024 -h 768 |
1 |
raspivid -o home/pi/video.h264 -w 1024 -h 768 |
ضبط ویدیو با دوربین رزبری پای با استفاده از پایتون
روش ضبط ویدیو با پایتون، مشابه روش گرفتن عکس است. دستورهای start و stop ابتدا و انتهای کد در هردو یکسان هستند. شما فقط باید دستور camera.capture را با camera.start_recording(‘path/path/desiredfilename.h264’) جابهجا کنید. همچنین باید دستور camera.stop_recording() را هم اضافه کنید.
با استفاده از کد زیر، یک ویدیو پنجثانیهای با دوربین رزبری پای و با استفاده از پایتون ضبط کنید.
1 2 3 4 5 6 7 8 9 |
camera.start_preview() camera.start_recording('path/path/desiredfilename.h264') time.sleep(5) camera.stop_recording() camera.stop_preview() |
تغییر تنظیمات عکس و اضافه کردن افکت در دوربین رزبری پای
با استفاده از picamera در پایتون، میتوانید ظاهر عکسهایتان را عوض کنید و به آنها افکت اضافه کنید.
توجه: برخی از تنظیمات فقط روی پیشنمایش تاثیر میگذارند و تاثیری در عکس گرفتهشده ندارند؛ برخی از تنظیمات هم عکس گرفتهشده را تغییر میدهند و تاثیری روی پیشنمایش نمیگذارند.
تعیین رزولوشن عکس
شما میتوانید رزولوشن عکس گرفتهشده را عوض کنید. رزلوشن عکسها و ویدیوها به صورت پیشفرض برابر رزولوشن صفحه نمایشتان است. حداکثر رزولوشن برای عکسها ۲۵۹۲*۱۹۴۴ و برای ویدیوها ۱۹۲۰*۱۰۸۰ است. حداقل رزولوشن برای گرفتن عکس، ۶۴*۶۴ است.
با استفاده از کد زیر یک عکس با رزولوشن ماکسیمم بگیرید؛ برای این کار مقدار فریمریت را باید به ۱۵ تنظیم کنید.
1 2 3 4 5 6 7 8 9 10 11 |
camera.resolution = (2592, 1944) camera.framerate = 15 camera.start_preview() sleep(5) camera.capture('/home/pi/Desktop/max.jpg') camera.stop_preview() |
میتوانید با تغییر مقادیر دستور camera.resolution، رزولوشن عکس خود را عوض کنید. برای ضبط ویدیو با رزولوشن دلخواه هم از همین روش و کدهای ضبط ویدیو استفاده کنید.
اضافه کردن متن به تصویر
با استفاده از دستور annotate_text میتوانید یک متن دلخواه به تصویر خود اضافه کنید. برای این کار، کد زیر را اجرا کنید.
1 2 3 4 5 6 7 8 9 |
camera.start_preview() camera.annotate_text = "Hello world!" sleep(5) camera.capture('/home/pi/Desktop/text.jpg') camera.stop_preview() |
برای تغییر متن اضافهشده و اضافه کردن متن دلخواهتان، مقدار دستور camera.annonate_text را عوض کنید.
تغییر ظاهر متن اضافهشده به تصویر
با استفاه از دستور زیر میتوانید اندازه متن اضافهشده را تغییر دهید.
1 |
camera.annotate_text_size = 50 |
شما میتوانید سایز متن را بین ۰ تا ۱۶۰ تعیین کنید؛ اندازه پیشفرض در رزبری پای، ۳۲ است.
امکان تغییر رنگ متن اضافهشده هم وجود دارد. برای این کار، ابتدا Color را به لاین import خود در ابتدای کد اضافه کنید.
from picamera import PiCamera, Color
سپس میتوانید به شکل زیر، کد خود را بنویسید و رنگ متنتان را به دلخواه تغییر دهید.
1 2 3 4 5 6 7 8 9 10 11 |
camera.start_preview() camera.annotate_background = Color('blue') camera.annotate_foreground = Color('yellow') camera.annotate_text = " Hello world " sleep(5) camera.stop_preview() |
تغییر میزان روشنایی پیشنمایش
شما میتوانید میزان روشنایی پیشنمایش را تغییر دهید؛ روشنایی پیشفرض ۵۰ است، شما میتوانید آن را به مقداری بین ۰ تا ۱۰۰ تغییر دهید. از کد زیر برای این کار استفاده کنید.
1 2 3 4 5 6 7 8 9 |
camera.start_preview() camera.brightness = 70 sleep(5) camera.capture('/home/pi/Desktop/bright.jpg') camera.stop_preview() |
در این کد، میزان روشنایی به ۷۰ تنظیم شده است. با کد لوپ زیر میتوانید روشنایی را تنظیم کرده و یک متن برای نشاندادن میزان روشنایی به تصویر پیشنمایش اضافه کنید.
1 2 3 4 5 6 7 8 9 10 11 |
camera.start_preview() for i in range(100): camera.annotate_text = "Brightness: %s" % i camera.brightness = i sleep(0.1) camera.stop_preview() |
تغییر کنتراست پیشنمایش
مشابه با تغییر روشنایی، میتوانید کنتراست تصویر پیشنمایش را هم عوض کنید. از کد زیر برای این کار استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 |
camera.start_preview() for i in range(100): camera.annotate_text = "Contrast: %s" % i camera.contrast = i sleep(0.1) camera.stop_preview() |
اضافه کردن افکتهای مختلف به تصویر
با دستور camera.image_effect میتوانید افکتهای مختلفی را به تصویر گرفتهشده اضافه کنید.
لیست افکتهای موجود:
- none
- negative
- solarize
- sketch
- denoise
- emboss
- oilpaint
- hatch
- gpen
- pastel
- watercolor
- film
- blur
- saturation
- colorswap
- washedout
- posterise
- colorpoint
- colorbalance
- cartoon
- deinterlace1
- deinterlace2
افکت پیشفرض، none است. یک افکت را انتخاب کنید و با کد زیر آن را به عکستان اضافه کنید.
شما میتوانی برای خرید انواع کانکتور و سوکت کلیک کنید.
1 2 3 4 5 6 7 8 9 |
camera.start_preview() camera.image_effect = 'colorswap' sleep(5) camera.capture('/home/pi/Desktop/colorswap.jpg') camera.stop_preview() |
با استفاده از کد زیر میتوانید تمام افکتها را بهترتیب به عکستان اضافه کنید. هر پنجثانیه یک افکت به عکس اضافه میشود.
1 2 3 4 5 6 7 8 9 10 11 |
camera.start_preview() for effect in camera.IMAGE_EFFECTS: camera.image_effect = effect camera.annotate_text = "Effect: %s" % effect sleep(5) camera.stop_preview() |
تغییر نوردهی تصویر
با دستور camera.exposure_mode میتوانید اکسپوژر تصویر را عوض کنید.
لیست حالتهای نوردهی موجود:
- off
- auto
- night
- nightpreview
- backlight
- spotlight
- sports
- snow
- beach
- verylong
- fixedfps
- antishake
- fireworks
حالت پیشفرض، auto است.
یک حالت را انتخاب کرده و با کد زیر آن را امتحان کنید.
1 2 3 4 5 6 7 8 9 |
camera.start_preview() camera.exposure_mode = 'beach' sleep(5) camera.capture('/home/pi/Desktop/beach.jpg') camera.stop_preview() |
با دستور camera.EXPOSURE_MODES میتوانید تمام حالتهای نوردهی را مشابه افکتها، لوپ کنید.
تغییر تراز سفیدی عکسها
با دستور camera.awb_mode میتوانید تراز سفیدی عکسهایتان را عوض کنید.
حالتهای تراز سفیدی موجود:
- off
- auto
- sunlight
- cloudy
- shade
- tungsten
- fluorescent
- incandescent
- flash
- horizon
حالت پیشفرض، auto است.
یک حالت را انتخاب و با کد زیر آن را امتحان کنید.
1 2 3 4 5 6 7 8 9 |
camera.start_preview() camera.awb_mode = 'sunlight' sleep(5) camera.capture('/home/pi/Desktop/sunlight.jpg') camera.stop_preview() |
این حالتها را هم مشابه افکت و اکسپوژر، میتوانید لوپ کنید. برای این کار از دستور camera.AWB_MODES استفاده کنید.
جمعبندی: راه اندازی دوربین رزبری پای
دوربین رزبری پای یک ابزار بسیار کاربردی برای تصویربرداری و ضبط ویدیو با استفاده از رزبری پای است. راهاندازی و استفاده از آن بسیار آسان است و شما پس از خواندن این مقاله میتوانید بهراحتی از این ابزار استفاده کنید. با آموزشهایی که در این مقاله ارائه شد، میتوانید از دوربین رزبری پای در تمام پروژههای خود استفاده کنید.
برای خرید قطعات الکترونیکی میتوانید به فروشگاه جمترونیک مراجعه کنید.