Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 2 paź 2025, o 14:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 16 paź 2013, o 11:29 
Offline
Nowy

Dołączył(a): 16 maja 2013
Posty: 7
Pomógł: 0

Witam! W skrócie wpadłem na szalony pomysł: Jestem początkujący i chcę użyć kamery do mojego projektu (bez pośrednictwa komputera). Zanim ktokolwiek zwróci mi uwagę, że to porywanie się z motyką na Słońce w moim przypadku, to informuję, że zdaję sobie z tego sprawę. Stawiając sobie bardzo dalekie cele, szybciej motywuję się do nauki. Wiem co chcę uzyskać, wiem jakie parametry są dla mnie ważne, lecz często przeglądając datasheety poszczególnych podzespołów trafiam na problem: nie potrafię oszacować, jakie parametry powinien mieć dany element. W tym wpisie pokażę czego się dowiedziałem oraz czego nie udało mi się dowiedzieć.



Czego potrzebuję: Idealnie odczyt 60 klatek/s 720p w kolorze przy pomocy (przykładowa kamerka) ov5640.
Początkowo dla zaznajomienia się z kamerką oczywiście chciałbym używać niższych rozdzielczości i szybkości, ale docelowo chcę uzyskać powyższe wyniki. Odczyt może być bez przekazywania obrazu na ekran + nie zamierzam go nagrywać. Docelowo chciałbym przechowywać maksymalnie kilka klatek obrazu w pamięci do porównywania ich i wykrywania krawędzi itp.

Zanim wszedłem w temat dokładniej, wyobrażałem sobie to tak: Kamera ma mały układ cyfrowy, który podaje kolejno wartości dla każdego pixela w układzie określonym przez jakąś normę, po pojedyńczym kablu. Z tego co wiem, tak wygląda przesył danych z kamer z wyjściem composite video, jednak szumy analogowego sygnału mocno zniszczyłyby obraz i utrudniły pracę mikrokontrolerowi nad obrazem.
Kamery w formie widzianej z telefonów mają dużo różnych pinów, głównie cyfrowych. Synchronizacja pionowa, pozioma, dodatkowe ustawienia typu gamma, piny do synchronizacji zegara oraz IIC do transmisji danych itp.– do znalezienia w nocie. Dowiedziałem się również o kompresowaniu sygnału, by odpowiednie komponenty nadążały z nadawaniem i odbieraniem – i tu się między innymi blokuję:

Rozumiem, że pamięć ram powinna wystarczyć do zmieszczenia żądanej ilości klatek, ale nie wiem jak sprawa wygląda z taktowaniem zegara mikrokontrolera. Idąc moim tokiem myślenia, kamera podaje w rozdzielczości 720 p (1280x720) = 921600 pixeli, z czego każdy pixel posiada minimum 3 kolory, co daje 2784800 informacji przy jednej klatce, czyli 60x2784800=167 088 000 informacji/sekundę.
Tutaj proszę o poprawienie, jeżeli w rzeczywistości sprawa wygląda inaczej.

Idealizując przyjmuję, że jeden takt procesora zbierze jeden subpixel do pamięci ram, co daje taktowanie 167 MHz na sam odczyt. Ponieważ jednak świat nie jest idealny, odbiór i zapis informacji zajmie więcej niż jeden takt, czy dobrym krokiem jest prześledzenie tabel mówiących jaka operacja zajmuje ile taktów? Czy takie liczenie jedt miarodajne? W jaki sposób powinno się to robić? Czy może lepiej metodą prób i błędów dokładać taktowanie (które jednak kosztuje)?

167 + drugie tyle na wszelki wypadek + 2x 167 na to by to odczytać i przetworzyć = 668 MHz. Miałoby to sens, ponieważ telefony mające około 800MHz potrafią nagrywać filmy 720p/60.

Jednak jak wcześniej napisałem zauważyłem, że sygnał video jest kompresowany (czy dobrze rozumiem?) czyli procesor ma jeszcze więcej do policzenia, co zwiększa wymagane taktowanie o niewiadomą ilość.

Przeglądając bebechy kamery wyczynowej go pro hero 3 natknąłem się między innymi na take układy:

Ambarella A770 camera system-on-a-chip (500 MHz pixel capture rate (equivalent to 8 Megapixels at 60 frames per second) - supports oversampling for the highest image quality and enables multi-window digital Pan Tilt Zoom (PTZ)

Przez co mam rozumieć, że istnieją wyspecjalizowane układy do odbioru obrazu? Jak tego szukać? Czy można używać ich bez udziału zwykłego mikrokontrolera? Na logikę istnienie takich układów pozwoliłoby na zwolnienie mikrokontrolerów z części pracy - dobrze rozumiem?

Austriamicrosystems AS3713 system PMU with backlight driver

Doczytałem, że PMU służy do synchronizacji układów. Czy w przy łączeniu kamery z mikrokontrolerem, należy zwracać uwagę na coś konkretnego? Rozumiem,że to taki odpowiednik rezonatora kwarcowego?

Z moich obliczeń powyżej wynika, że taktowanie wszelakich atmeg jest za małe by sprostać moim oczekiwaniom. Zapewne więc musiałbym użyć układów typu ARM - czy tak?

Z tego co wiem procesory wykonują pracę po kolei a karty grafiki wykonują wiele obliczeń jednocześnie. Czy można w jakiś sensowny sposób wykorzystać układy graficzne znane z telefonów do obróbki obrazu z kamery CMOS?

Mile widziane będą różne określenia, które mógłbym wyszukać w internecie i o nich poczytać, a teraz nie mgę, ponieważ ich mogę po prostu nie znać.

Wiem, że temat nie jest najprostszy, więc jeżeli ktoś tylko podejrzewa, jaka jest odpowiedź na dowolne z moich pytań, zapraszam do przemyśleń.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2013, o 14:19 
Offline
Nowy

Dołączył(a): 16 maja 2013
Posty: 7
Pomógł: 0

futaba napisał(a):
Witam

Moja sugestia to: poczytaj o Raspberry Pi.

Pozdrawiam

Chciałbym nauczyć się tworzyć urządzenia od zera, by ewentualnie móc je w przyszłości jak najtaniej sprzedać. Raspberry jest gotowym rozwiązaniem. Gdybym chciał iść na łatwiznę, prawdopodobnie wolałbym napisać aplikację na telefon z kamerą.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2013, o 14:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27439
Lokalizacja: Szczecin
Pomógł: 1044

Nxtfun napisał(a):
Chciałbym nauczyć się tworzyć urządzenia od zera


No to proszę bardzo - jakiś procek ARM/STM, do tego "trochę" RAM'u, i potem pozostanie już ci tylko napisać obsługę kodeków HD, plus obróbka obrazu. "To wszystko" ... i to jest bardzo przemyślana podpowiedź.

Natomiast tak już całkiem na poważnie to może zamiast próby wymyślania na żywo jak działają kamery, jak to obliczać taktowanie i to (drogie taktowanie jak twierdzisz) ... to może jednak na chwilę zszedłbyś ociupinkę niżej i powiedział np czy już chociaż zetknąłeś się tak praktycznie z mikrokontrolerami? jeśli tak to jakimi ? w jakim języku programowania ? Czy próbowałeś chociaż np samej kompresji obrazu JPEG ? .... na jakimkolwiek mikrokontrolerze a jeśli tak to na jakim ?

myślę że od tego powinieneś zacząć wtedy łatwiej byłoby cię nakierować na coś konkretnego - a tak? a tak to na podstawie tego co napisałeś trzeba byłoby dywagować o rzeczach których nie ma - a które sobie w większości sam po drodze wymyślasz ....

bo wiesz co innego można doradzić osobie, która cokolwiek już próbowała w tym zakresie i podała chociaż garść informacji o które pytam wyżej a całkiem co innego osobie, która jeszcze nie wie dokładnie co to mikrokontroler, albo na razie jest na etapie np migania diodą LED o ile w ogóle chociaż tyle ?

------------------------ [ Dodano po: 2 minutach ]

inna sprawa, że aby to zrobić to musiałbyś co najmniej złożyć takie urządzenie jak to o którym (i słusznie) wspomniał ci wyżej kolega Futaba. Więc warto byłoby się chociaż pochylić nad poznaniem jego szczegółów - wtedy miałbyś dużo bardziej klarowny obraz zamiast wymyślania świata od nowa niestety i to jeszcze hmmm jakby to powiedzieć - no niefortunnego wymyślania.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2013, o 15:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

Nxtfun napisał(a):
....Chciałbym nauczyć się tworzyć urządzenia od zera, by ewentualnie móc je w przyszłości jak najtaniej sprzedać. Raspberry jest gotowym rozwiązaniem. Gdybym chciał iść na łatwiznę, prawdopodobnie wolałbym napisać aplikację na telefon z kamerą.


Zrób prostą kalkulację...
Bierzesz gotowe Raspberry Pi plus kamera, tak na szybko nawet w 3 miesiące można to ogarnąć dosyć dobrze.
Robisz soft, później własny hardware zgodny z R Pi i masz swoje urządzenie.

Gdy zaczniesz od 'zera', minie 2-3 lata (a nie miesiące) do momentu gdy będziesz w tym samym miejscu.
Przy dzisiejszym postępie technologicznym, będziesz już rok 'do tyłu' i do kalkulacji urządzenia musisz doliczyć czas spędzony na jego opracowaniu....

To taka moja wizja :)


Autor postu otrzymał pochwałę

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2013, o 19:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Obsługę kamery, wyświetlacza i kompresji można wykonać na FPGA a mikrokontroler zastosować np. PicoBlaze.


Autor postu otrzymał pochwałę

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2013, o 19:59 
Offline
Użytkownik

Dołączył(a): 13 lut 2012
Posty: 180
Pomógł: 10

Może warto poczytać w Elektronice Praktycznej nr 5/2012
"Przetwornik obrazu w systemie z STM32, czyli jak dołączyć kamerę do mikrokontrolera
http://ep.com.pl/files/9684.pdf


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2013, o 20:37 
Offline
Nowy

Dołączył(a): 16 maja 2013
Posty: 7
Pomógł: 0

Bardzo wszystkim dziękuję za odpowiedzi! Mój poziom to: zamrugałem diodą w języku C, podałem pwm na wyjściu by odpalić silnik bezszczotkowy i jestem na początku ćwiczeń bluebooka. Właśnie zacząłem studia na elektronice, więc poświęcenie ileś lat życia na to uznaję za wykonalne.
Próba pracy nad kamerą za pomocą komputera i raspberry pi to w sumie dobry pomysł, by zorientować się ile mocy potrzebuję. Uznałem, że skoro typowe aparaty cyfrowe potrafią rozpoznawać twarz w podglądzie na żywo, to w jakimś stopniu osiągalne jest uzyskanie detekcji różnych kształtów w obrazie na żywo bez potężnego komputera.

Nie chciałem jakoś bardzo wchodzić w to jak bardzo jestem początkujący, ponieważ jeżeli nie będę miał pojęcia co mi ktoś doradza, bo brakuje mi wiedzy, to przynajmniej wiem jakiej wiedzy mi potrzeba i czego szukać w przyszłości, gdy już zrozumiem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO