- 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の詳しい使い方については以下の公式データシートを参考にしてください。
以上、お疲れ様でした。