라즈베리파이 5

라즈베리 파이 5에서 두 개의 카메라 모듈을 사용하는 방법

지구빵집 2024. 5. 1. 17:55
반응형

 

라즈베리 파이 5에서 두 개의 카메라 모듈을 사용하는 방법 

 

오늘은 라즈베리파이 5로 두 개의 카메라 모듈을 사용하는 방법을 보여드리겠습니다. 모듈을 연결하는 방법과 듀얼-CSI 포트가 있는 비공식 모듈을 사용하는 방법도 함께 다뤄보겠습니다.

 

공식 라즈베리파이 모듈은 라즈베리파이 OS에서 기본적으로 완벽하게 지원되므로 매우 간단하지만, 제로캠 OV5647 및 IMX219와 같은 일부 애프터마켓 모듈은 실행하는 데 약간의 도움이 필요합니다.

 

카메라 모듈을 라즈베리 파이 5에 연결하는 방법을 보여준 다음 소프트웨어 측면으로 들어가 보겠습니다. 

 

카메라 모듈을 라즈베리파이 5에 연결하는 방법

 

라즈베리파이 5는 라즈베리파이 4보다 작은 CSI/DSI 커넥터를 사용하므로, 어댑터 케이블 또는 라즈베리파이 제로용으로 설계된 모듈이 필요합니다(제로와 파이 5는 동일한 형식의 커넥터를 사용하므로).

 

카메라 케이블을 장착하는 방법은 이전과 거의 동일합니다. 라즈베리파이를 끄고 클립을 아주 조심스럽게 위로 당긴 다음 케이블을 최대한 밀어 넣은 다음 클립을 다시 아래로 밀어 넣으면 됩니다.

 

중요한 부분은 케이블을 올바른 방향으로 끼우는 것입니다. 이렇게 작은 금속 톱니가 이더넷 커넥터와 PoE 핀을 향하도록 해야 합니다(아래 이미지에서 아직 클립을 고정하지 않았습니다):  

 

 

팁: 실수로 커넥터에서 작은 클립을 빼낸 경우, 대부분의 경우(끊어지지 않았다면) 조심스럽게 다시 끼워 넣으면 되므로 올바른 방향인지 확인하세요. 

 

라즈베리파이 5에서 공식 카메라 모듈 2개를 사용하는 방법

 

앞서 언급했듯이 공식 라즈베리파이 카메라 모듈은 구성을 변경할 필요가 없기 때문에 가장 쉽게 실행할 수 있습니다. 새로 플래시한 최신 버전의 Raspberry Pi OS를 사용한다고 가정해 보겠습니다. 두 대의 카메라가 연결되면 터미널 창을 열고 시작할 준비가 된 것입니다. 

 

 

라즈베리파이 카메라 모듈이 인식되는지 확인하기

 

빠른 테스트 명령을 실행하여 운영체제가 두 카메라 모듈을 모두 인식하는지 확인할 수 있습니다. 새 터미널 창을 열고 다음 명령을 입력합니다: 

 

libcamera-hello --list-cameras

 

 

아래 예시와 유사한 출력이 표시됩니다. 포트 0에는 IMX219 V2 카메라 모듈을, 포트 1에는 IMX708 카메라 모듈 3을 사용하고 있습니다: 

 

Available cameras
-----------------
0 : imx219 [3280x2464 10-bit] (/base/axi/pcie@120000/rp1/i2c@88000/imx219@10)
    Modes: 'SBGGR10_CSI2P' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
                             1640x1232 [30.00 fps - (0, 0)/0x0 crop]
                             1920x1080 [30.00 fps - (0, 0)/0x0 crop]
                             3280x2464 [30.00 fps - (0, 0)/0x0 crop]
           'SBGGR8' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
                      1640x1232 [30.00 fps - (0, 0)/0x0 crop]
                      1920x1080 [30.00 fps - (0, 0)/0x0 crop]
                      3280x2464 [30.00 fps - (0, 0)/0x0 crop]

1 : imx708 [4608x2592 10-bit] (/base/axi/pcie@120000/rp1/i2c@80000/imx708@1a)
    Modes: 'SBGGR10_CSI2P' : 1536x864 [30.00 fps - (0, 0)/0x0 crop]
                             2304x1296 [30.00 fps - (0, 0)/0x0 crop]
                             4608x2592 [30.00 fps - (0, 0)/0x0 crop]

 

 

비슷한 출력이 표시되지 않거나 하나의 포트에만 카메라가 감지된 것으로 표시되는 경우, Raspberry Pi를 종료하고 전원을 제거한 다음 카메라 케이블을 다시 장착하세요.

 

라즈베리 파이 5에서 두 개의 공식 카메라 모듈을 동시에 사용하기

 

두 개의 공식 카메라를 동시에 사용하려면 두 번째 터미널 창을 열어 각 모듈에 대해 별도의 프로세스를 실행할 수 있습니다. 이를 '왼쪽' 및 '오른쪽' 터미널이라고 부르겠습니다.

 

왼쪽 터미널에 다음 명령을 입력합니다:

 

libcamera-hello --camera 0 -t 0

 

 

포트 0에 있는 카메라의 실시간 피드를 보여주는 창이 나타납니다.

 

이제 오른쪽 터미널 창에서 아래와 유사한 명령을 실행합니다. 여기서는 '0' 대신 '1'을 사용하여 포트 1의 카메라를 열도록 이 창에 지시합니다:

 

libcamera-hello --camera 1 -t 0

 

 

이제 첫 번째 카메라 옆에 두 번째 카메라의 피드를 보여주는 창이 표시됩니다(최신 카메라 모듈 3(왼쪽)의 자동 초점 기능이 여기서 훌륭하게 작동합니다!):  

 

 

 

라즈베리파이 5에서 비공식 카메라 모듈 2개를 사용하는 방법

 

이제 비공식 모듈을 사용하는 방법을 살펴보겠습니다. 오늘 예제에서는 제로캠 OV5647 5MP 모듈(더 작은 커넥터용으로 설계되었으므로 어댑터 케이블이 필요하지 않음)과 오래된 샘플 서랍에서 찾은 IMX219 8MP 모듈을 사용합니다.

 

이러한 비공식 카메라 모듈은 대부분 즉시 작동하지 않으므로 config.txt 파일을 편집하고 몇 가지 사항을 변경해야 합니다.  

 

새 터미널 창을 열고 아래 명령을 실행하여 config.txt 파일을 엽니다:

 

sudo nano /boot/config.txt

 

만약에 최신 OS인 Bookworm 사용할 때, 파일이 위 폴더에 없다면 이곳에 있으니 아래 명령어를 사용하세요.

 

sudo nano /boot/firmware/config.txt

 

 

이제 화살표 키를 사용하여 파일을 탐색합니다. camera_auto_detect=1 줄을 찾아 그 앞에 #을 추가해야 합니다. 이렇게 하면 라즈베리파이가 카메라를 자동으로 감지하지 못하도록 '주석 처리'됩니다. 다음과 같이 보일 것입니다:

 

#camera_auto_detect=1

 

 

이제 그 아래에 몇 줄을 추가하여 사용하려는 카메라에 대한 특정 오버레이를 설정해야 합니다. 캠 0 슬롯에는 OV5647, 캠1 슬롯에는 IMX219가 장착되어 있으므로 다음 줄을 추가합니다:

 

dtoverlay=ov5647,cam0
dtoverlay=imx219,cam1

 

그런 다음 파일을 저장하고 종료한 다음(Ctrl+X 다음에 Y) Raspberry Pi 5를 재부팅하기만 하면 됩니다.

 

그런 다음 이전과 마찬가지로 다음 명령을 실행하여 둘 다 인식되는지 테스트할 수 있습니다:

 

libcamera-hello --list-cameras

 

 

그러면 포트 0에 OV5647 모듈이, 포트 1에 IMX219 모듈이 아래와 같이 표시됩니다: 

 

Available cameras
-----------------
0 : ov5647 [2592x1944 10-bit GBRG] (/base/axi/pcie@120000/rp1/i2c@88000/ov5647@36)
    Modes: 'SGBRG10_CSI2P' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
                             1296x972 [30.00 fps - (0, 0)/0x0 crop]
                             1920x1080 [30.00 fps - (0, 0)/0x0 crop]
                             2592x1944 [30.00 fps - (0, 0)/0x0 crop]

1 : imx219 [3280x2464 10-bit] (/base/axi/pcie@120000/rp1/i2c@80000/imx219@10)
    Modes: 'SBGGR10_CSI2P' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
                             1640x1232 [30.00 fps - (0, 0)/0x0 crop]
                             1920x1080 [30.00 fps - (0, 0)/0x0 crop]
                             3280x2464 [30.00 fps - (0, 0)/0x0 crop]
           'SBGGR8' : 640x480 [30.00 fps - (0, 0)/0x0 crop]
                      1640x1232 [30.00 fps - (0, 0)/0x0 crop]
                      1920x1080 [30.00 fps - (0, 0)/0x0 crop]
                      3280x2464 [30.00 fps - (0, 0)/0x0 crop]

 

팁: IMX296, OV9281 등과 같은 다른 카메라 센서도 추가할 수 있습니다. 라즈베리파이의 설명서 웹사이트에서 현재 지원되는 dtoverlays 전체 표를 확인할 수 있습니다. 

 

라즈베리파이 5에서 두 개의 비공식 카메라 모듈을 동시에 사용하기

 

비공식 카메라를 함께 실행하려면 앞서 설명한 것과 동일한 프로세스를 사용하여 각 카메라에 대해 별도의 터미널 창에서 아래 명령을 실행하고 필요에 따라 0과 1을 변경하여 카메라 0 또는 1에 액세스합니다:

 

libcamera-hello --camera 0 -t 0

 

 

도움이 되었기를 바랍니다!

 

라즈베리파이 5에서 두 대의 카메라를 사용하는 데 궁금한 점이나 기타 팁이 있으시면 아래에 댓글을 남겨주시기 바랍니다. 

 

읽어주셔서 감사합니다. 자신이 하는 모든 일을 사랑하세요.

 

 

 

반응형