İçindekiler:

Raspberry Pi Fotoğraf Kabini: 5 Adım
Raspberry Pi Fotoğraf Kabini: 5 Adım

Video: Raspberry Pi Fotoğraf Kabini: 5 Adım

Video: Raspberry Pi Fotoğraf Kabini: 5 Adım
Video: Raspberry Pi ile Kendi Akıllı Güvenlik Kameranızı Yapın! 2024, Aralık
Anonim
Ahududu Pi Fotoğraf Kabini
Ahududu Pi Fotoğraf Kabini

Amaç:

  • Pi Kamerayı nasıl kodlayacağınızı ve kuracağınızı öğrenin
  • Kodlamada define ve if ifadelerini kullanma
  • RGB LED'ler gibi yeni teknolojileri kullanmayı öğrenmek

Adım 1: Neye İhtiyacınız Olacak?

Neye ihtiyacınız olacak
Neye ihtiyacınız olacak
Neye ihtiyacınız olacak
Neye ihtiyacınız olacak
Neye ihtiyacınız olacak
Neye ihtiyacınız olacak
  • 1 Ahududu Pi 3
  • ekmek tahtası
  • Süveterler
  • 1 Işık Bağımlı Direnç
  • 1 Kapasitör
  • 1 Basma Düğmesi
  • 6 220 Ohm Dirençler
  • 2 RGB LED
  • 1 Ahududu Pi Kamera

Adım 2: Kamera Modülünü Bağlama

Kamera Modülünü Bağlama
Kamera Modülünü Bağlama

Her şeyden önce, Pi kapalıyken, Kamera Modülünü Raspberry Pi'nin kamera bağlantı noktasına bağlamanız, ardından Pi'yi başlatmanız ve yazılımın etkinleştirildiğinden emin olmanız gerekir.

  1. HDMI ve 3,5 mm bağlantı noktası arasındaki kamera bağlantı noktasını bulun
  2. Klip çapraz olana kadar kamera klipsini plastik kenarlarından yukarı çekin
  3. Şimdi kamera kablosunu mavi tarafı 3,5 mm bağlantı noktasına bakacak şekilde takın

3. Adım: Kamerayı Ayarlama

Kamerayı Ayarlama
Kamerayı Ayarlama
Kamerayı Ayarlama
Kamerayı Ayarlama

Ana menüden Raspberry Pi Yapılandırma aracını açın ve yukarıdaki tüm arayüzleri devre dışı bırakın ve etkinleştirin

Ana menüden Terminal'i açın ve aşağıdaki kod satırlarını yazın:

Sudo Raspi yapılandırması

Şimdi buradan ok tuşlarını kullanarak sistem üzerinden işlem yapın ve Periferik bağlantı seçeneğine tıklayın ve onlardan P1 Kamera'ya tıklayın ve kamerayı etkinleştirin, ardından bitir'i seçin. Aşağıdaki kod satırlarında terminal tipine geri dönersek:

pip kurulum picamera

veya Sudo pip Picamera'yı kurun

Adım 4: Kamera Modülünü Test Etme

Kamera Modülünü Test Etme
Kamera Modülünü Test Etme

Buradan, tüm yazılım ve donanımları etkinleştirdiğimiz için kameranın çalışıp çalışmadığını test edebiliriz.

Menüden Python 3'ü açın

Oradan kabuktan yeni bir dosya açın ve onu bir cameratest.py olarak kaydedin.

Aşağıdaki kodu girin:

picamera'dan import PiCamera #imported modülü pip install pi camera komutundan oluşturulan zamandan import sleep #imported uyku kameramızın kamerada kalmasını sağlamak için = PiCamera() #Kamera için kurulum

camera.start_preview()#kamerayı başlatır ve kamera çıktısının nasıl göründüğünü size gösterir

uyku(10)#önizlemeyi 10 saniye açık bırakır

camera.stop_preview()#sonunda önizlemeden çıkıyor

Kodu F5 ile çalıştırın

Kodu çalıştırırken bu hatayı alırsanız:

(mmal: mmal_vc_component_create: 'vc.ril.camera' bileşeni oluşturulamadı (1:ENOMEM)

mmal: mmal_component_create_core: 'vc.ril.camera' bileşeni oluşturulamadı (1) Geri İzleme (en son çağrı son): Dosya "", satır 1, Dosya "/usr/lib/python2.7/dist-packages/picamera /camera.py", satır 257, _init_ self._init_camera() Dosyasında "/usr/lib/python2.7/dist-packages/picamera/camera.py", satır 288, _init_camera önekinde="Kamera oluşturulamadı component") Dosya "/usr/lib/python2.7/dist-packages/picamera/exc.py", satır 112, mmal_check olarak yükselt PiCameraMMALError(status, prefix) picamera.exc. PiCameraMMALError: Kamera bileşeni oluşturulamadı: Out hafıza)

Lütfen Raspberry Pi yapılandırmasına gidin, performans sütununun altına gidin ve hata giderilene kadar GPU belleğinizi artırın (yeniden başlatmanız gerekir).

Şimdi masaüstüne kaydedilecek bir fotoğraf oluşturmak için aşağıdaki kodu kullanacağız:

picamera'dan içe aktar PiCamera #Pip install pi camera komutundan oluşturulan içe aktarılan modül, zaman içe aktar uyku #Kameramızın açık kalmasını sağlamak için içe aktarılan uyku

camera = PiCamera() #Kamera için kurulum

camera.start_preview() #Önizleme uykusunu başlatır(5)#Önizlemeyi 5 saniyeliğine açık bırakır

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

camera.stop_preview()#Önizlemeyi durdurur

Adım 5: Kodlu Devre Oluşturma

Kod ile Devre Oluşturma!
Kod ile Devre Oluşturma!
Kod ile Devre Oluşturma!
Kod ile Devre Oluşturma!
Kod ile Devre Oluşturma!
Kod ile Devre Oluşturma!

Yukarıdaki devre şemalarından da görüldüğü gibi bir buton, bir LDR ve son olarak iki RGB LED kurmamız gerekiyor. İlk olarak breadboard'un sol alt tarafında bulunan butonu ayarlayacağız. Düğme için kurulumunuz sırasında ortak demiryolu hatlarını kullanacağız, yani 3.3V'umuzu pozitif ve negatif için toprağa takacağız. Sadece buton için devre kurulumunu bitirdikten sonra.

Devremizi yapıp yapamayacağımızı görmek için devremizi test edeceğiz, böylece düğmeye basılırsa aşağıdaki kodu kullanarak led'i açarız:

#Imported Modules from gpiozero import Picamera'dan buton PiCamera'yı zamandan import uykudan içe aktar

#Kurmak

Kamera = PiCamera() Buton = Buton(22)

#Fotoğraf çekme işlevi, ana kodu temizlememize yardımcı olduğu için onu bir tanımlama işlevine koymaya karar verdim

def photocap():

Camera.start_preview()

uyku(5) Camera.capture('/home/pi/Desktop/image.jpg') yazdır ("Fotoğraf çekildi") Camera.stop_preview()

#Ana kod:

while True: Button.is_pressed ise: print ("Düğmeye basıldı") photocap()

#Neden bu işe yarıyor: Ana kod çalışıyor, yaptığımız tek şey if button.is_pressed a while true ifadesinde komutu kullanmak, böylece fotoğraf çekmek için düğmeye basıldığında sürekli güncelleniyor

Şimdi devrenin tepesine kadar 2 adet RGB LED kuracağız ve bunları devre tahtasının ortasında ayırıp simetrik hale getireceğiz. Bu proje için 220 ohm dirençleriniz yoksa sahip olduğunuz dirençler için direncinize göre paralel kurabilirsiniz. 4 pinli RGB LED'in ikinci pini (en uzun olanı demiryolu üzerinden toprağa bağlanmalıdır. Diğer pinlerin hepsi kendi GPIO pinlerine bağlanmalıdır. (Birinci pin =kırmızı, İkinci pin = toprak, Üçüncü Pin = yeşil), Dördüncü pim = mavi).

Buton devremizde RGB ledlerimizden birini aşağıdaki kod ile test edeceğiz:

#Imported Modules from gpiozero import PiCamera'dan import Button PiCamera

gpiozero'dan RGBLED'i içe aktar

zamandan içe uyku

#Kurmak

Kamera = PiCamera() Buton = Buton(22)

ZamanlıLED=RGBLED(kırmızı=21, yeşil=20, mavi=16)

#RGB LED ile fotoğraf çekme işlevi, ana kodu temizlememize yardımcı olduğu için onu tanımlama işlevine koymaya karar verdim

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

timedled.color(1, 0, 0)

uyku(2)

timedled.color(0, 1, 0)

uyku(1)

Camera.capture('/home/pi/Desktop/image.jpg') yazdır ("Fotoğraf çekildi") Camera.stop_preview()

#Ana kod:

Doğru iken:

Button.is_pressed ise:

print ("Düğmeye basıldı") photocap()

#Bu neden işe yarıyor: Bu kodun çalışmasının nedeni, artık RGBLED'in fotoğrafın ne zaman çekileceğine dair bir zamanlayıcı olarak çalışmasına sahip olmamızdır.

Şimdi, şemayı en üstte ve daha önce tartışılan ortak demiryollarını kullanarak devre tahtasının sağ alt tarafına Işık Bağımlı direncini kurun. LDR'nin her iki uzun ayağının ve kapisitatörün GPIO pinine bağlı olması gerektiğini unutmayın.

LDR'yi bağladıktan sonra aşağıdaki kodu kullanacağız:

#İthal Modüller

gpiozero'dan içe aktarma Düğmesi

picamera'dan PiCamera'yı gpiozero'dan içe aktar RGBLED'i içe aktar

gpiozero'dan LightSensor'ü içe aktarın

zamandan içe uyku

#Kurmak

Kamera = PiCamera() Buton = Buton(22) ZamanlıLED=RGBLED(kırmızı=21, yeşil=20, mavi=16)

LightSensor=Işık Sensörü(23)

#RGB LED ile fotoğraf çekme işlevi, ana kodu temizlememize yardımcı olduğu için onu tanımlama işlevine koymaya karar verdim

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') yazdır ("Fotoğraf çekildi") Camera.stop_preview()

#Ana kod:

Doğru iken:

if Button.is_pressed: print ("Düğmeye basıldı") photocap()

Button.is_pressed ve Lightsensor. When_dark ise:

yazdır ("Düğmeye Basıldı")

print("Karanlık")

fotoğraf kapağı()

#Neden bu işe yarıyor: Koduma Işık sensörünü ekleme yöntemim, ışık sensörünün içe aktarılan işlevini içeren başka bir if ifadesinden geçiyor. When dark bizi bir sonraki adımımız için mükemmel bir şekilde ayarlıyor

Şimdi bu projedeki son adım, diğer RGBLED'i diğerine simetrik olarak flaş ışığı olarak çalışacak şekilde etkinleştirmek olacaktır.

Son kod:

gpiozero'dan içe aktarma Düğmesi

picamera'dan içe aktarma PiCamera

gpiozero'dan RGBLED'i içe aktar

gpiozero'dan LightSensor'u içe aktarın

zamandan içe uyku

#Kurmak

Kamera = PiCamera()

Düğme = Düğme(22)

ZamanlıLED=RGBLED(kırmızı=21, yeşil=20, mavi=16)

FlaşLED=RGBLED(kırmızı=19, yeşil=13, mavi=6)

LightSensor=Işık Sensörü(23)

#RGB LED ile fotoğraf çekme işlevi, ana kodu temizlememize yardımcı olduğu için onu bir tanımlama işlevine koymaya karar verdim 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') print ("Fotoğraf çekildi") Camera.stop_preview() # Ana kod: True iken: Button.is_pressed ise:

yazdır ("Düğmeye basıldı")

fotoğraf kapağı()

Button.is_pressed ve Lightsensor. When_dark ise:

print ("Düğmeye Basıldı") print("Karanlık")

FlashLED.renk(1, 1, 1)

fotoğraf kapağı()

#Neden bu işe yarıyor: El Fenerimi ekleme şeklim, 1, 1, 1 olan beyaz rengin çıktısını almak için RGB ledini kullanmaktır ve bu sadece if ifadesi doğruysa bunu yapar.

Önerilen: