아래 설명 도움 받은곳 : http://coeleveld.com/harald/291-pi-camera
카메리를 사용한다면 아래부터 확인한다.
라즈베리 파이의 카메라 모듈을 사용한다면
$sudo raspi-config 명령을 사용하여 카메라를 Enable 해야 한다. 아래 명령으로 라즈베리 파이 카메라 모듈이 정상으로 동작하는지 확인한다
$raspistill -o myimage.jpg -- 이미지 한장 촬영
$raspivid -o myvideo.h264 -t 10000 -- 10초 동영상 촬영
Pi Camera + Motion
현재 라즈베리 파이에 연결한 CSI Camera Board 는 USB webcam이 나니다. 그래서 라즈베리 파이가
카메라를 비데오 장치 (/dev/video0) 로 인식하게 Video4Linux driver를 사용해야 한다.
UV4L은 리눅스에서 카메라를 이용한 영상의 획득과 출력 장치의 제어를 위한 API, 드라이버 프레임 워크를 가리키며, USB 웹캠, TV 튜너장치등을 지원한다.
라즈베리 파이에 UV4L 의 설치와 업그레이드
UV4L 설치를 위해 터미널에서 아래와 같은 명령을 실행한다.
$ wget http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc && sudo apt-key add ./lrkey.asc
실행 내용을 보자.
pi@raspberrypi ~ $ wget http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc && sudo apt-key add ./lrkey.asc --2015-06-19 01:34:42-- http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc Resolving www.linux-projects.org (www.linux-projects.org)... 62.149.140.25 Connecting to www.linux-projects.org (www.linux-projects.org)|62.149.140.25|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1337 (1.3K) [application/pgp-signature] Saving to: `lrkey.asc' 100%[========================================================================>] 1,337 --.-K/s in 0s 2015-06-19 01:34:43 (18.0 MB/s) - `lrkey.asc' saved [1337/1337] OK pi@raspberrypi ~ $ ls -al lrkey.asc -rw-r--r-- 1 pi pi 1337 Jul 22 2013 lrkey.asc pi@raspberrypi ~ $ cat lrkey.asc -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.12 (GNU/Linux) mQGiBD/c9TgRBAC25mn8E0zR3Pmh7aSXbWBUtuWpk5uDK86MPy8hEWhGyJuqwnvH jfmnksCpTy+XZ9Z2MxLgLrcbFK/nECBSDsqvooQuN+5imwiOKG9zA3hfcV/h3GG7 mkN2ZJ3tC0S/7W9CNCaEAhsB8yqyywzw4Hfu/IK8lx0MOXsMN0pc8LPoKwCg6iRe wADxD8KS5Tkj4/YGT9J3aY8D/RIE58M2Ulq8vLWj8exxJF0y7nejYs2nAk6l1ZEe a/lziz5YgKKLJwgB5jLjteHLwuJpBi5OxPX0bb1yIsrjv4ap7vIQEwwRjCLXCPUg QFuySyNrDAPuIGgaa5BMTOGqRvxdGq6QKIhM2ffsaMFq7hp4y+pxHPXTTZniUxTt nZXRBACuknzahJOhPND1XVCqvsikLOwn6FYY503s1QO9kezZjHMDGAOZgHfu9joz Z03FlComfDrZJvSHBM8R6exYdBOyuFwVIB6wqDhs7YFp4Lh9orit/KAJaGMAYDil XIY1hShKveejy+q2hkixOlL/TU/BQwKbtZPgvr15UNF1geJLALQrTHVjYSBSaXNv bGlhIDxsdWNhLnJpc29saWFAc3R1ZGlvLnVuaWJvLml0PohZBBMRAgAZBQI/3PU4 BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRCZ2l0q/OY1pCoZAKDn5NWTQNpvLFJRiQFJ JOgV1PZFOACeKvgWd4I0zw/+exwxkmgmFXmACUm5AQ0EP9z1cBAEAJPiWTxKW3As s45VI8/5uwmUqfsbXDLIco8NSWiCacoJPyCP7skcGxb7zEtEP/DSBTJg4+1Y1qGX fMMN725plvwEUpMdwzQRDaF6gStttsGY/MMO5o5BtcH4f9cQ3vXUWFWTQp8Hsrhd uyOGo5E1lI/YAUl1l+UK+UX+hq9ET6mfAAMFA/99FiBNx1M6s4wN489yHRVsFsTp Nv5itqtZU6WrYWN/zhk0vEywadriWVkpV5QpIXAC86oCGbHe59PT2R2ER4i+J8JN x1qu6XmEuXnXEWPtBawd7D9JFG0d7BlMRnMqBnuopdDmrK3B9KMq4ambFIwc7Oi2 Hp5XCwBOHoBrglzpQYhGBBgRAgAGBQI/3PVwAAoJEJnaXSr85jWkRY0AoI12RloF /71dKJZ6Mws2HM8EBnP8AJ9ik4y7DEzRakKm1rGopUKRRF5Qqg== =M2b1 -----END PGP PUBLIC KEY BLOCK----- pi@raspberrypi ~ $
다음 파일을 여로 아래 내용을 추가한다. $sudo nano /etc/apt/sources.list :
deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main
아래 명령을 실행한다.
$ sudo apt-get update
$ sudo apt-get install uv4l uv4l-raspicam
위 두명령은 가장 최근 버전으로 UV4L 를 업그레이드 하고 인스톨한다.
부팅시에 UV4L 모듈이 로드되도록 하려면 아래와 같이 추가적으로 패키지를 설치한다.
$ sudo apt-get install uv4l-raspicam-extras
설치 화면을 아래에 나타낸다. 아래부분에 warning 은 무시하기 바란다.
pi@raspberrypi ~ $ sudo apt-get install uv4l-raspicam-extras Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: uv4l-raspicam-extras 0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded. Need to get 4,264 B of archives. After this operation, 44.0 kB of additional disk space will be used. Get:1 http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy/main uv4l-raspicam-extras armhf 1.2 [4,264 B] Fetched 4,264 B in 0s (4,540 B/s) Selecting previously unselected package uv4l-raspicam-extras. (Reading database ... 84575 files and directories currently installed.) Unpacking uv4l-raspicam-extras (from .../uv4l-raspicam-extras_1.2_armhf.deb) ... Setting up uv4l-raspicam-extras (1.2) ... update-rc.d: using dependency based boot sequencing update-rc.d: warning: default start runlevel arguments (2 3 4 5) do not match uv4l_raspicam Default-Start values (S) update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match uv4l_raspicam Default-Stop values (none) pi@raspberrypi ~ $
위 패키지는 사용자 편의를 위해 드라이버의 실행과 종료를 위한 스크립트를 제공한다. 사용법은 아래와 같다.
$ sudo service uv4l_raspicam restart -- UV4L 서비스 시작명령
pi@raspberrypi ~ $ sudo service uv4l_raspicam restart [....] Starting UV4L Raspberry CSI Camera Driver: uv4l <notice> [core] Trying driver 'raspicam' from built-in drivers... <warning> [core] Driver 'raspicam' not found <notice> [core] Trying driver 'raspicam' from external plug-in's... <notice> [driver] Dual Raspicam Video4Linux2 Driver v1.9.27 built Feb 21 2015 <notice> [driver] Selected format: 1920x1080, encoding: mjpeg, JPEG Video Capture <notice> [driver] Framerate max. 30 fps <notice> [driver] ROI: 0, 0, 1, 1 <notice> [core] Device detected! <notice> [core] Registering device node /dev/video0 pi@raspberrypi ~ $
UV4L 서비스를 시작할때 uv4l 는 컨피그 파일 /etc/uv4l/uv4l-raspicam.conf 을 분석하여 드라이버 옵션으로 설정된 값들을 반영한다. 원하는 값으로 수정한 경우 부팅시에 그대로 적용된다.
이제 CSI 카메라 모듈을 위한 UV4L core component 와 Video4Linux2 driver 를 설치하였다. 예기치 않은 에러와 드라이버 에러가 발생하면 업데이트를 실행하고 다시 해보기 바란다.
$sudo apt-get update && sudo apt-get upgrade
더 많은 정보와 옵션을 보기 위해 아래 명령어를 사용한다.
$ man uv4l
$ man uv4l-raspicam
사용 가능한 옵션을 보기위해 아래 명령어를 사용한다.
$ uv4l --help --driver raspicam --driver-help
uv4l-raspicam-extras package 을 설치하지 않았다면 아래 명령어를 사용하여 수동으로 로드해야 한다.
$ uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --encoding jpeg
아래는 JPEG 이미지 캡쳐 명령어를 실행한다.
$ dd if=/dev/video0 of=snapshot.jpeg bs=11M count=1
실행되는 드라이버를 종료하기 위해 아래 명령어를 사용한다.
$ pkill uv4l
라즈베리 파이 카메라 보드 드라이버에 더해서 아래와 같은 추가 모듈과 드라이버를 설치할 수 있다.
$ sudo apt-get install uv4l-server
$ sudo apt-get install uv4l-uvc
$ sudo apt-get install uv4l-xscreen
$ sudo apt-get install uv4l-mjpegstream
아래 명령어로 uv4l 을 다시 시작한다.
$ sudo service uv4l_raspicam restart -- UV4L 서비스 시작명령
위의 패키지들에서 HTTP Streaming Server module을 설치하였다면 브라우저에 접속하여 라즈베리 파이의 IP, 주소에 접속한다.
http://raspberry Pi IP 주소:8080/
매뉴얼은 아래 명령으로 볼 수 있다.
$ man uv4l-server
$ man uv4l-uvc
$ man uv4l-xscreen
$ man uv4l-mjpegstream
--- 아래 모션 캡쳐 부분을 참고하라.
Install Motion from the official Raspbian repository:
raspberrypi ~ $ sudo apt-get install motion
To start with Motion, download and try the following configuration file, which you can change later according to your needs:
raspberrypi ~ $ wget http://linux-projects.org/downloads/examples/motion.conf
Now run the driver in background, for example:
raspberrypi ~ $ uv4l --driver raspicam --auto-video_nr
[notice] [core] Device detected!
[notice] [core] Registering device node /dev/video0
Finally, run Motion:
raspberrypi ~ $ LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so motion -c ./motion.conf
If you run motion as daemon and the camera is not detected properly for some reasons, try to load the driver with the --extension-presence=1 option. Check if the Motion HTTP server is up and running on your Raspberry Pi. For example, from your PC with firefox:
mypc ~ $ firefox http://raspberrypi:8081/
---
cd /etc/motion
wget http://linux-projects.org/downloads/examples/motion.conf
uv4l --driver raspicam --auto-video_nr --extension-presence=1
LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so motion -c /etc/motion/motion.conf
[20518728] Processing thread 0 - config file /etc/motion/motion.conf
[20518728] Motion 3.2.12 Started
[20518728] Motion going to daemon mode
[2099016] Processing thread 0 - config file /etc/motion/motion.conf
[2099016] Motion 3.2.12 Started
[2099016] ffmpeg LIBAVCODEC_BUILD 3482368 LIBAVFORMAT_BUILD 3478785
[0] Thread 1 is from /etc/motion/motion.conf
[0] motion-httpd/3.2.12 running, accepting connections
[0] motion-httpd: waiting for data on port TCP 8080
[1] Thread 1 started
[1] cap.driver: "raspicam"
[1] cap.card: "Camera Board OV5647"
[1] cap.bus_info: "CSI"
[1] cap.capabilities=0x05000001
[1] - VIDEO_CAPTURE
[1] - READWRITE
[1] - STREAMING
[1] Test palette YU12 (320x240)
[1] Using palette YU12 (320x240) bytesperlines 480 sizeimage 115200 colorspace 00000000
[1] found control 0x00980900, "brightness", range 0,100
[1] "brightness", default 50, current 50
[1] found control 0x00980901, "contrast", range -100,100
[1] "contrast", default 0, current 0
[1] found control 0x00980902, "saturation", range -100,100
[1] "saturation", default 0, current 0
[1] found control 0x0098090e, "red balance", range 0,800
[1] "red balance", default 100, current 100
[1] found control 0x0098090f, "blue balance", range 0,800
[1] "blue balance", default 100, current 100
[1] found control 0x08000000, "shutter speed", range 0,65535
[1] "shutter speed", default 0, current 0
[1] found control 0x08000001, "zoom factor", range 1,8
[1] "zoom factor", default 0, current 1
[1] mmap information:
[1] frames=4
[1] 0 length=115200
[1] 1 length=115200
[1] 2 length=115200
[1] 3 length=115200
[1] Using V4L2
[1] Resizing pre_capture buffer to 1 items
[1] Started stream webcam server in port 8081
[1] File of type 1 saved to: /home/pi/01-20150115082251-00.jpg
^C
[0] httpd - Finishing
[0] httpd Closing
[0] httpd thread exit
[1] Thread exiting
[1] Calling vid_close() from motion_cleanup
[1] Closing video device /dev/video0
[0] Motion terminating
Experiment with changes in Motion config file:
daemon: on
width: 1280
height: 720
output_normal: off // do not save still images
webcam_localhost: off // allow remote access to live video stream
일단 여기까지...
여기부터는 잘 안되서 다음 포스팅으로...ㅠ.ㅠ.
'개발자 > Raspberry Pi' 카테고리의 다른 글
오픈 소스 하드웨어 추천 사이트 정리 (0) | 2015.08.02 |
---|---|
라즈베리 파이 SD 카드 만들어 부팅하기 (0) | 2015.07.26 |
라즈베리파이 개발환경을 3가지 방법으로 구현하기 (3) | 2015.07.24 |
Making Raspberry Pi Web Controls (0) | 2015.07.23 |
라즈베리 파이 WiFi 드롭아웃 방지, 인터넷 안끊기게 하는 방법 (0) | 2015.05.27 |
라즈베리 파이2 에 APM (Apache + PHP + MySQL)을 설치 (2) | 2015.05.20 |
리눅스에서 프로세스 중단 kill 하는 방법 (0) | 2015.04.29 |
타임랩스 기능 - Python 파일 자동실행하게 만들기 파이선 파일 자동실행되게.... (9) | 2015.04.24 |
더욱 좋은 정보를 제공하겠습니다.~ ^^