본문으로 건너뛰기
  1. Posts/

라즈베리파이 컴퓨트 모듈 4에 카메라 연결하기

·
Rpi
작성자
hw5e
page.hw5e.cc
목차

Raspberry Pi OS Bookworm 이후 기준이다. Bookworm에서 부트로더와 카메라 소프트웨어 양쪽이 크게 달라졌다.

컴퓨트 모듈의 문서에 잘 설명되어 있기는 한데 별 생각 없이 카메라 모듈 문서만 보면 낭패를 볼 수가 있다.

https://www.raspberrypi.com/documentation/computers/compute-module.html#attach-a-camera-module

카메라 연결
#

alt text
컴퓨트 모듈 4에는 카메라 단자가 2개 있는데 CM4 IO보드는 22핀 단자를 사용한다. 카메라 모듈이 보통 15핀짜리라 변환 케이블을 따로 준비해야 한다.
라즈베리파이의 15핀, 22핀 카메라 단자.
Rpi SBC
15핀 단자와 22핀 단자 # 라즈베리파이의 카메라 단자는 15핀짜리와 22핀 짜리 두종류가 있는데 15핀 짜리는 mipi csi 2레인까지 되고 22핀 짜리는 4레인까지 된다고 한다. 15핀은 핀 간격이 1mm인데 22핀은 0.5mm라 22핀이 핀 개수는 더 많은데 단자 크기는 더 작다. 원래는 Raspberry Pi Zero 보드 처럼 공간이 부족한 경우에 22핀 단자를 사용했지만 지금은 mipi csi 레인 개수를 늘리면서 Raspberry Pi 5에도 22핀 단자를 사용하는 등 22핀 단자가 쓰이는 경우가 늘어나고 있다. 그런데 라즈베리파이 카메라 모듈들은 사면 보통 15핀 케이블만 주기 때문에 변환해주는 케이블 같은 것을 따로 사든지 해야한다.

CAM1 단자와는 달리 CAM0 단자를 사용하려면 IO보드에서 단자를 점퍼 2개로 연결해줘야 한다.

alt text
보드에 친절하게 설명이 적혀있다.
CAM0 단자는 mipi csi 2레인이고 CAM1은 4레인이라고 한다.

/boot/firmware/config.txt 설정
#

공통적으로 카메라 자동 감지를 비활성화 하라고 한다.

camera_auto_detect=1

config.txt에 해당 문구가 있으면 1을 0으로 바꾸거나 주석처리 하면 된다.

자동 감지를 비활성화 하였기 때문에 부트로더가 어떤 디바이스트리를 로드할지 수동으로 지정해야 한다. 다음 내용을 카메라 모듈에 맞게 적어주면 된다.

카메라 모듈 종류 구문
카메라 모듈 v1 dtoverlay=ov5647
카메라 모듈 v2 dtoverlay=imx219
카메라 모듈 v3 dtoverlay=imx708
HQ 카메라 dtoverlay=imx477
글로벌 셔터 카메라 dtoverlay=imx296

CAM0 단자에 연결하는 경우 뒤에,cam0을 붙여야 한다. (어떤 가이드에는 CAM1번 단자에 연결하는 경우 ,cam1을 붙이라는 경우도 있는데 그냥 무시되는거라 붙이든 안붙이든 차이가 없다.)

연결 테스트
#

rpicam-* 명령어에 –list-cameras 옵션을 붙이면 연결된 카메라를 확인할 수 있다.

예시

rpicam-hello --list-cameras
Available cameras
-----------------
0 : imx219 [3280x2464 10-bit RGGB] (/base/soc/i2c0mux/i2c@1/imx219@10)
    Modes: 'SRGGB10_CSI2P' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop]
                             1640x1232 [41.85 fps - (0, 0)/3280x2464 crop]
                             1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
                             3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]
           'SRGGB8' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop]
                      1640x1232 [41.85 fps - (0, 0)/3280x2464 crop]
                      1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
                      3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

1 : imx296 [1456x1088 10-bit RGGB] (/base/soc/i2c0mux/i2c@0/imx296@1a)
    Modes: 'SRGGB10_CSI2P' : 1456x1088 [60.38 fps - (0, 0)/1456x1088 crop]

카메라를 2개 연결하면 0번이 CAM1 단자에 있는 카메라, 1번이 CAM0 단자에 있는 카메라로 잡한다. CAM0이 아니라 CAM1 단자가 기본값 같은 것도 그렇고 왜이렇게 만든지는 모르겠다. 라즈베리파이에서 나온 물건을 쓰다보면 이렇게 뭔가 하나씩 이상한 부분이 있는 것 같아.

Reply by Email