Mündəricat:
- Addım 1: Nə lazımdır
- Addım 2: Kamera Modulunun qoşulması
- Addım 3: Kameranın qurulması
- Addım 4: Kamera Modulunun sınanması
- Addım 5: Kodla Dövrə Yarat
Video: Raspberry Pi Photobooth: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Məqsəd:
- Pi Kameranı kodlaşdırmağı və quraşdırmağı öyrənin
- Kodlaşdırmada defin və if ifadələrinin istifadəsi
- RGB LED kimi yeni texnologiyadan istifadə etməyi öyrənmək
Addım 1: Nə lazımdır
- 1 Moruq Pi 3
- Çörək lövhəsi
- Tullananlar
- 1 İşıqdan Rezistor
- 1 kondansatör
- 1 Düymə
- 6 220 Ohm müqavimət
- 2 RGB LED
- 1 Raspberry Pi Kamera
Addım 2: Kamera Modulunun qoşulması
Hər şeydən əvvəl, Pi söndürüldükdə, Kamera Modulunu Raspberry Pi -nin kamera portuna bağlamalı, sonra Pi -ni işə salmalı və proqramın aktiv olmasını təmin etməlisiniz.
- HDMI və 3.5 mm port arasında olan kamera portunu tapın
- Klip diaqonal olana qədər kamera kənarını plastik kənarlardan yuxarı çəkin
- İndi 3,5 mm porta baxan mavi rəngli kamera kabelini daxil edin
Addım 3: Kameranın qurulması
Əsas menyudan Raspberry Pi Konfiqurasiya alətini açın və yuxarıdakı bütün interfeysləri deaktiv edin
Əsas menyudan Terminalı açın və aşağıdakı kod sətirlərini daxil edin:
Sudo Raspi-konfiqurasiya
İndi buradan sistem vasitəsilə işləmək üçün ox düymələrinizdən istifadə edin və Periferik bağlantı seçiminə, P1 Kameraya klikləyib kameranı işə salın və sonra bitirmə seçin. Aşağıdakı kod sətirlərində terminal növünə qayıdın:
pip picamera quraşdırın
və ya Sudo pip Picamera qurun
Addım 4: Kamera Modulunun sınanması
Buradan kameranın işlədiyini yoxlaya bilərik, çünki bütün proqram və avadanlıqlar aktivdir.
Menyudan Python 3 -ü açın
Oradan qabıqdan yeni bir fayl açın və cameratest.py -də qeyd edin.
Aşağıdakı kodu daxil edin:
picamera idxalından PiCamera #, idxal edilmiş modul, pip quraşdırma pi kamera əmrindən yaradılmışdır, zaman idxal yuxu #idxal edilmiş yuxu, kameramızın kamerada qalmasını təmin etmək üçün = PiCamera () #Kamera üçün qurulma
camera.start_preview ()#kameranı işə salır və kamera çıxışının necə göründüyünü göstərir
yuxu (10)#önizləməni 10 saniyə ərzində buraxır
camera.stop_preview ()#nəhayət önizləmədən çıxır
Kodu F5 ilə işləyin
Kodu işləyərkən bu xətanı alırsınızsa:
(mmal: mmal_vc_component_create: 'vc.ril.camera' komponenti yaradıla bilmədi (1: ENOMEM)
mmal: mmal_component_create_core: 'vc.ril.camera' komponentini yarada bilmədi (1) İzləmə (ən son zəng): Fayl "", satır 1, Faylda "/usr/lib/python2.7/dist-packages/picamera /camera.py ", satır 257, _init_ self._init_camera () Dosyası" /usr/lib/python2.7/dist-packages/picamera/camera.py ", sətir 288, _init_camera prefiksində =" Kamera yaradıla bilmədi ") Fayl" /usr/lib/python2.7/dist-packages/picamera/exc.py ", 112-ci sətir, mmal_check-də PiCameraMMALError (status, prefiks) picamera.exc. PiCameraMMALError qaldırın: Kamera komponenti yaradıla bilmədi: Çıxdı yaddaş)
Zəhmət olmasa Raspberry Pi konfiqurasiyasına gedin, performans sütununun altına keçin və səhv yox olana qədər GPU yaddaşınızı artırın (yenidən başlamalısınız).
İndi masaüstündə saxlayacaq bir şəkil yaratmaq üçün aşağıdakı kodu istifadə edəcəyik:
picamera idxalından PiCamera #Kameranın işlədiyindən əmin olmaq üçün pip import pi kamera əmrindən yaradılan idxal modulu vaxt idxal yuxudan #İdxal yuxu.
kamera = PiCamera () #Kamera üçün quraşdırma
camera.start_preview () #Önizləmələri yuxuya qoyur (5) #Önizləməni 5 saniyə ərzində tərk edir
camera.capture ('/home/pi/Desktop/image.jpg')#
camera.stop_preview ()#Önizləməni dayandırır
Addım 5: Kodla Dövrə Yarat
Yuxarıdakı sxemlərdən göründüyü kimi bir düymə, bir LDR və nəhayət iki RGB LED qurmalıyıq. Əvvəlcə çörək panelinin sol alt hissəsindəki düyməni quracağıq. Düyməni qurarkən, ümumi dəmir yolu xətlərindən istifadə edəcəyik, yəni 3.3V -ni pozitivə və mənfi tərəfə bağlayacağıq. Yalnız düymə üçün dövrə qurulmasını bitirdikdən sonra.
Dövrümüzü sınayacağıq ki, edə bilərikmi yoxlamaq üçün düyməyə basıldıqda aşağıdakı kodu istifadə edərək farı yandırırıq:
#İdxal Modulları gpiozero idxalından Picamera idxalından Buton idxal PiCamera zaman idxal yuxudan.
#Qurmaq
Kamera = PiCamera () Button = Button (22)
#Şəkil çəkmə funksiyası, əsas kodu təmizləməyimizə kömək etdiyi üçün onu müəyyən edilmiş bir funksiyaya qoymağa qərar verdim
def photocap ():
Camera.start_preview ()
yuxu (5) Camera.capture ('/home/pi/Desktop/image.jpg') çap ("Foto çəkildi") Camera.stop_preview ()
#Ana kod:
while True: əgər Button.is_pressed: print ("Button basıldı") photocap ()
#Niyə bu işləyir: Əsas kod, bir anda doğru ifadədə button.is_pressed if əmrini istifadə etdiyimiz üçün işləyir, buna görə də şəkil çəkmək üçün düyməyə basıldıqda daim yenilənir.
İndi 2 RGB LED -lərini bütün dövrə qədər qurub çörək taxtasının ortasında ayırıb simmetrik edəcəyik. Bu layihə üçün 220 ohm rezistorunuz yoxdursa, malik olduğunuz rezistorlar üçün müqavimətinizdən asılı olaraq onları paralel olaraq qura bilərsiniz. 4 pinli RGB LED -in ikinci pimi (ən uzun olanı dəmir yolu ilə yerə bağlanmalıdır. Digər pinlərin hamısı öz GPIO pinlərinə bağlanmalıdır. (Birinci pin = qırmızı, İkinci pin = torpaq, Üçüncü Pin = yaşıl), Dördüncü pin = mavi).
Aşağıdakı kodla düymə dövrəmizdə RGB LED -lərimizdən birini sınayacağıq:
#İdxal Modullar gpiozero idxalından PiCamera picamera idxalından Button
gpiozero idxalından RGBLED
vaxtdan idxal yuxu
#Qurmaq
Kamera = PiCamera () Button = Button (22)
Zamanlı LED = RGBLED (qırmızı = 21, yaşıl = 20, mavi = 16)
#RGB LED ilə şəkil çəkmə funksiyası, əsas kodu təmizləməyimizə kömək etdiyi üçün onu müəyyən edilmiş bir funksiyaya qoymağa qərar verdim.
def photocap (): Camera.start_preview () yuxu (4)
timedled.color (1, 0, 0)
yatmaq (2)
timedled.color (0, 1, 0)
yuxu (1)
Camera.capture ('/home/pi/Desktop/image.jpg') çap ("Foto çəkildi") Camera.stop_preview ()
#Ana kod:
Doğru halda:
əgər Button.is_pressed:
çap ("Button basıldı") photocap ()
#Niyə bu işləyir: Bu kodun işləməsinin səbəbi, indi RGBLED -in fotoşəkilin nə vaxt çəkiləcəyi üçün bir taymer kimi işləməyimizdir.
İndi yuxarıdakı diaqramı və əvvəllər müzakirə olunan ümumi dəmir yollarını istifadə edərək, çörək bişirmə panelinin sağ alt tərəfindəki İşıqdan asılı rezistoru qurun. Unutmayın ki, həm LDR -nin uzun ayaqları, həm də kapitator GPIO pininə bağlanmalıdır.
LDR -ni bağladıqdan sonra aşağıdakı kodu istifadə edəcəyik:
#İdxal Modulları
gpiozero idxal düyməsindən
picamera idxalından PiCamera gpiozero idxalından RGBLED
LightSensor gpiozero idxalından
vaxtdan idxal yuxu
#Qurmaq
Kamera = PiCamera () Button = Button (22) ZamanlıLED = RGBLED (qırmızı = 21, yaşıl = 20, mavi = 16)
LightSensor = LightSensor (23)
#RGB LED ilə şəkil çəkmə funksiyası, əsas kodu təmizləməyimizə kömək etdiyi üçün onu müəyyən edilmiş bir funksiyaya qoymağa qərar verdim.
def photocap (): Camera.start_preview () yuxu (4) timedled.color (1, 0, 0) yuxu (2) timedled.color (0, 1, 0) yuxu (1) Camera.capture ('/ev/ pi/Masaüstü/image-j.webp
#Ana kod:
Doğru halda:
if Button.is_pressed: print ("Button basıldı") photocap ()
əgər Button.is_pressed və Lightsensor.when_dark:
çap et ("Düymə Basıldı")
çap et ("Qaranlıqdır")
fotokapı ()
#Niyə bu işləyir: İşıq sensoru koduma əlavə etməyimin yolu, idxal olunan işıq sensoru funksiyasını ehtiva edən başqa bir ifadədən keçməkdir.
İndi bu layihənin həyata keçirilməsinin son addımı digər RGBLED -in digərinə fənər kimi işləməsi üçün aktivləşdirilməsi olacaq.
Son kod:
gpiozero idxal düyməsindən
picamera idxalından PiCamera
gpiozero idxalından RGBLED
LightSensor gpiozero idxalından
vaxtdan idxal yuxu
#Qurmaq
Kamera = PiCamera ()
Düymə = Düymə (22)
Zamanlı LED = RGBLED (qırmızı = 21, yaşıl = 20, mavi = 16)
FlashLED = RGBLED (qırmızı = 19, yaşıl = 13, mavi = 6)
LightSensor = LightSensor (23)
#RGB LED ilə fotoşəkil çəkmə funksiyası, əsas kodu def photocap (): Camera.start_preview () yuxu (4) timedled.color (1, 0, 0) yuxu (2) timedled.color (0, 1, 0) yuxu (1) Camera.capture ('/home/pi/Desktop/image.jpg') çap ("Foto çəkildi") Camera.stop_preview () # Əsas kod: True isə: Button.is_pressed:
çap et ("Düymə basıldı")
fotokapı ()
əgər Button.is_pressed və Lightsensor.when_dark:
çap et ("Düymə Basıldı") çap et ("Qaranlıqdır")
FlashLED.rəng (1, 1, 1)
fotokapı ()
#Niyə bu işləyir: Fənərimi əlavə etməyimin yolu RGB -dən istifadə etməklə ağ rəngin 1, 1, 1 olduğunu göstərdi və yalnız if ifadəsinin doğru olduğu halda bunu edir.
Tövsiyə:
Arduino Uno ilə Akustik Levitasiya Addım-addım (8 addım): 8 addım
Arduino Uno ilə Akustik Levitasiya Adım Adım (8 addım): ultrasəs səs ötürücüləri L298N Dc dişi qadın adapteri kişi dc pinli Arduino UNOBreadboard Bu necə işləyir: Əvvəlcə Arduino Uno-ya kod yükləyirsiniz (rəqəmsal ilə təchiz edilmiş bir mikro nəzarətçidir) və kodu çevirmək üçün analog portlar (C ++)
Raspberry Pi PhotoBooth: HTML5 və NodeJS: 4 addım
Raspberry Pi PhotoBooth: HTML5 və NodeJS: Canlı önizləmə və xüsusi sərhədləri olan bir HTML5 və NodeJS photobooth. Bu layihə qızımın məktəb rəqsi üçün qurduğum bir şey kimi başladı. Onun və dostlarının hadisəni xatırlaması üçün əyləncəli bir şey istədim (sonuncu dəfə xatırlayacaqlar
Toy / Tədbir Photobooth: 6 Addım (Şəkillərlə birlikdə)
Toy / Hadisə Photobooth: Hər kəsə salam, mən keçən il evləndim, D gününə hazırlaşmaq istəyərkən bir çox toy məclislərinə getdik. bir toy üçün əla bir fikir idi, hər qonaq
Avtomatik Photobooth: 4 Addım (Şəkillərlə birlikdə)
Avtomatlaşdırılmış Photobooth: Bu, moruq pi, ultrasəs məsafə sensoru və bir neçə digər aksesuardan istifadə edərək avtomatlaşdırılmış foto köşkünün necə hazırlanacağını göstərəcək. Həm mürəkkəb aparat, həm də inkişaf etmiş bir proqramdan istifadə edən bir layihə etmək istədim. Araşdırıram
DIY Photobooth: 7 Adım (Şəkillərlə birlikdə)
DIY Photobooth: Bu, dünyanın hər yerində ticarət mərkəzlərində, əyləncə parklarında və alış -veriş mərkəzlərində görünən ənənəvi fotoşəkillər kimi öz fotobutunuzu necə quracağınıza dair bir dərsdir. Bu kabinə tamamilə rəqəmsaldır və evdə etmək daha ucuzdur/daha asandır. Yazıram