ラズベリーパイ入門講座4(カメラモジュールを使用した撮影)
2024年4月23日
前回はラズベリーパイ上で、簡単なpythonプログラムを実行しました。
今回は、ラズベリーパイにカメラモジュールを接続して、撮影を行います。
講座では、Raspberry Pi Camera Module 3 を使用しています。
<実行環境>
Raspberry Pi カメラモジュール V3
Raspberry Pi 4 Model B
Raspberry Pi OS (64-bit) Bullseye
カメラモジュールの接続
ラズベリーパイにカメラモジュールを接続します。
必ず、ラズベリーパイの電源を落としてから行いましょう。
<接続時の注意点>
・リボンケーブルの向き(USB端子などがある方向に青色の面がくる)
・ラズベリーパイ側のケーブル接続口の両側のロックを上げておく
・リボンケーブルは、深く差して接続する。



カメラモジュールを使用する
カメラモジュールの接続が完了したら、ラズベリーパイの電源を入れます。
LX Terminalを開き、順番にコマンドを入力していきます。
OSの確認
$ lsb_release -a
「Codename:bullseye」と記載があれば大丈夫です。
「Bookworm」の場合は、最新のOSになるため、不具合が発生する場合があります。

picamera2モジュールの確認
$ pip list
picamera2がリスト内にあれば大丈夫です。

もし、picamera2がない場合は、インストールします。
$ sudo apt install python3-picamera2
LX Terminalでコマンドを入力して、カメラの表示テストを行います。
5秒間カメラを起動
$ libcamera-hello
カメラを起動し続ける
$ libcamera-hello -t 0 continuous
LX Terminalのタブをクリックして、LX Terminalの画面内で「Ctrl」+「C」で終了できます。
写真を撮影して保存
$ libcamera-still -o test.jpg
「ファイルマネージャー」のルートディレクトリ(/home/ユーザー名)に「test.jpg」が保存されます。


Pythonプログラムでカメラ撮影を行う
pc2 = Picamera2()
pc2.configure(pc2.create_preview_configuration(main={“size”: (1920, 1080)}))
pc2.start_preview( True, width = 300, height = 200 )
pc2.start()
time.sleep( 1 )
pc2.capture_file( “./test_image.jpg” )
pc2.close()
<解説>
picamera2モジュールのPicamera2クラスをインポート
timeモジュールをインポート
Picamera2()をインスタンス化
ビデオの解像度を設定(デフォルトは640×480)
プレビュー画面(横300,横200)を表示
start()メソッドでカメラの起動
sleep()メソッドで1秒間待ちます。カメラの起動後の安定用時間
capture_file()メソッドで、指定のディレクトリにカメラ映像を保存します。
close()メソッドでカメラを閉じる
LX Terminalと同じように、pythonでもカメラ映像の保存ができました。

from picamera2 import Picamera2
camera = Picamera2()
camera.configure(camera.create_preview_configuration(main={“size”: (1920, 1080)}))
camera.start_preview(True)
camera.start_and_record_video(“test.mp4”, duration=5)
camera.close()
<解説>
Picamera2モジュールのPicamera2クラスのインポート
Picamera2のインスタンス化
ビデオの解像度を設定
前画面でプレビュー表示
カメラ映像の録画を開始(保存ファイル名、録画時間の指定)
カメラを閉じる
今回は、ラズベリーパイのカメラモジュールを使用して、撮影を行いました。
次回は、ラズベリーパイのカメラとopencvライブラリを使用して、顔検出を行います。