Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Optiva VODN209 - Czy da się podłączyć kamerę do arduino

07 Maj 2015 22:58 795 4
  • Poziom 10  
    Witam,
    Posiadam kamerę Optiva VODN209 oraz Arduino uno (mam też atmege8 i 16) i nie wiem czy dało by rade to podpiąć pod arduino?
    nie musi być HD :D
    Satysfakcjonuje mnie już 5x5 pixeli.

    A jak w ogóle działa taki sygnał? To jest sygnał cyfrowy czy analogowy?

    PS. Jestem "zielony" w tych sprawach
  • Pomocny post
    Poziom 43  
    To jest kamera analogowa. Jej podłączenie do Arduino będzie dość trudne.
    Choć nie niemożliwe skoro wymagasz tylko małych rozdzielczości.
    Kiedyś udało mi się zrobić na AVR układ odbierający sygnał Composite Video (czyli taki jaki masz tutaj) o rozdzielczości około 170x130 pixeli (pomijał większość linii).
    Tutaj wspomagający układ analogowy którego użyłem:
    Optiva VODN209 - Czy da się podłączyć kamerę do arduino
    Przed C54 można jeszcze dać rezystor 75R do masy.
    Układ działa dla standardowego sygnału Video 1Vpp.
    Układ z diodą D6 odzyskuje składową stałą.
    T18 wyodrębnia impulsy synchronizujące (wszystkie).
    C40R80 wyodrębnia impulsy synchronizacji pionowej.
    Dodatkowe tranzystory (T8 i T9) wyostrzają te impulsy oraz wzmacniają je do 5Vpp.
    Tak więc na H_int i V_int będą ujemne impulsy synchronizujące. Podłącza się to do wejść INT procesora.
    Robi się tablicę dwuwymiarową i dwie zmienne X i Y (jeżeli jest na to miejsce, przy rozdzielczości 5x5 będzie, u mnie nie było i dane obrabiałem w locie (tylko z jednej linii)).
    I odpala się jakiś Timer.
    Timer w przerwaniu ma robić pomiar ADC (sygnału z rezystora R24) i zapisywać go do tablicy (na współrzędnych X.Y). Jednocześnie zwiększać wartość X o 1.
    Jak doliczy do max to zatrzymywać pomiary (tzn. zapisy do tablicy, pomiary może sobie robić).
    Częstotliwość przerwania należy dobrać tak aby podczas jednej linii obrazu (64us) wystąpiło 5 przerwań (skoro chcesz rozdzielczość 5 pixeli w poziomie).
    Przerwanie H_int ma zwiększać Y oraz resetować X pozwalając na kolejną partię pomiarów przerwaniami z Timera. W przypadku rozdzielczości pionowej równej tylko 5 nie każde przerwanie H_int powinno zwiększać Y. Tylko co około setne. Tak więc potrzebna będzie dodatkowa zmienna powiedzmy Y2. (można też zbierać wszystkie linie i liczyć z nich średnią aby ostatecznie wyszło tylko 5 linii w pionie)
    Doliczenie do max Y również ma zatrzymywać pomiary/zapisy do tablicy.
    V_int ma resetować Y.
    Tym sposobem masz automatyczne wypełnianie tablicy danymi Video oparte jedynie na przerwaniach.
    Choć jak wspomniałeś że jesteś zielony to czarno to widzę.
    Nie mnie jednak możesz próbować.
  • Poziom 33  
    Ale to chyba wymaga poganiania ADC z circa pełną prędkością zegara? Ile wychodzi użytecznych bitów?
  • Poziom 43  
    Przy rozdzielczości 5x5 pixeli jeszcze chyba nie.
    Gdyby jednak tak było to można też zbierać dane do jednej linii z kilku linii Video.
    Czyli pixele X0, X1, X2, X3, X4 (dla Y równego 0) zbierać nie z jednej linii Video (co około 10us) tylko z kolejnych z przesunięciem od początku. A więc będzie to co około 74us.
    Nie będzie to miało znaczenia dla jakości obrazu skoro kolejna odczytana linia (Y = 1) będzie dla 100 linii Video dalej.
    W moim przypadku (170x130 pixeli) użyłem zewnętrznego przetwornika ADC bo faktycznie był hardcore z wymaganą prędkością.
    Generalnie dzisiaj bym już nie szedł w tym kierunku i zastosował kamerę cyfrową.
  • Poziom 10  
    Dziękuje :)
    Czyli wiem że się da, jak skończę mostek H, to się za to zabiorę. Jeszcze raz dziękuje za pomoc, jak coś mi się uda zrobić to powiadomię o otrzymanym wyniku.