فهرست مطالب:

رزبری پای Photobooth: 5 مرحله
رزبری پای Photobooth: 5 مرحله

تصویری: رزبری پای Photobooth: 5 مرحله

تصویری: رزبری پای Photobooth: 5 مرحله
تصویری: آنباکسینگ رزبری پای ۵ و مقایسه با رزبری پای ۴ 2024, نوامبر
Anonim
رزبری پای Photobooth
رزبری پای Photobooth

هدف:

  • نحوه کدگذاری و نصب دوربین Pi را بیاموزید
  • استفاده از دستورات if و if در برنامه نویسی
  • آموزش استفاده از فناوری جدید مانند LED های RGB

مرحله 1: آنچه شما نیاز دارید

آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
آنچه شما نیاز خواهید داشت
  • 1 تمشک پای 3
  • تخته نان
  • پرش کننده ها
  • 1 مقاومت وابسته به نور
  • 1 خازن
  • 1 دکمه فشاری
  • 6 مقاومت 220 اهم
  • 2 عدد LED RGB
  • 1 دوربین رزبری پای

مرحله 2: اتصال ماژول دوربین

اتصال ماژول دوربین
اتصال ماژول دوربین

اول از همه ، با خاموش بودن Pi ، باید ماژول دوربین را به پورت دوربین رزبری پای وصل کنید ، سپس Pi را راه اندازی کنید و از فعال بودن نرم افزار اطمینان حاصل کنید.

  1. پورت دوربین را که بین پورت HDMI و 3.5 میلی متر قرار دارد ، تعیین کنید
  2. گیره دوربین را با لبه های پلاستیکی به سمت بالا بکشید تا گیره مورب شود
  3. حالا کابل دوربین ها را با آبی رو به درگاه 3.5 میلی متری وارد کنید

مرحله 3: تنظیم دوربین

راه اندازی دوربین
راه اندازی دوربین
راه اندازی دوربین
راه اندازی دوربین

ابزار پیکربندی Raspberry Pi را از منوی اصلی باز کرده و همه رابط های فوق را غیرفعال و فعال کنید

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

Sudo Raspi-config

حالا از اینجا از کلیدهای جهت دار خود برای کار در سیستم استفاده کنید و بر روی گزینه Peripheral connection و از روی آنها روی P1 Camera و فعال کردن دوربین کلیک کنید ، سپس پایان را انتخاب کنید. بازگشت به نوع ترمینال در خطوط زیر کد:

pip نصب picamera

یا Sudo pip Picamera را نصب کنید

مرحله 4: آزمایش ماژول دوربین

تست ماژول دوربین
تست ماژول دوربین

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

پایتون 3 را از منو باز کنید

از آنجا یک فایل جدید از پوسته باز کرده و آن را در یک cameratest.py ذخیره کنید.

کد زیر را وارد کنید:

از واردات picamera PiCamera #ماژول وارداتی ایجاد شده از پیپ نصب فرمان دوربین pi از زمان وارد کردن خواب #خواب وارد شده به منظور اطمینان از اینکه دوربین ما روی دوربین می ماند = PiCamera () #تنظیم برای دوربین

camera.start_preview ()#دوربین را راه اندازی می کند و به شما نشان می دهد که خروجی دوربین چگونه است

خواب (10)#پیش نمایش را به مدت 10 ثانیه روشن می گذارد

camera.stop_preview ()#سرانجام پیش نمایش را ترک می کند

کد را توسط F5 اجرا کنید

اگر هنگام اجرای کد این خطا را دریافت کردید:

(mmal: mmal_vc_component_create: ایجاد مولفه 'vc.ril.camera' (1: ENOMEM) انجام نشد

mmal: mmal_component_create_core: نمی توانم جزء 'vc.ril.camera' (1) Traceback (آخرین تماس اخیر) ایجاد شود: فایل "" ، خط 1 ، در پرونده "/usr/lib/python2.7/dist-packages/picamera /camera.py "، خط 257 ، در _init_ self._init_camera () فایل" /usr/lib/python2.7/dist-packages/picamera/camera.py "، خط 288 ، در _init_camera prefix =" دوربین ایجاد نشد جزء ") فایل" /usr/lib/python2.7/dist-packages/picamera/exc.py "، خط 112 ، در mmal_check PiCameraMMALError (status، prefix) picamera.exc.picamera.exc. PiCameraMMALE خطا: ایجاد کامپوننت دوربین انجام نشد: خارج از حافظه)

لطفاً به پیکربندی Raspberry Pi بروید و زیر ستون عملکرد بروید و حافظه GPU خود را تقویت کنید تا خطا برطرف شود (باید راه اندازی مجدد شود).

اکنون برای ایجاد یک عکس که در دسکتاپ ذخیره می شود ، از کد زیر استفاده می کنیم:

از واردات picamera PiCamera #ماژول وارداتی ایجاد شده از پیپ نصب فرمان دوربین pi از زمان وارد کردن خواب #خواب وارد شده به منظور اطمینان از روشن ماندن دوربین ما

camera = PiCamera () #تنظیم برای دوربین

camera.start_preview () #پیش نمایش را شروع می کند (5) #پیش نمایش را 5 ثانیه روشن می گذارد

camera.capture ('/home/pi/Desktop/image.jpg')# از

camera.stop_preview ()#پیش نمایش را متوقف می کند

مرحله 5: ایجاد مدار با کد

ایجاد مدار با کد!
ایجاد مدار با کد!
ایجاد مدار با کد!
ایجاد مدار با کد!
ایجاد مدار با کد!
ایجاد مدار با کد!

همانطور که در نمودارهای مدار بالا مشاهده شد ، ما باید یک دکمه ، LDR و در نهایت دو LED RGB را تنظیم کنیم. ابتدا ما می خواهیم دکمه را در سمت چپ پایین صفحه برش تنظیم کنیم. در هنگام تنظیم دکمه ما از خطوط راه آهن متداول استفاده می کنیم به این معنی که 3.3 ولت خود را به صورت مثبت و زمین را به سمت منفی وصل می کنیم. پس از اتمام تنظیمات مدار فقط برای دکمه.

ما مدار خود را آزمایش می کنیم تا ببینیم آیا می توانیم آن را به گونه ای تنظیم کنیم که اگر دکمه را فشار دادیم با استفاده از کد زیر led را روشن کنیم:

#ماژول های وارد شده از دکمه واردات gpiozero از picamera وارد PiCamera از زمان وارد کردن خواب خواب

#برپایی

دوربین = PiCamera () دکمه = دکمه (22)

تابع #عکاسی ، تصمیم گرفتم آن را در یک تابع تعریف قرار دهم زیرا به ما کمک می کند کد اصلی را پاک کنیم

def photocap ():

Camera.start_preview ()

خواب (5) Camera.capture ('/home/pi/Desktop/image.jpg') چاپ ("عکس گرفته شد") Camera.stop_preview ()

#کد اصلی:

while True: if Button.is_pressed: print ("Button was pressed") photocap ()

#چرا این کار می کند: کد اصلی کار می کند ، تنها کاری که ما انجام می دهیم این است که از دستور if استفاده می کنیم. در حالی که عبارت true را فشرده می کند ، هنگامی که دکمه برای گرفتن عکس فشار داده می شود ، دائماً به روز می شود

حالا ما قصد داریم 2 LED RGB را تا انتهای مدار نصب کنیم و آنها را در وسط تخته نان جدا کرده و متقارن کنیم. اگر مقاومت 220 اهم برای این پروژه ندارید ، بسته به مقاومت خود برای مقاومت هایی که دارید ، می توانید آنها را به طور موازی تنظیم کنید. پین دوم از LED RGB 4 پین (طولانی ترین باید از طریق راه آهن به زمین متصل شود. سایر پین ها همه باید به پین GPIO خود متصل شوند. (پین اول = قرمز ، پین دوم = زمین ، پین سوم = سبز ، پین چهارم = آبی).

ما یکی از LED های RGB خود را در مدار دکمه خود با کد زیر آزمایش می کنیم:

#ماژول های وارد شده از دکمه واردات gpiozero از واردات picamera PiCamera

از واردات gpiozero RGBLED

از زمان وارد کردن خواب

#برپایی

دوربین = PiCamera () دکمه = دکمه (22)

زمان بندی LED = RGBLED (قرمز = 21 ، سبز = 20 ، آبی = 16)

#عکاسی با عملکرد RGB LED ، تصمیم گرفتم آن را در یک تابع تعریف قرار دهم زیرا به ما کمک می کند کد اصلی را پاک کنیم

def photocap (): Camera.start_preview () sleep (4)

timedled.color (1 ، 0 ، 0)

خواب (2)

timedled.color (0 ، 1 ، 0)

خواب (1)

چاپ Camera.capture ('/home/pi/Desktop/image.jpg') ("عکس گرفته شد") Camera.stop_preview ()

#کد اصلی:

در حالی که True:

if Button.is_pressed:

چاپ ("دکمه فشار داده شد") فتوکپ ()

#چرا این کار می کند: دلیل کار این کد این است که در حال حاضر ما RGBLED را به عنوان یک زمان سنج برای زمانی که قرار است عکس گرفته شود کار کنیم

اکنون مقاومت وابسته به نور را در سمت راست پایین صفحه تختخواب با استفاده از نمودار تا انتها و راه آهن های رایج که قبلاً مورد بحث قرار گرفت ، نصب کنید. به یاد داشته باشید که هر دو پایه بلند LDR و کاپیتیکاتور باید به پین GPIO متصل شوند.

پس از اتصال LDR ، از کد زیر استفاده می کنیم:

#ماژول های وارداتی

از دکمه واردات gpiozero

از picamera import PiCamera از gpiozero import RGBLED

از gpiozero import LightSensor

از زمان وارد کردن خواب

#برپایی

دوربین = PiCamera () دکمه = دکمه (22) زمان بندی LED = RGBLED (قرمز = 21 ، سبز = 20 ، آبی = 16)

LightSensor = LightSensor (23)

#عکاسی با عملکرد RGB LED ، تصمیم گرفتم آن را در یک تابع تعریف قرار دهم زیرا به ما کمک می کند کد اصلی را پاک کنیم

def photocap (): Camera.start_preview () sleep (4) timedled.color (1، 0، 0) sleep (2) timedled.color (0، 1، 0) sleep (1) Camera.capture ('/home/ pi/Desktop/image-j.webp

#کد اصلی:

در حالی که True:

if Button.is_pressed: چاپ ("دکمه فشار داده شد") photocap ()

if Button.is_pressed و Lightsensor.when_dark:

چاپ ("دکمه فشار داده شد")

چاپ ("تاریک است")

فتوکپ ()

#چرا این کار می کند: روشی که من سنسور نور را به کد خود اضافه کرده ام از طریق عبارت if دیگری است که شامل عملکرد وارد شده سنسور نور است. هنگام تاریکی ما را برای مرحله بعدی خود کاملاً تنظیم می کند

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

کد نهایی:

از دکمه واردات gpiozero

از واردات picamera PiCamera

از واردات gpiozero RGBLED

از gpiozero import LightSensor

از زمان وارد کردن خواب

#برپایی

دوربین = PiCamera ()

دکمه = دکمه (22)

زمان بندی LED = RGBLED (قرمز = 21 ، سبز = 20 ، آبی = 16)

FlashLED = RGBLED (قرمز = 19 ، سبز = 13 ، آبی = 6)

LightSensor = LightSensor (23)

#عکاسی با عملکرد RGB LED ، تصمیم گرفتم آن را در یک تابع تعریف قرار دهم زیرا به ما کمک می کند کد اصلی def photocap () را تمیز کنیم: Camera.start_preview () sleep (4) timedled.color (1، 0، 0) sleep (2) timedled.color (0، 1، 0) sleep (1) Camera.capture ('/home/pi/Desktop/image.jpg') چاپ ("عکس گرفته شد") Camera.stop_preview () # کد اصلی: while True: if Button.is_pressed:

چاپ ("دکمه فشار داده شد")

فتوکپ ()

if Button.is_pressed و Lightsensor.when_dark:

چاپ ("دکمه فشار داده شد") چاپ ("تاریک است")

FlashLED.color (1 ، 1 ، 1)

فتوکپ ()

#چرا این کار می کند: روشی که من چراغ قوه خود را اضافه کرده ام با استفاده از RGB منجر به خروج رنگ سفید 1 ، 1 ، 1 می شود و تنها در صورت صحت عبارت if عمل می کند.

توصیه شده: