Kamera modüllerini seri bağlamak

Başlatan Ömer ERKOL, 01 Aralık 2014, 00:03:53

leblebitozu

Böyle bir işe High-End bir FPGA + DDR ram yakışır. Ama 25 adet STM32F429 + SDRAM ile de olur tabi. Topladığın görüntüleri ne şekilde değerlendireceğin de önemli.

robomaster

Alıntı yapılan: Ömer ERKOL - 02 Aralık 2014, 21:01:38
Genelleştirecek olursam; N adet kamera modülüne eş zamanlı fotoğraf aldırarak, bunları kayıt etmek istiyorum. Arduino UNO ile Linksprite TTL seri kamera modülünü kullandım. Görüntüyü almak ve kaydetmek değmeyecek çözünürlüklerde, ciddi zamanlar aldı. Arduino'nun 16 MHz işlemcisiyle böyleyse STM32F4 serisi 10 kat daha seri diye düşündüm. Kullanılacak kamera modülünü OV5642 ile değiştirdim. @hasankara'nın linkini verdiği 16 MB chiplerden sipariş verdim.

Benim gerçeklemeye çalıştığım şey şu: 25 kameranın -tam olarak- aynı anda 1920x1080 fotoğraf alması ve bu 25x1920x1080x8 bitlik görüntüleri 3 saniye içerisinde karta yazmayı bitirmiş olmak. Her bi' kameraya 16 MB bellek ve STM32F4 olmak üzere 25 tane STM32F4 sürmek gerekir derseniz; ona da varım ama TI DaVinci serisinden tek bi' mikrodenetleyiciyle bitirebilirsek ona koşarım.

Denemeden hesabını yapabileceğim hiçbir deneyimim yok. Kontrollü deney mantığı, değişkenlerden birisini değiştirerek toplamdaki değişimi gözleyebilmekten başka bi' şey gelmiyor elimden.

Arkadaş Matrix filmindeki gibi adamın etrafındaki dönüş efektrini yapmak istiyor :)

leblebitozu

@robomaster

İsteyebilir neden istemesin ? Hayal edicek, hedefliyecek, deneyecek. Belki bu çabalara değecek parlak bir fikri, yüksek beklentileri vardır olmaz diye bişey yok.

robomaster

#18
Alıntı yapılan: leblebitozu - 03 Aralık 2014, 00:04:12
@robomaster

İsteyebilir neden istemesin ? Hayal edicek, hedefliyecek, deneyecek. Belki bu çabalara değecek parlak bir fikri, yüksek beklentileri vardır olmaz diye bişey yok.

Ben gayet ciddi idim. O sahne oldukça benzer bir düzenekle çekildi. Umarım muaffak olur.

Ömer ERKOL

#19
Evet. Tam da yapmak istediğim şey :) Desteğiniz için çok teşekkür ederim. Ben piyasadaki FPGA kitabından bi' tane alarak hedefime devam ediyim o zaman...

Düzenleme: Bu bahsettiğim şartlar için hangi FPGA'yı önerirsiniz? 1000 tane I/O pini olan bi' FPGA gereksiz olacaktır.

yldzelektronik

Alıntı yapılan: leblebitozu - 02 Aralık 2014, 23:58:09
Böyle bir işe High-End bir FPGA + DDR ram yakışır. Ama 25 adet STM32F429 + SDRAM ile de olur tabi. Topladığın görüntüleri ne şekilde değerlendireceğin de önemli.

Hayatında hiç fpga kullanmamış, sadece uzaktan koklamış, göz ucuduyla vikipedik tanımlara bakmış birisine bu işi fpga ile yapılabilirlik noktasında açıklar mısınız?

Gerçekten merak ediyorum.

Acaba siz fpga kullandınız mı?Öğrenmek adına soruyorum.

Teşekkürler.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

kralsam

Selamlar,

Hocam lineer bir görüntü istiyorsan kameraların optiklerinden kaynaklanan deformasyonu tersine çevirecek filtrelerde yazman gerekecek. Bu işlerin tümü FPGA ile çok güzel gerçeklenir ama zaman alır. Hatta FPGA bilmiyorsanız daha da çok zaman alır. Görüntü frame hızı çok önemli değilse bunlara kasmayın derim, hevesiniz kaçar. En iyi yol bildiğiniz yoldur. :)

En kısa sürede sonucunu görüp ilerletmek isterseniz o işe kalkışın derim.

İyi çalışmalar.

elektronart

Bence FPGA yerine her bir kamera için ayrı bir modül yapıp sonra mekezi biryerden hepsindeki görüntüleri toplayın. Kamera ile fotoğraf çekip hafısasına kaydeden, sonrasında bunu seri olarak (rs232/SPI/I2C) verebilecek bir modül piyasada yok.  Böyle bir modüle sizin ihtiyacınız olmuş, benim de var, ve piyasada bunun VGAnın üstünde çözünürlükte görüntü verebileni yok. Biz de benzer bir modül yapmaya çalışıyoruz ama bizimkinde kamera ile görüntü alma noktası arasında çok mesafe olacağı için analog kamera tercih ettik. Modül yapın, ticari bir ürün çıkarmış olursunuz. Biz analogtan dönüştürmeyi beceremezsek sizden digital alırız :)
Açık Elektronik

leblebitozu

@yldzelektronik

Merakınızı gidereyim evet ben FPGA kullandım. FPGA ile yapılabilirliği niye mantıklı onu da açıklamaya çalışayım. 25 adet kameradan bahsediliyor ve aynı anda görüntü alınacak bunu yapabilmek için 25 adet kamera interface'i olması ve paralel çalışması gerekiyor. FPGA'de kamera için kullanılan IP çoklanarak aynı anda birden fazla kamera ile paralel bir şekilde işlem yapmak mümkün olur. Ayrıca MIPI interface'e sahip kameralar da kullanılabilir. Tabi kolay bir iş değil ama yapılır mı evet yapılır. Bir yapan bulunur.

@Ömer Erkol

Seçenek çok Stratix V gibi bişeyler olabilir. Çok bacak her  koşulda şart, Kamera paralel + SSCB + kontrol uçları derken 12x25 = 300 I/O civarı ihtiyaç olur daha DDR ram, flash vs. gibi şeyler var yani BGA kılıf şart. Pahalı bir iş böyle bir board 3-4K USD'den aşağı değil.

Ömer ERKOL

Bi' şeyi gerçekten istediğinizde, başarabileceğinize inanıyorum. O yüzden korkmadım FPGA'ya yönlendirilince. Tabiki bunun bi' prototip olacağını düşünürsek FPGA için erken gelmedi değil. Hele söylediğiniz 3K-4K bütçeleri vermem şu durumda mümkün gözükmüyor, hele ki amacım bi' prototip çıkarmak olduğundan bunu modüler bazda yapabilecek birine o bütçeleri vermek daha akıllıca olur benim için...

Modül bazında kullanım için birkaç tane var fakat robotik konular için (obje tanıma, takibi vs) tasarlanmış olduğu için VGA'dan öteye geçmiyorlar. Konuyu modül ele alsak; bu modüllerin bi' MCU'ya output verebilecek şekilde OV5642 + 16 MB RAM + STM32F429 üçlemesi ile gerçeklenmesi mümkün sanırım? Bu durumda aklıma şu takılıyor; bi' modül sensörden gelen 1920x1080 görüntüyü T sürede işliyorsa; ana ünite olarak tabir edeceğimiz aynı mikrodenetleyici bunu 25T sürede mi karta yazar? Ve bu modüller eş zamanlı tetiklenebilir durumda mı olur böylece?

Benim amacım burada elektronik bilgimi geliştirmek değil. Sadece ve sadece bu ürünü ortaya koyabilecek kadarını öğrenmek ve yapmak. En azından kullanılacak devre elemanlarını sizlerin aydınlattığı şekilde belirlersem, kodlama geçmişime (HTML, PHP, C, ActionScript gibi diller) dayanarak ve bol bol araştırarak okuyarak bunu başarabileceğime inanıyorum.

leblebitozu

@Ömer ERKOL

Kayıt süresi kayıt ortamına bağlı olarak değişir. STM32F429 + SDRAM ile görüntüyü alırsın. SDRAM boyutuna göre de sığdığı kadar frame'i saklayabilirsin. Sonrasında bunu lokalde SD CARD'a yada bir merkezde birleştirilecek ise ethernet ya da wifi aracılığıyla udp soket üzerinden gönderebilirsin. OV5640'ta JPEG encoder olması lazım JPEG olarak alırsan görüntüyü boyutlar da oldukça küçülür ve kayıt etmesi daha hızlı olur.

Ömer ERKOL

@leblebitozu; Dahili bi' kayıt alanı kullanmak istiyorum. Bi' bütün olarak davranmalı tüm elemanlar. NAND flash kullanmak, SD kart kullanmakla kayıt süresi açısından farklılık gösterir mi? MCU, RAM ve sensörden oluşan modüllerden gelen görüntüyü neredeyse sıfır işlemci gücü ile direk depolama alanına aktarmak mümkün müdür?

yldzelektronik

Siz bunu fpga ile yapsanız da bütün kameralar birbirine çok yakın mı olacak ki? Uzak olacaklar ise kameralardaki görüntüyü tek bir yeri nasıl taşıyacaksınız?

Stm32f407 ile yada Stm32f429 ile ram ve flash kullanarak güzelce verileri alıp stoklarsınız.Resimlerinizi formatlanmış (jpeg vs gibi) olarak kaydettikten sonra geriye bir yerde toplamak kalacaktır.

Ethernet üzerinden gönderme kısmı işin son aşaması olacaktır.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

leblebitozu

@yldzelektronik

uzaktaysa yapacak bir şey yok ayrı modüller olacak. Alternatif olarak IP kameralar ile yapılıp gelen data linux bir board üzerinde de kayıt altına alınabilir. Dediğin gibi JPEG'e çevirmekle uğraşırsan STM32F4 ağlar,flash yerine de SDIO interface'i + class 10 sd card daha hızlı olur. JPEG encoder kamera üzerinde zaten veri o şekilde gelecek. F407'de SDRAM desteği yok tavsiye etmem.

http://www.ebay.com/itm/1080P-Full-HD-IP-Board-Camera-Module-5MP-CMOS-Sensor-IR-CUT-ONVIF-iPhone-View/261441929903?_trksid=p2047675.c100005.m1851&_trkparms=aid%3D222007%26algo%3DSIC.MBE%26ao%3D1%26asc%3D27538%26meid%3Df3b28810fded4c6f8cbe28a11be8afea%26pid%3D100005%26prg%3D11353%26rk%3D6%26rkt%3D6%26mehot%3Dpp%26sd%3D261345202153&rt=nc

yldzelektronik

SdRam yüzünden değiştirilmeye değebilir.Ancak sdram çok şeyi değiştirir mi?

Sdio'nun flashtan daha hızlı olacağını sanmıyorum.Daha hızlı olacağını açıklayabilir misiniz? Bu arada Stm32f4 dcmi modülünde gelen frame'i jpeg olarak sıkıştırmak için register vs var.Ancak tam olarak bilmiyorum ne yaptığını.Bildiğim kadarıyla resmi jpeg olarak sıkıştırabiliyor.Ama emin değilim.Daha detaylı incelemek gerek.
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.