農作業の自動化+IOT PR

Raspberry Pi × カメラでタイムラプス撮影! 低コストで自作する手順【初心者向け】

記事内に商品プロモーションを含む場合があります

はじめに

こんにちは!今回は、ラズベリーパイを使ってタイムラプス撮影をする方法を説明します。タイムラプスとは、長時間の変化を短い動画にまとめる撮影方法です。例えば、花が咲く様子や雲が動く様子を記録できます。

「どうやって始めたらいいの?」と心配な方も大丈夫です!機材の準備から撮影、動画作成まで、わかりやすく説明しますので、一緒にやってみましょう!

https://youtu.be/21yhKwzw1H4

タイムラプス撮影の楽しさ

どんな場面で使えるの?

タイムラプスは、いろいろなシーンで使えます。

  • 自然の変化:花が開く、雲が流れる、朝日や夕焼け
  • 街の風景:車の動き、人の流れ、建物の建設
  • ものづくり:工作、プログラムの実行、3Dプリンターの動作
  • 天体観測:星の動き、月の満ち欠け
  • 農作業:野菜の成長、種が芽を出す様子

普段気づかない変化を見られるのがタイムラプスの魅力です。

準備するもの

必要な道具

ラズベリーパイ(ラズベリーパイ 4推奨)

小さなコンピューターで、カメラを操作したり、撮影データを保存する役割を持ちます。入門用のセット商品を購入すると必要なものは揃いやすいです。


ラズベリーパイカメラモジュール(カメラV2やHQカメラ)

ラズベリーパイ専用のカメラで、高解像度の写真や動画を撮影できます。


microSDカード(OSをインストール済み)(32GB以上推奨)

ラズベリーパイのOSや撮影データを保存するために使います。

電源アダプター(5V/3A)

ラズベリーパイを安定して動作させるために必要です。

HDMIケーブル(初期設定用)

初期設定時にラズベリーパイを画面に接続するために使います。

設定の手順

カメラを取り付ける

  • まず、ラズベリーパイの電源がオフになっていることを確認してください。
  • ラズベリーパイ本体にある「CSIポート」という細長いコネクターを見つけます。
  • カメラモジュールのリボンケーブルを慎重にCSIポートに差し込みます。
    • 青い部分がUSBポート側に来るように向きを合わせてください。
    • 差し込んだ後、ケーブルがしっかり固定されているか確認しましょう。

ケーブルをつなぐ

  • 電源ケーブルを準備し、ラズベリーパイの電源ポート(USB-CまたはMicro-USB)に接続します。
  • HDMIケーブルをラズベリーパイのHDMIポートに接続し、もう片方をモニターに接続します。
  • USBマウス・キーボードをラズベリーパイのUSBポートに接続して操作ができるようにします。
  • microSDカードをラズベリーパイのmicroSDスロットに挿入します。
    • microSDカードにはOSをインストールしておく必要があります。

OSを設定する

  • ラズベリーパイの電源を入れると、最初のセットアップ画面が表示されます。
  • 言語設定:日本語を選択し、キーボードの設定も「日本語キーボード」にします。
  • ネットワーク接続:Wi-Fiまたは有線LANを使ってインターネットに接続します。
  • ソフトウェアのアップデート:ターミナルを開き、以下のコマンドを入力します。
  • sudo apt update && sudo apt upgrade -y
  • この操作で最新のソフトウェアがインストールされ、動作が安定します。

カメラを使えるようにする

  • ターミナル(コマンド入力画面)を開き、カメラが動作するかテストします。
  • libcamera-still -o test.jpg
  • このコマンドを実行すると、カメラが写真を撮影し、「test.jpg」というファイルが作成されます。
  • もしカメラが認識されない場合、以下のコマンドを試してください。sudo usermod -aG video pi
  • 設定後、ラズベリーパイを再起動し、もう一度カメラの動作を確認します。
  • 動画撮影を試したい場合は、以下のコマンドを実行してください。libcamera-vid -t 10000 -o test_video.h264
  • これで、10秒間の動画が撮影されます。

Pythonを使った撮影プログラムの作り方

ラズベリーパイではPythonを使って簡単に撮影プログラムを作成できます。以下のスクリプトを実行すると、一定間隔ごとに写真を撮影し、ファイルとして保存できます。

import time
import subprocess

num_images = 300  # 撮影回数
interval = 5  # 撮影間隔(秒)

for i in range(num_images):
    filename = f'/home/pi/timelapse/image_{i:03d}.jpg'
    subprocess.run(['libcamera-still', '-o', filename])
    print(f'{filename} を保存しました')
    time.sleep(interval)

print("撮影完了! 画像はSDカードに保存されます。")


このスクリプトを実行すると、5秒ごとに1枚ずつ撮影され、300枚の写真が保存されます。

撮影した画像を動画に変換する方法

撮影した画像をつなげて動画にするには、ffmpeg を使用します。以下のコマンドを実行すると、画像を動画に変換できます。

ffmpeg -framerate 24 -pattern_type glob -i 'image_*.jpg' -vf "fps=30,format=yuv420p" -vcodec libx264 timelapse.mp4

これにより、なめらかなタイムラプス動画を作成できます。

いろいろな撮影の始め方

タイムラプス撮影を始める方法はいくつかあります。

  • 手動で開始:ターミナルで python3 timelapse.py を実行する。
  • ボタンを押して開始:GPIOボタンを接続し、押すと撮影開始。

GPIO(General Purpose Input/Output)とは、ラズベリーパイのピンを使って外部デバイスを操作する仕組みです。ここでは、GPIOボタンを使って撮影を開始できるように設定します。

必要なもの

  • GPIO対応のボタン(ラズベリーパイに直接接続するタイプ)
  • ジャンパーワイヤー(GPIOピンとボタンをつなぐ)
  • ラズベリーパイ(4推奨)

接続方法

  1. ボタンの片方の端子をラズベリーパイのGPIO 17番ピンに接続します。
  2. もう片方の端子をラズベリーパイのGNDピン(グラウンド)に接続します。

Pythonスクリプト

以下のスクリプトを作成し、ボタンが押されたときに撮影が始まるように設定します。

from gpiozero import Button
import time
import subprocess

button = Button(17)  # GPIO 17にボタンを接続
num_images = 300  # 撮影回数
interval = 5  # 撮影間隔(秒)

def start_timelapse():
    print("撮影開始!")
    for i in range(num_images):
        filename = f'/home/pi/timelapse/image_{i:03d}.jpg'
        subprocess.run(['libcamera-still', '-o', filename])
        print(f'{filename} を保存しました')
        time.sleep(interval)
    print("撮影完了! 画像はSDカードに保存されます。")

button.when_pressed = start_timelapse
print("ボタンを押すと撮影が開始されます。")

スクリプトの実行

ターミナルを開き、以下のコマンドを入力してスクリプトを実行します。

python3 button_timelapse.py

ボタンを押すと撮影が始まり、指定回数の写真が撮影されます。

  • cronを使って自動開始:指定した時間に撮影開始するように設定。
  • SSHを使って遠隔操作:リモートPCやスマホから撮影を開始。
  • センサーを使った自動撮影:明るさや動きを検知して撮影開始。

長時間撮影に向けた工夫

長時間撮影を行う場合、以下の点に注意するとスムーズに進められます。

  • 外付けストレージを使用する:長時間の撮影ではデータ容量が増えるため、USBメモリや外付けHDDを活用。
  • バッテリーまたは電源管理:電源が不足しないようにモバイルバッテリーやソーラーパネルを活用。
  • カメラの設定調整:光の変化に対応するため、適切な露出設定を選択。
  • 冷却対策:長時間稼働するとラズベリーパイが熱を持つため、USBファンなどで冷却。

まとめ

今回の内容をおさらいしましょう。

  1. 必要な道具と準備の仕方
  2. Pythonを使った撮影プログラムの作り方
  3. 撮影した画像を動画に変換する方法
  4. いろいろな撮影の始め方
  5. 長時間撮影に向けた工夫

ラズベリーパイを使えば、簡単に楽しいタイムラプス撮影ができます!ぜひ試してみてください。