Raspberry Pi Pithon でカメラを操作1

Raspberry Pi にカメラを接続、ちょっとプログラムを組んであげると、カメラで撮影したりできます。

今回は、カメラを接続して、「python-picamera」ライブラリを使用して写真撮影をしてみようと思います。

 

 

1. カメラの購入

  ともあれ、対応したカメラを購入します。

  よくある、セットに付属のカメラでも問題ないと思います。

  リボンでつながっているだけなので、こだわる方はカメラのケースも購入されるといいと思います。


 


 

 

2. Raspberry Pi OS の設定

  接続はリボンでつなぐだけなので難しくないと思います。

  電源は切った状態で行いましょう。

  設定方法などは以前の記事で紹介していますので、よろしければどうぞ。

letraspberry.hatenablog.com

  

3. ライブラリのインストール

  ここからが今回の新しい内容です。

  Pythonからカメラをコントロールする方法はいくつかあるようですが、今回は本家の公式ドキュメントを参考にしています。

  使用しているRaspberry Pi OS の状態によっては、すでにインストールされているかもしれません。

 

  まず、以下のコマンドを実行します。LXTerminalで行います。

  なお、上2行は、こういうタイミング以外でも、定期的に行ったほうが良いと思います。

  たまにしか行わないと時間がかかります。

  システムを最新に保ち、セキュリティ対策された、バグなどが少ない状態にしてくれるはずです。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-picamera

 

4. Pythonプログラミング

  今回は、カレントディレクトリに「capture」というフォルダを作成、その中に1秒ぐらい間隔で「年月日_時分秒.jpg」というファイル名でカメラで撮影した画像を保存します。10回。

  なお、「1秒ぐらい間隔」というのは、「撮影しろ」という命令の完了に時間を要するため、自分の状態では2秒間隔で撮影されています。

  ソースコードを修正しました。

  一度生成したPiCameraインスタンスを使いまわしていたのですが、繰り返し動かすうちにPiCameraインスタンスが作れなくなった、などのトラブルがあったためです。

 

 

# -*- coding: utf-8 -*-
# 日本語コメントをエラーとしないように、UTF-8で保存

# 使用するライブラリのインポート
import os
import picamera
import datetime
from time import sleep

# 定数
CAPTURE_DIR = 'capture'     # 撮影画像を格納するフォルダ

# 継承した場合など、実行されないようにする(現状、意味は特にない)
if __name__ == "__main__":
    # 撮影した画像を格納するフォルダを作成(存在しない場合)
    if os.path.exists(CAPTURE_DIR) == False :
        os.mkdir(CAPTURE_DIR)

    # PiCameraインスタンスを生成
    with picamera.PiCamera() as camera:
        for i in range(0, 10):
            # 1秒ごとに写真を撮る(10回)

            # ファイル名は、「年月日時分秒.jpg」とする
            now = datetime.datetime.now()

            # キャプチャしてファイル保存
            camera.capture(f'{CAPTURE_DIR}/{now.strftime("%Y%m%d_%H%M%S")}.jpg')

            sleep(1)

    print('finished')