
Aparat cyfrowy może działać bez zarzutu na laptopie deweloperskim z systemem Windows i mimo to ulec awarii po podłączeniu do płytki Android wybranej do końcowego kiosku. Producentom terminali zazwyczaj udaje się to wykryć dopiero w późnym etapie projektowania. Prototyp wyświetla czysty obraz w rozdzielczości 1080p, więc praca z aparatem wydaje się zakończona. Podczas testów systemowych aparat może jednak zniknąć po restarcie, system Android może udostępniać jedynie tryb o niskiej rozdzielczości, a system Linux może przesyłać strumień wideo bez możliwości zmiany ekspozycji przez aplikację.
Czujnik nie zawsze jest przyczyną problemu. Częściej źródło usterki znajduje się gdzieś pomiędzy oprogramowaniem sprzętowym aparatu, deskryptorami UVC, przepustowością interfejsu USB, stosem obsługi kamer w systemie operacyjnym oraz aplikacją. W przypadku projektu terminala określenie Moduł kamery USB to tylko punkt wyjścia. Moduł należy przetestować wewnątrz systemu produkcyjnego, zanim zostanie zatwierdzony.
UVC zmniejsza obciążenie kierowcy, ale nie eliminuje testów zgodności
UVC oznacza USB Video Class . Definiuje sposób, w jaki urządzenie wideo USB zgłasza swoje formaty obrazu, rozdzielczości, szybkości klatek oraz sterowanie do hosta. W systemie Windows zgodne z UVC urządzenie może korzystać z wbudowanego sterownika wideo USB zamiast dedykowanego sterownika aparatu. Jest to jedna z przyczyn powszechnej stosowalności modułów UVC w kioskach, terminalach kontroli dostępu oraz sprzęcie konferencyjnym.
Zmiana systemu operacyjnego nadal może wpływać na wynik. W systemie Linux kamerę UVC zwykle obsługuje sterownik uvcvideo i interfejs V4L2. Standardowe funkcje sterowania są zazwyczaj proste w użyciu, natomiast funkcje specyficzne dla producenta mogą wymagać dodatkowego mapowania oprogramowania. Obsługa zewnętrznych kamer USB w systemie Android wymaga większej uwagi: płyta musi zapewniać tryb hosta USB, jądro musi obsługiwać UVC, a obraz systemowy musi zawierać dostawcę zewnętrznego aparatu lub aplikację uzyskującą bezpośredni dostęp do urządzenia USB. Oświadczenie dostawcy, że moduł obsługuje Androida, nie jest zatem wystarczające samo w sobie. Zgodność należy potwierdzić na rzeczywistej płycie i obrazie systemowym.
Host może nie używać najwyższej rozdzielczości podanej w arkuszu danych
Rozważ Moduł aparatu USB Sinoseen OV2710 opublikowana specyfikacja określa czujnik OV2710 o rozdzielczości 2 MP, wyjście 1920 × 1080, interfejs USB 2.0, stałą ostrość oraz obsługę trybów wyjściowych MJPEG i nieskompresowanego YUV. Żadna z tych cech nie jest nietypowa, jednak host nie wybierze automatycznie najwyższego trybu wymienionego na stronie.
MJPEG zwykle ułatwia przesyłanie wideo w rozdzielczości 1080p przez USB 2.0, ponieważ zmniejsza ruch na magistrali. W zamian zwiększa obciążenie dekodowania po stronie hosta. Średniej klasy procesor systemu Android może wyświetlać strumień w rozdzielczości 1080p, ale zużywa przy tym wyraźną część swojego czasu procesora na dekodowanie. Wideo nieskompresowane odwraca ten kompromis: wymaga mniej dekodowania, ale zużywa znacznie więcej przepustowości USB. Jeśli kamera współdzieli wewnętrzny koncentrator z czytnikiem kodów kreskowych, czytnikiem kart, mikrofonem lub ekranem dotykowym, tę przepustowość należy sprawdzić na wczesnym etapie. Przed zatwierdzeniem modułu zapisz rozdzielczości, szybkości klatek, formaty oraz pobór mocy zgłaszane przez oprogramowanie produkcyjne, a nie kopiuj specyfikacji marketingowej czujnika.
Stała ostrość musi odpowiadać układowi terminala
Moduł OV2710 wykorzystuje stałą ostrość z podanym kątem widzenia wynoszącym 70 stopni. Brak silnika do ustawiania ostrości oznacza brak zużycia i ryzyka nieprawidłowego powrotu do pozycji, dlatego stała ostrość często stanowi niezawodny wybór dla terminala – pod warunkiem, że odległość robocza pozostaje w kontrolowanym zakresie. Aparat umieszczony nad ekranem może wymagać ujęcia użytkownika w odległości od 60 do 100 cm. Inteligentna szafka może potrzebować jednoczesnego ujęcia zarówno użytkownika, jak i obszaru przegródek, podczas gdy terminal identyfikacyjny może umieszczać dokument znacznie bliżej obiektywu. Jedno ustawienie ostrości nie będzie odpowiednie dla wszystkich trzech konfiguracji instalacyjnych. Przetestuj aparat wraz z końcową obudową oraz szkłem osłonowym.
Zweryfikuj ekspozycję i inne ustawienia obrazu we wszystkich systemach operacyjnych
Arkusz danych może zawierać informacje o jasności, kontraście, nasyceniu, gamie, bilansie bieli i ustawieniach ekspozycji, ale aplikacja może nie być w stanie używać każdego z tych ustawień na każdym systemie operacyjnym. Jedna aplikacja może pozostawić ekspozycję w trybie automatycznym; inna może zapisać stałą wartość przy uruchomieniu. Niektóre programy resetują ustawienia kamery po ponownym podłączeniu przez USB, podczas gdy inne zachowują poprzednie wartości. Różnice te stają się widoczne w terminalu zainstalowanym w pobliżu wejścia. Jasne drzwi mogą spowodować, że twarz użytkownika znajdzie się w cieniu, a zmiana zachowania ekspozycji po ponownym uruchomieniu może wpłynąć na skuteczność rozpoznawania, mimo że sprzęt pozostał bez zmian.
Zdefiniuj zatwierdzony zestaw sterowania dla każdego systemu operacyjnego. Następnie powtórz te same testy po zimnym starcie, ciepłym restarcie, odłączeniu i ponownym podłączeniu USB oraz po restarcie aplikacji. Kamera może zachowywać się inaczej w każdym z tych stanów; przejście tylko jednego testu nie gwarantuje zgodności.
Gdzie znajduje się moduł USB OV2710
Moduł kamery USB Sinoseen OV2710 to praktyczny punkt wyjścia dla terminali wymagających jednego strumienia 1080p, połączenia USB 2.0 oraz stałej pozycji kamery. Jego czujnik o przekątnej 1/2,7 cala i piksele o rozmiarze 3,0 µm nadają się do ogólnego przechwytywania wideo, kontroli dostępu, dzwonków wideo oraz terminali samoobsługowych. Podana wielkość płytki wynosi 38 × 38 mm. Wymiary płytki, kąt obiektywu oraz oprogramowanie układowe mogą zostać dopasowane w ramach projektu. niestandardowy moduł kamery moduł jest zasilany z magistrali USB napięciem 5 V, przy zadeklarowanym prądzie roboczym wynoszącym 200 mA.
OV2710 wykorzystuje migotkę przesuwną (rolling shutter), dlatego nie jest naturalnym pierwszym wyborem do inspekcji taśmociągów wysokiej prędkości ani szybkiego skanowania kodów kreskowych. Zakres temperatur roboczych określony jako 0°C–55°C należy również porównać z temperaturą panującą w gotowym terminale. Sprzęt przeznaczony do zastosowań zewnętrznych może wymagać innego rozwiązania termicznego lub konfiguracji kamery. Jeśli projekt zakłada użycie kilku kamer, dłuższych odcinków kabli lub nieskompresowanych strumieni o wysokiej rozdzielczości, bardziej odpowiednim rozwiązaniem może być Moduł kamery USB 3.0 moduł GMSL.
Przetestuj próbkę na produkcyjnym hoście
Nie należy przeprowadzać weryfikacji próbki tylko na jednym laptopie i na tym kończyć. Należy użyć procesora produkcyjnego, wydać obraz systemu, rzeczywistą aplikację, wewnętrzny koncentrator oraz zaplanowany kabel. Należy uruchomić kamerę przez pełny cykl działania. Podczas tego testu należy wielokrotnie ponownie uruchamiać terminal, odłączać i przywracać zasilanie USB, wchodzić i wychodzić z trybu uśpienia oraz równocześnie obsługiwać inne urządzenia peryferyjne USB. Należy zanotować, czy kamera jest wykrywana za każdym razem, w jakich trybach aplikacja faktycznie może zostać uruchomiona oraz czy obraz pozostaje stabilny przy rzeczywistym oświetleniu terminala. Wyraźny podgląd dowodzi bardzo niewiele. Dla producenta terminali ważniejsze są powtarzalne uruchomienia i stabilny strumień niż jedno atrakcyjne zdjęcie testowe.
Co zatwierdzić przed masową produkcją
Zatwierdzenie powinno obejmować pełną konfigurację kamery, a nie tylko nazwę czujnika. Trzeba ustalić wymiary płytki PCB, położenie złącza, kabel i ekranowanie, pole widzenia obiektywu, odległość ostrości, identyfikatory USB, domyślne ustawienia obrazu, tryby wideo zgłaszane przez oprogramowanie układowe oraz przetestowane platformy hosta. Jeśli którykolwiek z tych elementów pozostaje nieustalony, próbkę należy traktować jako jednostkę inżynieryjną, a nie referencyjny produkt gotowy do produkcji. W przypadku niestandardowego wymagania mechanicznego lub firmware’owego skontaktuj się z Sinoseen z podaniem docelowej płytki, systemu operacyjnego, odległości roboczej oraz wymaganego trybu strumieniowania przed złożeniem wniosku o ostateczną próbkę.
Często zadawane pytania
Czy UVC oznacza, że kamera będzie działać na każdym systemie operacyjnym?
Nie. UVC eliminuje znaczną część pracy związanej z tworzeniem własnych sterowników, ale host nadal wymaga obsługi kamer USB, odpowiedniej konfiguracji systemu oraz aplikacji, która potrafi otworzyć wymagany tryb wideo.
Czy USB 2.0 wystarcza dla kamery terminalowej o rozdzielczości 1080p?
Często tak, szczególnie gdy kamera dostarcza wyjścia MJPEG. Wynik zależy jednak od szybkości kadrowania, liczby urządzeń podłączonych do wewnętrznego koncentratora oraz przepustowości wykorzystywanej przez inne urządzenia peryferyjne.
Czy stała ostrość jest odpowiednia do przechwytywania twarzy?
Tak, o ile pozycja kamery i odległość użytkownika są w miarę kontrolowane. Ostateczną ostrość należy potwierdzić przy zainstalowanym obudowie produkcyjnej i szkle ochronnym; test na otwartym stanowisku nie wystarcza.
Co zwykle wymaga dostosowania przed produkcją masową?
Typowymi elementami wymagającymi dostosowania są wymiary płytki PCB, położenie złączy, długość kabli, pole widzenia obiektywu, odległość ostrości oraz identyfikatory urządzeń USB, domyślne ustawienia obrazu i tryby wideo zgłaszane przez oprogramowanie sprzętowe przeznaczone na produkcję.