【Raspberry Pi 5】カメラ2台接続による同時撮影 | デュアルカメラ

python
  • Raspberry Pi 5にカメラを2台接続し、2枚同時撮影する方法

Raspberry Pi 5はカメラ用コネクタが2つに増えており、1台で2つのカメラを接続することができるようになっています。

Raspberry Pi 4でも、↓のようなアダプターを接続すればカメラの2台接続は可能でしたが、配線が増えたり、扱いが難しかったりしたので、2台使いたい場合は非常に便利になっています。

・Raspberry Pi用マルチカメラアダプタ V2.2

本記事では、Raspberry Pi 5にカメラを2台接続し、同時撮影をしてみたいと思います。

カメラの接続

さっそくカメラモジュールを2台接続していきます。
今回はカメラモジュールV2を使用します。
FFCケーブルの向きに注意して接続してください。

接続したらラズパイを再起動し、以下のコマンドを入力します。

libcamera-still --list-cameras

・出力

Available cameras
-----------------
0 : imx219 [3280x2464 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@88000/imx219@10)
    Modes: 'SRGGB10_CSI2P' : 640x480 [206.65 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 [206.65 fps - (1000, 752)/1280x960 crop]
                      1640x1232 [83.70 fps - (0, 0)/3280x2464 crop]
                      1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
                      3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

1 : imx219 [3280x2464 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@80000/imx219@10)
    Modes: 'SRGGB10_CSI2P' : 640x480 [206.65 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 [206.65 fps - (1000, 752)/1280x960 crop]
                      1640x1232 [83.70 fps - (0, 0)/3280x2464 crop]
                      1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
                      3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

このように、2台認識できていればOKです。
認識できていなければ、「No cameras available!」と表示されます。

2台同時撮影コード

以下のコードで撮影します。
使用するのはpicamera2というライブラリです。
Raspberrypi5にはデフォルトでインストールされています。

from picamera2 import Picamera2
import time

# カメラ1の初期化
picam2_1 = Picamera2()
config1 = picam2_1.create_still_configuration()
picam2_1.configure(config1)

# カメラ2の初期化
picam2_2 = Picamera2(camera_num=1)  # 2つ目のカメラを指定するために camera_num=1 を設定
config2 = picam2_2.create_still_configuration()
picam2_2.configure(config2)

# カメラを開始
picam2_1.start()
picam2_2.start()

# 写真撮影
time.sleep(2)  # カメラが安定するまで少し待機
picam2_1.capture_file("camera1_image.jpg")
picam2_2.capture_file("camera2_image.jpg")

# カメラを停止
picam2_1.stop()
picam2_2.stop()

print("写真を撮影し、保存しました。")

簡単に2つの画像を撮影することができました。

Picamera2の詳しい使い方については以下の公式データシートを参考にしてください。

以上、お疲れ様でした。

タイトルとURLをコピーしました