Arduino Kamera Modülü Nasıl Kullanılır?

Bu yazımızda, en yaygın kullanılan OV7670 Arduino kamera modülünü araştıracağız. OV7670 kamera modülü Arduino Mega ile aynı pin konfigürasyonu, kodu ve adımlarla arayüzlenebilir. Kamera modülünün arayüzü zordur, çünkü çok sayıda pin ve yürütmek için karışık kablolama vardır. Ayrıca kamera modülleri kullanılırken tel çok önemli hale gelir, çünkü tel seçimi ve tel uzunluğu, resim kalitesini önemli ölçüde etkileyebilir ve gürültü getirebilir.

Günümüzde kullandığımız kameralar akıllıdır ve önceki kameralarda bulunmayan birçok özelliğe sahiptir. Günümüzde dijital kameralar sadece görüntü yakalamakla kalmıyor, aynı zamanda sahnenin üst düzey açıklamalarını da çekiyor ve gördüklerini analiz ediyor. Robotik, Yapay Zeka, Makine Öğrenimi vb. Alanlarda yaygın olarak kullanılır. Yakalanan çerçeveler Yapay Zeka ve Makine Öğrenimi kullanılarak işlenir ve daha sonra Plaka tespiti, nesne algılama, hareket algılama, yüz tanıma vb. Birçok uygulamada kullanılır.

Kamera OV7670 3.3V ile çalışır, bu yüzden onların Çıkış GPIO pinlerinde 5V çıkış veren Arduino’dan kaçınmak çok önemlidir. OV7670 bir FIFO kameradır. Ancak bu derste, resim veya çerçeveler FIFO’suz yakalanacak. Bu ders OV7670’i Arduino UNO ile arayüzlemek için basit adımlara ve basitleştirilmiş programlamaya sahip olacaktır.

Arduino Kamera Modulü Bağlantısı
Arduino Kamera Modulü Bağlantısı
Kamera Modülü OV7670 Özellikleri

OV7670 Kamera Modülü, farklı pin Konfigürasyonları olan farklı Üreticilerden temin edilebilen bir FIFO kamera Modülüdür. TheOV7670, çok çeşitli formatlarda tam kare, pencereli 8 bit görüntüler sunar. Görüntü dizisi VGA’da saniyede 30 kareye (fps) kadar çalışabilir. OV7670 şunları içerir:

  • Görüntü Sensörü Dizisi (yaklaşık 656 x 488 piksel)
  • Zamanlama Üreteci
  • Analog Sinyal İşlemcisi
  • A / D Dönüştürücüler
  • Test Kalıbı Jeneratör
  • Dijital Sinyal İşlemcisi (DSP)
  • Görüntü Ölçekleyici
  • Dijital Video Bağlantı Noktası
  • LED ve Strobe Flaş Kontrol Çıkışı

The OV7670 image sensor is controlled using Serial Camera Control Bus (SCCB) which is an I2C interface (SIOC, SIOD) with a maximum clock frequency of 400KHz.

OV7670 Kamera Modulü
OV7670 Kamera Modulü

Kamera aşağıdaki gibi handshacking sinyalleriyle vardır:

  • VSYNC: Dikey Senk Çıkışı – Çerçeve sırasında düşük
  • HREF: Yatay Referans – Satırın aktif pikselleri sırasında yüksek
  • PCLK: Piksel Saat Çıkışı – Serbest çalışan saat. Veriler yükselen sınırda geçerlidir

Buna ek olarak, bu gibi birkaç sinyal daha var

  • D0-D7: 8 bit YUV / RGB Video Bileşeni Dijital Çıkış
  • PWDN: Güç Azaltma Modu Seçimi – Normal Mod ve Güç Azaltma Modu
  • XCLK: Sistem Saati Girişi
  • Sıfırla: Sinyali Sıfırla

OV7670, 24MHz osilatörden saatlidir. Bu, 24MHz Piksel Saat (PCLK) çıkışı verir. FIFO, 3 Mbps video kare arabellek belleği sağlar. Test paterni jeneratöründe 8 bar renk çubuğu deseni, solmaya gri renkli çubuk pıtırtı bulunur. Şimdi Arduino UNO’yu Camera OV7670’in test edilmesi ve seri port okuyucu kullanarak kapma çerçevelerinin programlanmasına başlayalım.

Arduino Kamera Modülü Devre Şeması
Arduino Kamera Modulü Bağlantı Şeması
Arduino Kamera Modülü Bağlantı Şeması
Arduino Kamera Modülü Programı

Arduino’ yu programlama, OV7670 için gerekli kütüphane dahil etmekle başlar. OV7670 I2C arayüzünde çalıştığından, <util / twi.h> kütüphanesini içerir. Bu projede kullanılan kütüphaneler, yerleşik ArduinoIDE kütüphaneleridir. İşi yapabilmek için kütüphaneleri dahil etmeliyiz. Bundan sonra, kayıtların OV7670 için modifiye edilmesi gerekir.

Arduino’yu yapılandırdıktan sonra kameranın yapılandırılması gerekir. Kamerayı başlatmak için, yalnızca kayıt değerlerini değiştirme seçeneğine sahibiz. Kayıt değerlerinin varsayılandan kişiye özel değiştirilmesi gerekir. Ayrıca kullandığımız mikrodenetleyici frekansına bağlı olarak gerekli gecikmeyi de ekleyin. Zira, yavaş mikrodenetleyiciler yakalama çerçeveleri arasında daha fazla gecikme ekleyerek daha az işlem süresine sahiptir.

Aşağıdaki işlev, kaydedilecek onaltılık değeri yazan kayıt işlevine yazmaktır. Karışmış görüntüleri elde ederseniz, ikinci terimi, yani 10 – 9/11 / 12’yi değiştirmeye çalışın. Fakat çoğu zaman bu değer iyi çalışır, bu yüzden onu değiştirmeye gerek yoktur.

Bu işlev görüntü çözünürlüğü boyutunu elde etmek için kullanılır. Bu projede 320 x 240 piksel boyutunda fotoğraf çekiyoruz.

Kodun Tamamına aşağıdan ulaşabilirsiniz.

Görüntüleri okumak için Seri Port Okuyucuyu Kullanma

Seri Port Reader basit bir GUI’dir. Bu, base64 kodlamasını yakalar ve bir görüntü oluşturmak üzere kodunu çözer. Aşğıdaki linkten indirebilirsiniz.

SerialPortReader

Serial Port Reader
Serial Port Reader
OV7670 kullanırken alınacak önlemler
  • Telleri veya atlama tellerini mümkün olduğu kadar kısa kullanmaya çalışın
  • Arduino veya OV7670 üzerindeki pimlere gevşek temastan kaçının
  • Çok sayıda kablolama kısa devreye neden olabileceğinden, bağlantı yaparken dikkatli olun
  • UNO GPIO’ya 5V çıkış veriyorsa, Seviye Değiştirici’yi kullanın.
  • OV7670 modülüne zarar verebileceğinden fazla voltaj olarak OV7670 için 3.3V Giriş kullanın.
Aruino Kamera Görüntüsü
Aruino Kamera Görüntüsü

Kaynak

Thank you for reading!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.