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

Stm32 przesyłanie obrazu bezprzewodowo z kamery do urządzenia mobilnego

11 Paź 2014 14:20 3123 16
  • Poziom 2  
    Witam,
    zabieram się za realizację urządzenia, które ma za zadanie przesyłać bezprzewodowo obraz z kamery do urządzenia mobilnego. Chciałbym aby rozdzielczość kamery była nie mniejsza niż 800x600 a najlepiej 1600x1200. Wydaje mi się że transmisje najlepiej będzie zrealizować przez wifi direct(bluetooth 3.0 wydaje się dość wolne). Chciałem oprzeć mój projekt na stm32f303. I moje pytanie brzmi: czy uważacie że ten mikrokontroler jest w stanie poradzić sobie z przesyłem danych?
    Jeżeli mógłbym również prosić o materiały odnośnie przesyłania/obróbki wideo ponieważ w tej tematyce jestem początkujący.
    Pozdrawiam
  • OptexOptex
  • Użytkownik usunął konto  
  • Poziom 1  
  • Poziom 2  
    Dziękuje serdecznie za odpowiedź.
    Co do kamery to myślałem nad :
    http://www.kamami.pl/index.php?ukey=product&productID=185295
    Jeżeli chodzi o moduł to:
    http://www.kamami.pl/index.php?ukey=product&productID=179927
    Te moduły znalazłem po krótkim researchu.
    Co do stosu to chciałem się zamknąć ze wszystkim w Ram mikrokontrolera, ale skoro nie dam rady (co kolega sugeruje) to wezmę to pod uwagę.
    Co ro rasp pi to niestety mam wymóg, że musi zostać to zrobione na mikrokontrolerze.
    Jeszcze raz dziękuje za szybką odpowiedź, wszystkie wskazówki napewno się przydadzą.
  • OptexOptex
  • Poziom 34  
    Czy jest to projekt o charakterze komercyjnym czy edukacyjnym ?
  • Pomocny post
    Poziom 1  
  • Poziom 2  
    Jeżeli chodzi o aplikację mobilną to sam ją tworzę.
    Zasięg wystarczy kilka metrów (3-4).
    Praca na zaliczenie więc raczej nie zwracał bym uwagi na pobór energii.
    Hmm max prędkość przy bt 3.1 to 5MB/s więc konwersja jest nieunikniona. Ja tak po cichu liczyłem na to że własnie przy wifi direct nie będzie nic trzeba konwertować(teoretycznie jest napisane że prędkość to około 30 MB/s).
    Ale jeżeli jest to faktycznie tak, że bt okaże się lepszy to muszę skorzystać z konwersji. I teraz moje kolejne pytanie jest następujące: Czy jest powiedzmy jakiś tańszy stm bądź inny mikrokontroler (na studencką kieszeń) który powienien bez problemu sobie z tym poradzić? Ewentualnie na co (oprócz częstotliwości taktowania) powinienem zwrócić uwagę?
    Dziękuje za odpowiedź.
  • Poziom 28  
    A jaką rozdzielczość i ilość fps byś chciał osiągnąć?
  • Pomocny post
    Poziom 16  
    kanoo napisał:
    Czy jest powiedzmy jakiś tańszy stm bądź inny mikrokontroler (na studencką kieszeń) który powienien bez problemu sobie z tym poradzić?

    Ja osobiście polecałbym nowość z TI, układ CC3200
    http://www.ti.com/product/cc3200
    jest to taki, powiedzmy, STM (Cortex M4) z już wbudowanym WiFi. Posiada DCMI, także wybrana przez Ciebie kamerka może być użyta, taktowanie 80MHz więc szału nie robi, ale biorąc pod uwagę sprzętowo wspomagane WiFi, dużo czynności odpada i powinno to dać radę. Najciekawsze w tym wszystkim jest to, że układ ten kosztuje ok 8$ a cały zestaw testowy tylko 190 zł :!: http://ww.w.kamami.pl/published/SC/html/scripts/index.php?productID=233681
    czyli niewiele więcej niż ty chcesz wydać na sam moduł WiFi.

    EDIT: Zauważyłem też, że TI daje masę przykładów i w tym jest właśnie transmisja obrazu z kamery po WiFi, dostępna w przeglądarce
    http://processors.wiki.ti.com/index.php/CC32xx_Camera_Application
    Zostaje tylko pytanko jak z płynnością, ile ramek da się z tego wyciągnąć.
  • Poziom 2  
    Jeżeli chodzi o rozdzielczość to optymalnie będzie 1280x720 (wyświetlacz telefonu)
    Co do fps to myślę ze około 25-30 będzie wystarczająco.
    lukash90 dzięki zapoznam się z tym mikrokontrolerem:)
  • Poziom 34  
    kanoo napisał:
    Jeżeli chodzi o rozdzielczość to optymalnie będzie 1280x720 (wyświetlacz telefonu)
    Co do fps to myślę ze około 25-30 będzie wystarczająco.

    Bez kompresji obrazu będziesz potrzebował przepustowości rzędu 400Mb/s.
  • Poziom 32  
    TvWidget napisał:
    kanoo napisał:
    Jeżeli chodzi o rozdzielczość to optymalnie będzie 1280x720 (wyświetlacz telefonu)
    Co do fps to myślę ze około 25-30 będzie wystarczająco.

    Bez kompresji obrazu będziesz potrzebował przepustowości rzędu 400Mb/s.


    Rzędu 180 - 280 Mbps bez kompresji.
  • Użytkownik usunął konto  
  • Poziom 32  
    albertb napisał:
    deus.ex.machina napisał:
    Rzędu 180 - 280 Mbps bez kompresji.

    Ależ to ten sam rząd wielkości co podał TvWidget ;-)
    http://pl.wikipedia.org/wiki/Rz%C4%85d_wielko%C5%9Bci

    Albert


    Wiem co to rzad wielkości, co do reszty - to mniej więcej polowa podanej - redukcja dość znacząca w wypadku danych (często być albo nie być transmisji).

    W praktyce bez chociaż MJPEG się nie obejdzie.
  • Poziom 34  
    deus.ex.machina napisał:

    Wiem co to rzad wielkości, co do reszty - to mniej więcej polowa podanej - redukcja dość znacząca w wypadku danych

    W typowym formacie stosowanym w kamerach YUV 4:2:2 jedna klatka 1280x720 ma wielkość 1.84MB. Przy 25-30fps da to strumień ~50MB/s czyli 400Mbps.
  • Poziom 35  
    Noo a może jeszcze warto policzyć ile procesor będzie miał czasu pomiędzy klatkami, żeby ją (skompresować?) obrobić, popaczkować, i wysłać do stosu protokołu komunikacji z tym wifi albo innym cudem.

    Zaden popularny mikrokontroler, włączając w to nawet LPC43xx@200MHz, nie wydoli obrabiać strumienia danych 50MB/s...
  • Poziom 14  
    Sprzęt do 150zł (kamery IP) stosuje bardzo często dedykowane SoC takie jak Hisilicon Hi3507. Kamera pracuje na systemie Linux a sprzętowy (de)koder pozwala na odciążenie procesora, dzięki czemu generowanie na żywo strumienia H264 720p to dla niego nie problem.

    Dlaczego nie użyć Raspberry? Cena płytki nie jest zbyt duża, dodatkowo daje sprzętowy (de)koder h264 i wiele możliwości rozbudowy.

    Jeśli chodzi o urządzenia mobilne to w przypadku telefonów, tabletów ze średniej półki odtwarzanie video H264 o rozdzielczości 1600x1200 nie jest możliwe, tzn ciężko jest wyciągnąć więcej (ze wspomaganiem sprzętowego dekodera) niż 5-10 klatek na sekundę, niektóre urządzenia w ogóle nie wspierają takiej rozdzielczości - 720p jest dla taniego sprzętu barierą nie do przeskoczenia.

    Pozdrawiam,