You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/tr/4-manufacturing/lessons/2-check-fruit-from-device/pi-camera.md

8.2 KiB

Bir görüntü yakalama - Raspberry Pi

Bu dersin bu bölümünde, Raspberry Pi'nize bir kamera sensörü ekleyecek ve ondan görüntü okuyacaksınız.

Donanım

Raspberry Pi'nin bir kameraya ihtiyacı var.

Kullanacağınız kamera Raspberry Pi Kamera Modülü. Bu kamera, Raspberry Pi ile çalışmak üzere tasarlanmıştır ve Pi üzerinde özel bir konektör aracılığıyla bağlanır.

💁 Bu kamera, Mobil Endüstri İşlemci Arayüzü İttifakı tarafından geliştirilen bir protokol olan Kamera Seri Arayüzü (MIPI-CSI) kullanır. Bu, görüntüleri göndermek için özel bir protokoldür.

Kamerayı bağlama

Kamera, Raspberry Pi'ye bir şerit kablo kullanılarak bağlanabilir.

Görev - kamerayı bağlama

Bir Raspberry Pi Kamera

  1. Pi'yi kapatın.

  2. Kamerayla birlikte gelen şerit kabloyu kameraya bağlayın. Bunu yapmak için, tutucudaki siyah plastik klipsi hafifçe çekerek biraz dışarı çıkarın, ardından kabloyu sokete kaydırın. Mavi taraf lensin dışına, metal pin şeritleri lensin içine bakacak şekilde yerleştirin. Kablo tamamen yerleştirildikten sonra siyah plastik klipsi tekrar yerine itin.

    Klipsi nasıl açacağınızı ve kabloyu nasıl yerleştireceğinizi gösteren bir animasyonu Raspberry Pi Kamera Modülü ile Başlangıç Belgelerinde bulabilirsiniz.

    Şerit kablo kamera modülüne yerleştirilmiş

  3. Grove Base Hat'ı Pi'den çıkarın.

  4. Şerit kabloyu Grove Base Hat'taki kamera yuvasından geçirin. Kablonun mavi tarafının A0, A1 gibi analog portlara doğru baktığından emin olun.

    Şerit kablo Grove Base Hat'tan geçiyor

  5. Şerit kabloyu Pi üzerindeki kamera portuna yerleştirin. Yine siyah plastik klipsi yukarı çekin, kabloyu yerleştirin ve klipsi tekrar yerine itin. Kablonun mavi tarafı USB ve ethernet portlarına doğru bakmalıdır.

    Şerit kablo Pi üzerindeki kamera soketine bağlı

  6. Grove Base Hat'ı tekrar takın.

Kamerayı programlama

Raspberry Pi artık PiCamera Python kütüphanesini kullanarak kamerayı programlamak için hazır.

Görev - eski kamera modunu etkinleştirme

Ne yazık ki, Raspberry Pi OS Bullseye sürümüyle birlikte işletim sistemiyle gelen kamera yazılımı değişti ve varsayılan olarak PiCamera artık çalışmıyor. Bunun yerine PiCamera2 adlı bir alternatif geliştiriliyor, ancak henüz kullanıma hazır değil.

Şimdilik, PiCamera'nın çalışmasına izin vermek için Pi'nizi eski kamera moduna ayarlayabilirsiniz. Kamera soketi varsayılan olarak devre dışıdır, ancak eski kamera yazılımını açmak soketi otomatik olarak etkinleştirir.

  1. Pi'yi açın ve başlatılmasını bekleyin.

  2. VS Code'u doğrudan Pi üzerinde veya Remote SSH uzantısı aracılığıyla bağlanarak başlatın.

  3. Terminalden aşağıdaki komutları çalıştırın:

    sudo raspi-config nonint do_legacy 0
    sudo reboot
    

    Bu, eski kamera yazılımını etkinleştirmek için bir ayarı değiştirecek ve ardından bu ayarın etkili olması için Pi'yi yeniden başlatacaktır.

  4. Pi'nin yeniden başlatılmasını bekleyin ve ardından VS Code'u tekrar başlatın.

Görev - kamerayı programlama

Cihazı programlayın.

  1. Terminalden, pi kullanıcısının ana dizininde fruit-quality-detector adlı yeni bir klasör oluşturun. Bu klasörde app.py adlı bir dosya oluşturun.

  2. Bu klasörü VS Code'da açın.

  3. Kamera ile etkileşim kurmak için PiCamera Python kütüphanesini kullanabilirsiniz. Bunun için aşağıdaki komutla Pip paketini yükleyin:

    pip3 install picamera
    
  4. app.py dosyanıza aşağıdaki kodu ekleyin:

    import io
    import time
    from picamera import PiCamera
    

    Bu kod, PiCamera kütüphanesi dahil olmak üzere gerekli bazı kütüphaneleri içe aktarır.

  5. Kamerayı başlatmak için aşağıdaki kodu ekleyin:

    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.rotation = 0
    
    time.sleep(2)
    

    Bu kod, bir PiCamera nesnesi oluşturur ve çözünürlüğü 640x480 olarak ayarlar. Daha yüksek çözünürlükler desteklenir (3280x2464'e kadar), ancak görüntü sınıflandırıcı çok daha küçük görüntülerde (227x227) çalıştığı için daha büyük görüntüleri yakalamaya ve göndermeye gerek yoktur.

    camera.rotation = 0 satırı görüntünün dönüşünü ayarlar. Şerit kablo kameranın altına gelir, ancak kameranız sınıflandırmak istediğiniz öğeye daha kolay yönelmesi için döndürülmüşse, bu satırı döndürme derecesine göre değiştirebilirsiniz.

    Kamera bir içecek kutusunun üzerine asılmış

    Örneğin, şerit kabloyu bir şeyin üzerine asarak kameranın üst kısmında olacak şekilde yerleştirirseniz, dönüşü 180 olarak ayarlayın:

    camera.rotation = 180
    

    Kamera başlatılmak için birkaç saniye alır, bu nedenle time.sleep(2) satırı eklenmiştir.

  6. Görüntüyü ikili veri olarak yakalamak için aşağıdaki kodu ekleyin:

    image = io.BytesIO()
    camera.capture(image, 'jpeg')
    image.seek(0)
    

    Bu kod, ikili verileri depolamak için bir BytesIO nesnesi oluşturur. Görüntü kameradan bir JPEG dosyası olarak okunur ve bu nesneye kaydedilir. Bu nesne, daha fazla veri gerektiğinde sona yazılabilmesi için bir konum göstergesine sahiptir, bu nedenle image.seek(0) satırı bu konumu başlangıca geri taşır, böylece tüm veri daha sonra okunabilir.

  7. Bunun altına, görüntüyü bir dosyaya kaydetmek için aşağıdaki kodu ekleyin:

    with open('image.jpg', 'wb') as image_file:
        image_file.write(image.read())
    

    Bu kod, yazma için image.jpg adlı bir dosya açar, ardından BytesIO nesnesinden tüm veriyi okur ve dosyaya yazar.

    💁 Görüntüyü doğrudan bir dosyaya yakalayabilirsiniz, camera.capture çağrısına dosya adını geçirerek. Bu dersin ilerleyen bölümlerinde görüntüyü görüntü sınıflandırıcınıza gönderebilmek için BytesIO nesnesi kullanılmıştır.

  8. Kamerayı bir şeye doğrultun ve bu kodu çalıştırın.

  9. Bir görüntü yakalanacak ve mevcut klasörde image.jpg olarak kaydedilecektir. Bu dosyayı VS Code gezgininde göreceksiniz. Dosyayı seçerek görüntüyü görüntüleyin. Döndürme gerekiyorsa, camera.rotation = 0 satırını gerektiği gibi güncelleyin ve başka bir fotoğraf çekin.

💁 Bu kodu code-camera/pi klasöründe bulabilirsiniz.

😀 Kamera programınız başarılı oldu!


Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalardan sorumlu değiliz.