반응형

라즈베리파이 3 관련 다음 포스팅들이 있습니다. 문제가 없는지 확인하며 포스팅 내용을 보완하기 위해 순서대로 다시 해보고 있습니다. 

[임베디드/Raspberry Pi] - Raspberry Pi 3 처음 사용해 보기

[임베디드/Raspberry Pi] - Raspberry pi 3에서 무선랜(WIFI) 사용하기

[임베디드/Raspberry Pi] - Raspberry PI 3를 VNC로 접속하여 원격 제어 (x11vnc)

[임베디드/Raspberry Pi] - Raspberry pi 3와 Android간에 bluetooth 태스트 ( 문자열 주고 받기 )



C920 연결 태스트

C170 연결 태스트

라즈베리파이의 카메라 인터페이스 활성화

VNC로 웸캠 동작 확인




구입가격이 25000원 정도인 Logitech C170 Webcam과 구입가격이 10만원정도인 Logitech HD Pro Webcam C920을 라즈베리파이 3에 연결하는 태스트를 진행 해보았습니다.  ( 지금은 C920의 개선된 버전인 C920R도 나와있습니다..)


C170 웹캠은 최대 500만 화소이고 최대 해상도는 1024 x 768를 지원하며 초당 30 프레임 (30 fps)입니다..


C920 웹캠은 최대 1500만 화소이고 최대 해상도는 풀 HD (1920 × 1080, HD 1080p)를 지원하며 초당 30 프레임 (30 fps)입니다.  이 모델의 후속 기종인 C922에서는 720p 동영상의 경우 초당 60 프레임 (60 fps)이 가능하다고 하니 구입하고 싶어집니다.


여기서 화소가 사진 찍을 경우에 지원하는 거라 실제로 동영상으로 촬영시에는 화소가 좀 떨어집니다. 



C920 연결 태스트


먼저 C920 웹캠을 라즈베리파이에 연결하였습니다.  dmesg 명령을 실행시켜보면 마지막에 아래와 같은 메시지를 볼 수 있습니다. 모델명 HD Pro Webcam C920이 보입니다. 여기서 에러가 없으면 제대로 연결된 것입니다. 

1
2
3
4
5
[19754.934881] usb 1-1.5: new high-speed USB device number 4 using dwc_otg
[19756.156751] usb 1-1.5: New USB device found, idVendor=046d, idProduct=082d
[19756.156775] usb 1-1.5: New USB device strings: Mfr=0, Product=2, SerialNumber=1
[19756.156788] usb 1-1.5: Product: HD Pro Webcam C920
[19756.156800] usb 1-1.5: SerialNumber: 721DDE0F
cs


lsusb명령을 사용하면 어느 Bus에 웹캠이 연결되었는지 확인이 가능합니다.  USB 2.0의 경우 하나의 BUS에 두 개의 웹캠을 연결하면 문제가 발생하지만 USB 3.0의 경우에는 대역폭이 더 크기때문에 문제가 없을거라고 생각됩니다.  다행히 라즈베리파이 3는 USB 3.0을 지원합니다.  추후 2 개의 웹캠을 연결해서 문제 없는지 테스트 해봐야 겠습니다.

1
2
3
4
5
pi@raspberrypi:~ $ lsusb
Bus 001 Device 004: ID 046d:082d Logitech, Inc. HD Pro Webcam C920
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
cs


웹캠 정보를 확인해봅니다. YUYV422 포맷으로 RAW데이터를 받아올 수 있겠군요..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pi@raspberrypi:~ $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUYV 4:2:2
 
        Index       : 1
        Type        : Video Capture
        Pixel Format: 'H264' (compressed)
        Name        : H.264
 
        Index       : 2
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : Motion-JPEG
cs

보다 자세한 정보는 다음 명령을 통해 볼 수 있습니다. 지원하는 해상도와 fps가 표시됩니다. 640x480크기로 30프레임이 나옴을 알수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pi@raspberrypi:~ $ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUYV 4:2:2
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 160x90

-------------------------이하 생략---------------------------
cs


C170 연결 태스트

이제 C170 웹캠을 라즈베리파이에 연결해봅니다. dmesg 명령을 사용해보면 C170 모델명이 보입니다.

1
2
3
4
5
6
7
8
[  273.856891] usb 1-1.4: USB disconnect, device number 4
[  277.418757] usb 1-1.4: new high-speed USB device number 5 using dwc_otg
[  277.612212] usb 1-1.4: New USB device found, idVendor=046d, idProduct=082b
[  277.612236] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  277.612249] usb 1-1.4: Product: Webcam C170
[  277.612262] usb 1-1.4: Manufacturer:  
[  277.614921] uvcvideo: Found UVC 1.00 device Webcam C170 (046d:082b)
[  277.621426] input: Webcam C170 as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/input/input1
cs


lsusb 명령으로는 모델명은 안보이고 로지텍만 출력됩니다.

1
2
3
4
5
pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 046d:082b Logitech, Inc. 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
cs


웹캠 정보를 확인해봅니다. C920과 마찬가지로 RAW데이터를 YUYV422 포맷으로 가져올 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
pi@raspberrypi:~ $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
    Index       : 0
    Type        : Video Capture
    Pixel Format: 'YUYV'
    Name        : YUYV 4:2:2
 
    Index       : 1
    Type        : Video Capture
    Pixel Format: 'MJPG' (compressed)
    Name        : Motion-JPEG
cs


640 x 480 크기로 30 프레임이 가능하다는 걸 볼 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
pi@raspberrypi:~ $ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
    Index       : 0
    Type        : Video Capture
    Pixel Format: 'YUYV'
    Name        : YUYV 4:2:2
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
 
......................이하 생략....................
cs



이후 과정은 C170과 C920이 동일하게 진행되었습니다. 카메라 설정은 한번만 해주면 계속 유지 됩니다.



라즈베리파이의 카메라 인터페이스 활성화

이제 카메라 지원을 활성화 하기 위해 다음 명령을 실행시킵니다. 

1
pi@raspberrypi:~ $ sudo raspi-config
cs

5 Enable Camera로 이동하여 엔터를 입력합니다.


Yes를 선택하고 엔터를 입력합니다. 잠시 후 카메라 인터페이스가 활성화 되었다는 메시지가 보입니다. 확인에서 엔터를 다시 입력하면 다시 위 화면으로 돌아옵니다. 이제 Finish로 이동하여 엔터를 입력하면 리부팅해야 한다고 물어봅니다. Yes를 선택하면 SSH접속이 끊어지고 이제 라즈베리파이가 재부팅됩니다. 


다시 터미널로 라즈베리파이3에 접속하여 다음 명령을 내려보면 /dev/video0가 보입니다. 웹캠 장치를 위한 디바이스 파일이 생성된 것입니다. 

1
2
pi@raspberrypi:~ $ ls /dev/video*
/dev/video0
cs



VNC로 웸캠 동작 확인

웹캠이 제대로 동작하는지 확인하기 위해 X윈도우용 프로그램인 cheese를 설치합니다. 

1
2
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install cheese
cs


터미널에서는 카메라 영상을 볼 수 없으므로, X윈도우 환경을 실행시켜야 합니다.  그래서 일단 VNC를 사용하여 라즈베리파이 3를 연결했습니다. 자세한 과정은 아래 포스팅에 소개되어 있습니다.  물론 직접 라즈베리파이 3에 모니터, 키보드, 마우스를 연결해서 테스트해 볼 수도 있지만 번거로워서 성능과 상관없는 간단한 태스트의 경우에는 이 방법을 선호합니다. 

[임베디드/Raspberry Pi] - Raspberry PI 3를 VNC로 접속하여 원격 제어 (x11vnc)


VNC 뷰어로 라즈베리파이3에 접속한 후,  왼쪽 상단에 있는 산딸기 아이콘을 클릭하면 메뉴가 보이는데 Sound & Video - Cheese를 선택하여 실행합니다.  실행이 안되면 터미널을 열어 실행시키면 됩니다. 


1
pi@raspberrypi:~ $ cheese 
cs



웹캠으로 부터 영상이 들어오는게 보입니다.  컴퓨터에서 웹캠을 사용할 때보다 느린 걸 확인 할 수 있는데 Cheese 프로그램의 문제로 보입니다. OpenCV나 V4L 라이브러리를 이용하여 프로그램을 작성해서 테스트 해보면 30 fps 속도로 영상이 화면에 보여지게 됩니다.  


그래도 VNC로 연결함으로 인해 좀 딜레이 생겨 화면이 갱신되는건 어쩔 수 없습니다.  성능 태스트가 필요하면 라즈베리파이3에 모니터를 연결해야 합니다.


라즈베리파이3에 OpenCV 3.1 라이브러리를 설치하여 웹캠 테스트 하는 과정은 아래 포스팅을 통해 소개되고 있습니다.

[임베디드/Raspberry Pi] - Raspberry Pi 3에 OpenCV 3.1 설치 ( opencv_contrib 포함 )


반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts