目次
はじめに
こんにちは!今回は、ラズベリーパイを使ってタイムラプス撮影をする方法を説明します。タイムラプスとは、長時間の変化を短い動画にまとめる撮影方法です。例えば、花が咲く様子や雲が動く様子を記録できます。
「どうやって始めたらいいの?」と心配な方も大丈夫です!機材の準備から撮影、動画作成まで、わかりやすく説明しますので、一緒にやってみましょう!
タイムラプス撮影の楽しさ
どんな場面で使えるの?
タイムラプスは、いろいろなシーンで使えます。
- 自然の変化:花が開く、雲が流れる、朝日や夕焼け
- 街の風景:車の動き、人の流れ、建物の建設
- ものづくり:工作、プログラムの実行、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推奨)
接続方法
- ボタンの片方の端子をラズベリーパイのGPIO 17番ピンに接続します。
- もう片方の端子をラズベリーパイの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ファンなどで冷却。
まとめ
今回の内容をおさらいしましょう。
- 必要な道具と準備の仕方
- Pythonを使った撮影プログラムの作り方
- 撮影した画像を動画に変換する方法
- いろいろな撮影の始め方
- 長時間撮影に向けた工夫
ラズベリーパイを使えば、簡単に楽しいタイムラプス撮影ができます!ぜひ試してみてください。