(İmaj kredisi: Tom’un Donanımı)
Picamera2 Python modülünü kullanarak Raspberry Pi 5’in çift kamera konnektörleri sayesinde aynı anda iki görüntü çekebiliyoruz. Temel olarak Python kodunda her kamerayı kontrol etmek için kullandığımız iki nesne yaratıyoruz. Daha sonra her kameraya başlamasını, bir önizleme penceresi yüklemesini, bir çekimi çerçevelememiz için bize zaman vermesini söylüyoruz, ardından kamera görüntüleri JPEG formatında yakalıyor. Daha sonra kameralarla olan bağlantıyı kapatıyoruz ve önizleme pencerelerini kapatıyoruz.
1. Ana menüden Programlama >> Thonny’yi seçin.
2. Boş belgede Python kodunun iki modülünü içe aktarın. Bunlardan ilki Python ile kameralar arasındaki arayüzümüz olan Picamera2’dir. Ayrıca, görüntü çekilmeden önce çekimin ön izlemesini yapmak için kullanılan Önizleme işlevini de içe aktarıyoruz. İkinci modül ise zamandır, özellikle de kodu duraklatmak için kullanılan uyku fonksiyonudur.
from picamera2 import Picamera2, Preview
from time import sleep
3. İki kamerayı temsil eden iki nesne oluşturun. İlki picam0’dır. Picamera2 fonksiyonunu 0 argümanıyla çağırmak, kamera konnektörünü CAM0’a kullanmak istediğimizi belirtir. İkinci nesne picam1’dir ve CAM1’e bağlı kamerayı kullanır.
picam0 = Picamera2(0)
picam1 = Picamera2(1)
4. Nesneleri kullanarak her kamera için bir önizleme penceresi başlatın.
picam0.start_preview(Preview.QTGL)
picam1.start_preview(Preview.QTGL)
5. Kameraları başlatın. Bu, kameradan canlı yayın göstermek için önizleme pencerelerini tetikleyecektir.
picam0.start()
picam1.start()
6. Kodu on saniye duraklatın. Bu bize kamera çekimlerini çerçevelemek için zaman kazandırır. Biraz daha zamana ihtiyacınız varsa bunu daha yüksek bir değerle değiştirin.
sleep(10)
7. Her kameradaki görüntüleri bir JPEG görüntüsüne yakalayın.
picam0.capture_file("cam0.jpg")
picam1.capture_file("cam1.jpg")
8. Kameraları durdurun.
picam0.stop()
picam1.stop()
9. Önizleme pencerelerini kapatın.
picam0.stop_preview()
picam1.stop_preview()
Tam Kod Listesi: Python ile Çift Kameralar
from picamera2 import Picamera2, Preview
from time import sleep
picam0 = Picamera2(0)
picam1 = Picamera2(1)
picam0.start_preview(Preview.QTGL)
picam1.start_preview(Preview.QTGL)
picam0.start()
picam1.start()
sleep(10)
picam0.capture_file("cam0.jpg")
picam1.capture_file("cam1.jpg")
picam0.stop()
picam1.stop()
picam0.stop_preview()
picam1.stop_preview()