라즈베리파이 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 |
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 웹캠을 라즈베리파이에 연결해봅니다. 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 |
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 포함 )
'Raspberry Pi > Raspberry Pi 개발환경' 카테고리의 다른 글
Raspberry PI 3에서 시스템 호출(system call ) 구현 (4) | 2017.11.11 |
---|---|
Raspberry Pi 3를 위해 커널 크로스 컴파일하기 (3) | 2017.11.11 |
Visual Studio 2017에서 Raspberry Pi 3를 위한 Windows 10 IoT App 작성하는 방법 (4) | 2017.08.23 |
Raspberry PI와 윈도우 PC간 파일 전송 (10) | 2016.12.04 |
error: ‘SA_INTERRUPT’ undeclared (0) | 2015.02.11 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!