Skip to main content

[raspberry pi] 카메라 모듈 제어하기


라즈베리파이 카메라 모듈을 명령어 또는 파이썬으로 제어하는 기초적인 방법이다.



1. 카메라 모듈 연결하기

라즈베리파이에 카메라 모듈을 연결하면 되며, 이때 방향을 알맞게 꽂아야한다. (파란색 라벨이 포트쪽으로 향하게 장착하면 되며, 디스플레이 포트에 연결하면 안됨)

image



2. 카메라 모듈 연결 확인

라즈베리파이에서 터미널로 들어가서 아래 명령어를 이용하여 카메라 모듈이 정상적으로 연결되었는지 확인한다.

vcgencmd get_camera

아래와 같이 supporteddetected가 둘다 1로 표기가 되었다면 제대로 연결이 된것이며,

supported=1 detected=1

이후 아래 명령어를 이용하여 사진을 한장 찍어본다.

raspistill -o picture1.jpg

이때 아래와 같은 문구가 뜨게 된다면, 케이블들이 제대로 결합이 되어있는지 확인을 하고 다시 명령어를 실행시킨다. 그래도 다시 아래 문구가 뜨게 된다면 카메라 모듈 자체가 고장일 가능성이 크다.

Camera control callback  cmd=0x4f525245mmal: No data received from sensor. Check all connections, including the Sunny one on the camera board


3. 명령어를 이용하여 카메라 모듈 작동하기

아래 명령어를 입력하여 카메라 모듈을 이용해 사진을 찍을 수 있다.

raspistill -o picture1.jpg

만약 좌우가 반전되있으면 -hf, 상하가 반전되어 있다면 -vf 옵셥을 사용하여 카메라를 뒤집을 수 있다.

raspistill -vf -hf -o picture1.jpg

만약 동영상을 찍고 싶다면 raspivid 명령어를 이용하면 된다. (시간 옵션을 입력하지 않으면 5초만 촬영됨)

raspivid -o video1.h264

시간 옵션은 밀리초 단위로 추가해주면 된다.

raspivid -o video1.h264 -t 10000


4. 사진 찍는 파이썬 코드

사진을 한장 찍는 파이썬 코드이며, 코드를 응용해서 원하는 코드를 작성하면 된다.

(이때 time.sleep()을 생략한다면, 카메라가 준비되기 전 찍히기 때문에 코드 실행 후 가장 첫번째에 찍힌 사진은 어둡게 나오게 된다.)

import picamera
import time

camera = picamera.PiCamera()
camera.resolution = (2592, 1944) # (64, 64) ~ (2592, 1944) px

time.sleep(3)
camera.capture('snapshot.jpg')


5. 동영상 찍는 파이썬 코드

동영상을 찍는 파이썬 코드이며, 마찬가지로 응용해서 코드를 변형시키면 된다.

import picamera
import time

camera = picamera.PiCamera()
camera.resolution = (1920, 1080) # (64, 64) ~ (1920, 1080) px
camera.framerate = 30 # 1 ~ 30 fps

camera.start_recording('video.h264')
time.sleep(10)
camera.stop_recording()


참고자료