Raspberry Pi OS(Bullseye)+カメラモジュールV1.3
画質や高機能は不要だったため1000円以下で買えたカメラモジュールV1.3を使ってみました。
安易に使用できると思いきや苦戦・・・
Legacy Cameraの有効化
sudo raspi-config
3を選択
1を選択
はいを選択
了解を選択
はいを選択して再起動
接続状況確認
vcgencmd get_camera
supported=1 detected=1, libcamera interfaces=0
コマンドで画面キャプチャ
Bullseys以前はraspistillコマンドのようですがBullseysからカメラ周りの仕様が変わったようでlibcamera-stillコマンドを使用するようです。
$ libcamera-still -n -o /tmp/photo.jpg
ERROR: the system appears to be configured for the legacy camera stack
エラーになりました
/boot/config.txtの修正
末尾にdtoverlay=ov5647を追記して再起動を実施
$ libcamera-still -n -o /tmp/photo.jpg
supported=1 detected=0, libcamera interfaces=1
libcamera interfaces=1となりlibcamera-stillコマンドをためしてみると無事キャプチャできました。
config.txtとraspi-configコマンドの挙動
設定を変更して再起動したのちvcgencmd get_cameraで確認していると設定を元に戻してもdetectedが1にならないことがありました。
その場合は一度raspi-configでlegacy cameraをdisableに設定し再起動したのち再度enableに設定し直すと戻りました。
補足
Motion
動体検知が可能なMotionを使おうとしましたがレポジトリに登録されている4.3、公式サイトから4.4をインストールしてみましたが上手く使う事ができませんでした。(あまり調べず早々に諦めました)
python picamera2
picamera2モジュールのインストールは正常に行えましたがimport picamera2とするとlibcameraモジュールが見つからないエラーになりました
ModuleNotFoundError: No module named 'libcamera'
Pyenvを使用していると発生するような投稿もありましたが今回はOpenCVが使えたので調べませんでした。
python OpenCV
opencv-pythonは使用する際はvcgencmd get_cameraの結果が以下の状態で使用可能でした
supported=1 detected=1, libcamera interfaces=0
一方でlibcamera-stillを使用できる状態
supported=1 detected=0, libcamera interfaces=1
ではうまくキャプチャ出来なかったので排他的な利用の状況です。
次はOpenCVで動体検知を試してみる予定です。
Discussion