Raspberry pi 3 Model b でwebcamを使う

ラズパイでwebカメラを使う

定点観測のシステムを作成したくて、ラズパイで作ればいいじゃない!! と思ったけど、ラズパイ用のモジュールのカメラがですね取り寄せないといけないうえに、ちょっとお高いんですね。。。

そしたら手元にもはや使っていないwebcamが転がっていまして、これ使えばいいんじゃねと思ったわけですよ。

https://www.raspberrypi.org/documentation/usage/webcams/

検索したらラズパイ用のwebcamの使い方が公式にありました。

準備

なんてことはないです、USBのWebカメラを起動したラズパイに刺しただけです。

Webcam用キャプチャソフトインストール

fswebcamのコマンドを実行するとカメラのキャプチャ画像を取得できるとのこと

$ sudo apt install fswebcam

初期ユーザにカメラの権限をつける

$ sudo usermod -a -G video pi

使い方

$ fswebcam hoge.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 352x288.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Writing JPEG image to 'hoge.jpg'.

撮った画像 こんな感じ

コマンドに対するオプションもいろいろあるようでした

書き出した下の文字を消して1280x720のサイズで出力する
$ fswebcam -r 1280x720 --no-banner hoge2.jpg

シェルスクリプトで自動出力

直接コマンドラインでキャプチャすると、出力する画像名を指定しないといけないため、シェルスクリプトを仲介してコマンドを実行するごとにファイル名に時間を付加して出力するようにしていきます。

$ vi webcam.sh
#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H%M%S")
fswebcam -r 1280x720 --no-banner ./$DATE.jpg
$ chmod +x webcam.sh

このスクリプトを実行すると実行したディレクトリに日付+時間名でキャプチャ画像が出力されます。

あとはこのスクリプトをcronに登録する、他のセンサーやAPIをトリガーにして動くようにするとなかなか面白いことができると思います。