Wstęp
Dodanie amoduł kamerydo systemu wbudowanego otwiera możliwości widzenia maszynowego, bezpieczeństwa, robotyki i Internetu Rzeczy. W przeciwieństwie do komputera stacjonarnego, do którego wystarczy podłączyć kamerę internetową USB, integracja wbudowana wymaga dokładnego przemyślenia interfejsu, sterowników, zasilania i rozmiaru. W tym artykule omówiono praktyczne kroki integracji różnych typów kamer – od amały moduł kameryz MIPI CSI-2, do aModuł kamery CMOSz USB, a nawet jak aModuł czujnika podczerwieni UARTmoże współpracować z kamerą.
Krok 1: Wybierz odpowiedni moduł kamery
Najpierw wybierz Amoduł kamery z czujnikiemktóry pasuje do ograniczeń Twojego systemu wbudowanego.
- Interfejs– Typowe opcje: MIPI CSI-2 (niskie opóźnienia, niski pobór mocy, bezpośrednio do procesora), USB (UVC, plug-and-play, dłuższe kable) lub równoległe (więcej pinów, starsze). W przypadku większości systemów wbudowanych najlepszy jest MIPI.
- Rezolucja– do wielu zadań wystarczy 720p lub 1080p; 4K wymaga wydajnego procesora.
- Rozmiar fizyczny – A mały moduł kamery(np. 8 mm × 8 mm) pasuje do urządzeń kompaktowych. Do małych przestrzeni dostępne są moduły COB na poziomie płyty.
- Wrażliwość– W przypadku słabego oświetlenia lub podczerwieni wybierz aModuł kamery CMOSz podświetlanymi pikselami (BSI).
Uwaga: AModuł czujnika podczerwieni UARTnie jest aparatem. Wysyła dane dotyczące odległości lub obecności przez UART. Możesz dodać taki, który będzie wykrywał ruch i wybudzał kamerę.
Krok 2: Poznaj interfejs sprzętowy
- MIPI CSI-2– Większość procesorów wbudowanych (Raspberry Pi, i.MX, STM32MP, Jetson) posiada dedykowane złącze CSI. Potrzebujesz kabla taśmowego i odpowiedniego złącza. Themoduł kamery malinowej 2to klasyczny przykład – podłącza się go bezpośrednio do portu CSI Pi.
- USB– Jeśli Twój procesor ma host USB (np. Raspberry Pi, BeagleBone), możesz użyć modułu kamery USB. Sterownik UVC jądra Linuksa obsługuje to automatycznie.
- Równolegle / DVP– Starsze lub słabsze mikrokontrolery (takie jak niektóre STM32F4) korzystają z interfejsu równoległego. Wymaga to wielu pinów GPIO i starannego wyczucia czasu.
- Moduł czujnika podczerwieni UART– Podłącz go do UART (TX/RX) na procesorze. Przeczytaj jego dane szeregowe, aby uzyskać wartości odległości lub obecności.
Krok 3: Przygotuj system operacyjny i sterowniki
- Linuksa– W przypadku kamer MIPI włącz odpowiednią nakładkę drzewa urządzeń (np. na Raspberry Pi: dtoverlay=imx219). Kamery USB korzystają z wbudowanego sterownika uvcvideo. Do przechwytywania użyj Video4Linux (V4L2). Polecenie: v4l2-ctl --list-devices.
- Android– Kamery MIPI są obsługiwane przez kamerę HAL. Oferty BSP dostawców obejmują sterowniki.
- RTOS (FreeRTOS, Zephyr)– Być może trzeba będzie napisać sterownik. Prostsze kamery równoległe są łatwiejsze.
- DlaModuł czujnika podczerwieni UART, po prostu przeczytaj znaki z urządzenia szeregowego i przeanalizuj je.
Krok 4: Integracja fizyczna
- Montowanie– Zabezpieczmały moduł kameryza pomocą śrub lub kleju. Dopasuj soczewkę do dowolnego okna.
- Kable– wstążki MIPI są delikatne; trzymaj je krótkie i unikaj ostrych zakrętów. Kable USB mogą być dłuższe, ale wymagają odciążenia.
- Moc– Sprawdź napięcie kamery (zwykle 3,3 V lub 5 V). Niektóre moduły wymagają wielu materiałów eksploatacyjnych. AModuł kamery CMOSz wbudowanym regulatorem może potrzebować jedynie 3,3 V.
- EMI– Sygnały MIPI mogą powodować zakłócenia. Stosuj kable ekranowane i płaszczyzny uziemiające.
Krok 5: Napisz oprogramowanie umożliwiające dostęp do kamery
- Korzystanie z wersji V4L2 (Linux)– Otwórz /dev/videoX, ustaw format (np. V4L2_PIX_FMT_YUYV lub MJPEG), zażądaj buforów i rozpocznij przesyłanie strumieniowe. Wiele osób korzysta z libcamera lub GStreamer.
- Na Raspberry Pi z modułem kamery Raspberry 2– Użyj libcamera-jpeg, aby przechwycić nieruchomy obraz:
- libcamera-jpeg -o test.jpg
- Kamera USB z Pythonem– OpenCV może uzyskać dostęp do dowolnej kamery UVC: cap=cv2.VideoCapture(0)
- Odczyt modułu czujnika podczerwieni UART– Otwórz port szeregowy (np. /dev/ttyS0) z prawidłową szybkością transmisji i odczytaj ramki danych.
Krok 6: Optymalizacja pod kątem osadzonych ograniczeń
Zmniejsz liczbę klatek na sekundę (np. 5–15 kl./s), aby oszczędzać procesor i energię.
Niższa rozdzielczość – Full HD to często przesada; użyj mniejszego ROI.
Użyj obszaru zainteresowania (ROI) – odczytaj tylko część czujnika.
Wyzwalanie innym czujnikiem – aModuł czujnika podczerwieni UARTmoże obudzić kamerę tylko w przypadku wykrycia ruchu.
Krok 7: Debuguj typowe problemy
- Nie /dev/videoX– Sprawdź dmesg|wideo grepa. W przypadku MIPI sprawdź nakładkę drzewa urządzeń.
- Zielony/różowy obraz– Zły format kolorów lub nie ustawiony balans bieli.
- Migotanie– Dostosuj ekspozycję lub automatyczną kontrolę wzmocnienia.
- Wysoki procesor– Użyj kodowania sprzętowego (H.264) lub niższej rozdzielczości.
Przykład: Raspberry Pi + moduł kamery malinowej 2 + Czujnik podczerwieni UART
Podłącz kamerę do portu CSI.
Podłącz czujnik odległości na podczerwień UART do pinów GPIO UART.
Napisz skrypt w Pythonie, który odczytuje czujnik. Gdy odległość spadnie poniżej progu, przechwyć obraz JPEG z aparatu.
W ten sposób powstaje prosta kamera wyzwalana ruchem.
Wniosek
Integracja Amoduł kamerydo systemu wbudowanego wymaga dokonania właściwego wyborumoduł kamery z czujnikiem(interfejs, rozmiar, rozdzielczość), prawidłowe podłączenie (MIPI lub USB), konfiguracja systemu operacyjnego/sterownika i napisanie wydajnego oprogramowania do przechwytywania. Amały moduł kamerydoskonale nadaje się do kompaktowych projektów. AModuł kamery CMOSoferuje nowoczesną wydajność przy niskim poborze mocy. Themoduł kamery malinowej 2jest łatwym wyborem w przypadku prototypowania. Dodanie aModuł czujnika podczerwieni UARTumożliwia inteligentne budzenie lub fuzję danych. Dzięki starannemu planowaniu możesz dodać niezawodną wizję do dowolnego urządzenia wbudowanego.
Skontaktuj się z nami w sprawie niestandardowychmoduł kamerywsparcie integracyjne.





