としおの読書生活

田舎に住む社会人の読書記録を綴ります。 主に小説や新書の内容紹介と感想を書きます。 読書の他にもワイン、紅茶、パソコン関係などの趣味を詰め込んだブログにしたいです。

タグ:ラズパイ

Raspberry Piを使って定点カメラを作ってみました。

コマンドで定点カメラを使っても良かったのですが今後Pythonを使って色々やっていきたいと思っていたので今回はPythonを使って定点カメラを作っています。

カメラモジュールは『Raspberry Pi カメラモジュール v2』を使用しています。





Pythonで写真を撮る


ラズパイでPythonを使って写真を撮るのにはPiCameraというライブラリを使用します。

以下のコードでは5秒間カメラのプレビュー画面が表示されます。

from picamera import PiCamera
from time import sleep

camera = PiCamera()
camera.start_preview()
sleep(5)
camera.stop_preview()

実際に写真を撮るのにはPiCamera().caputureメソッドをコールします

また、とりたい写真のサイズをPiCamera().resolutionメソッドで設定することができます。

以下のコードの場合、プログラム起動して5秒後に写真が撮影されデスクトップにimage.pngという1920×1080のファイルが保存されます。

from picamera import PiCamera
from time import sleep

camera = PiCamera()
camera.resolution = (19201080)
camera.start_preview()
sleep(5)
camera.capture("/home/pi/Desktop/image.png")
camera.stop_preview()






定点カメラを作成する


写真の撮り方が分かったところで定点カメラを作成していきましょう。

今回は、5分に1回写真を撮るようにしていきます。

from picamera import PiCamera
from time import sleep
import datetime

camera = PiCamera()
camera.resolution = (19201080)
camera.start_preview()

while(True):
    sleep(300# 300秒待機
    camera.capture("/home/pi/Desktop/Image.png")

上記のコードで5分に1回写真を撮るという要件は満たせたのですが、このままだと同じファイルに写真が上書きして保存されてしまいます。

そこでファイル名をユニークな名前にするために今回は、ファイル名に現在時刻を付けていきます。

sleepの後を以下のように改造してください。

now = datetime.datetime.now()
filename = '/home/pi/Desktop/Image/' + now.strftime('%Y%m%d_%H%M%S') + '.png'
camera.capture(filename)

これで写真を撮るたびに別のファイル名がつくようになりました。

定点カメラの完成です。



まとめ


今回はラズパイ + Pythonで簡単な定点カメラを作ってみました。

写真を撮る頻度など対象によって変えていったら面白そうですね。





Raspberry Piで定点カメラを作りたいと思いAmazonで『Raspberry Pi Camera V2』を買いました。

今回はこちらのカメラでコマンドを使って写真と動画を撮る方法を紹介していきます。


『Raspberry Pi Camera V2』のスペック


『Raspberry Pi Camera V2』のスペックは以下の通りです。

Raspberry Pi Camera Module V2
センサーソニー製IMX219PQ(1/4inch)
ピクセルサイズ1.12μm
画素数有効808万画素
静止画最大3280×2464ピクセル
動画1080p 60fps/720p 180fps
サイズ23.86 × 25 × 9 mm

4766円で購入できる小型カメラと考えればかなりスペックが高いです。

後ほどV2で撮った写真がどんなものなのかも紹介していきます。



カメラモジュールを接続する


写真や動画を撮る前にRaspberry Piにカメラモジュールを取り付けていきます。

今回はRaspberry Pi 4 Module Bを使っていきますが、他のモデルでも接続の方法などは基本的に同じです。

カメラモジュールは以下の画像の赤丸の部分に取り付けていきます。

PXL_20210907_133814272

カメラモジュールを取り付ける前に黒い部分を持ち上げてください。

カメラモジュールは以下の向きで取り付けます。

PXL_20210907_134414501

カメラモジュールが起動できたらRaspberry Piを起動して、カメラモジュールを認識させます。

Raspberry Piの設定画面を開き、

Screenshot_20210907_225708

カメラの設定を有効にして、OKをクリックします。

Screenshot_20210907_230138

その後再起動を求められるので再起動してください。



写真を撮る


カメラを取り付けられたところで写真を撮っていきましょう。

写真は以下のコマンドで撮ることができます。

raspistill -o ファイル名

ちなみにとれた画像は以下です。

test

カメラ固定せずに撮影したわりにはなかなかきれいです。

raspistillコマンドで個人的に覚えていたら便利だと思うコマンドを以下にのせておきます。

raspistill
-?ヘルプの表示
-w画像の幅の指定
-h画像の高さの指定
-qjpeg品質を設定(0 - 100)
-o出力ファイル名
-t撮影までの時間(ミリ秒)
-dデモモード
-eエンコード方式指定(jpg, bmp, gif, png)
-tlこま撮り(ミリ秒で指定した感覚で連続撮影)






動画を撮る


写真がとれたところで次に動画を撮影していきます。

動画は以下のコマンドで撮ることができます。

raspivid -o ファイル名 -t 撮影時間

ライブドアブログの仕様上撮影した動画を載せられないのですが、動画の方も思ったよりもきれいに撮れていて個人的には満足しています。

raspividコマンドで個人的に覚えていたら便利だと思うコマンドを以下にのせておきます。

raspivid
-?ヘルプの表示
-t撮影時間の指定(ミリ秒)
-fpsフレームレート
-kEnterキーでキャプチャと一時停止を切り替え
-o出力ファイル名
cdコーデック指定(H264, MJPEG)
-w動画の幅の指定
-h動画の高さの指定




まとめ


『Raspberry Pi カメラモジュール v2』の基本的な使い方についてまとめていきました。

次はPythonからカメラモジュールを使用する方法など調べていきたいです。




↑このページのトップヘ