raspberry pi でWEBカメラ ~motion~

pi zero wにカメラをつけてWEBカメラにする。

パソコンで使うUSBカメラを使ったことはあったが、
Camera Module V2を使う。

pi zero wのケースはカメラをセットする穴がある。

ただし、カメラの穴があるふたをするとGPIOの金具があるので閉まらない。

金具部分があいたフタもあるのだが、それにはカメラの穴がない。

どっちかを加工すればいいのだろうが、とりあえずテープで止める。


piでWEBカメラをやる場合の定番としてmotionというソフトがある。

これは動画ではなくて、動きがあった場合のみ画像を更新するものであるが、

外の景色などを表示させるには十分である。


USBカメラの場合、カメラを接続してmotionをインストールすればすぐ使えるのだが、

Camera moduleを使う場合は、 /etc/modulesに以下の記述を追加してrebootが必要。

bcm2835-v4l2


あと、/boot/config.txtに以下の記述が必要なそうなのだが、
私の場合はすでに書いてあった。

start_x=1
gpu_mem=128

start_xって関係なさそうだけどな... まあいい。


vcgencmd get_camera を実施して、両方 1になっていること。

supported=1 detected=1


 ls /dev/video* を実行して、 video0があること。
(私の場合。10,11,12はカメラモジュールを認識しなくても出てくる)

/dev/video0  /dev/video10  /dev/video11  /dev/video12


以下でカメラの動作を確認できる。

(静止画)
raspistill -o test.jpg

-oは出力ファイル名


(動画)
raspivid -o test.h264 -t 10000

-oはファイル名、-tはミリ秒数

形式はh264とかいうものらしいのだが、
VLC media playerで再生できる。


コーデックは H264かMJPEGが指定できるようだ。

-cd, --codec    : Specify the codec to use - H264 (default) or MJPEG

raspivid -cd MJPEG -o test.mjpeg  -t 5000

が、mjpegも結局メディアプレイヤーでは再生できず。


motionは、apt install motion でインストール

apt-get install motion ではダメ、みたいなことがどこかに書いてあったが、
どっちでもできたような気がするが定かではない
(いろいろやったので)

motion.confの設定内容については情報がたくさんあるので特に書かない。


自動起動するために下記の設定をするというのがあるのだが、

/etc/default/motion に

start_motion_daemon=yes

zeroではうまくいかなかった。
psで見るとmotionは起動するようなのだが、ブラウザでアクセスすると起動していないときと同じように表示されない。

sudo motionを実行すると画面が表示されるがグレーで、
「カメラにアクセスできない」みたいなメッセージが表示される。

ログを見ると、すでに起動していてカメラが占有されている、
みたいなことらしい。

USBカメラを使った古いpiではうまく動いていたのだが.....


なので、手動起動にした。

sudo motion -b

-b はバックグラウンド起動のオプション。


psで起動確認

ps aux | grep motion
root       684 96.9  6.6 126476 25320 ?        Sl   22:31  31:29 motion -b
pi        1575  0.0  0.5   4360  1908 pts/0    S+   23:04   0:00 grep --color=auto motion

デーモン起動なので停止する場合はkillする。

もっとスマートな方法があるかな...



しばらく使って気づいたのだが、cameraモジュールはフォーカス(ピント)が手動で、
カメラのレンズ部分を回すことでおこなう。

白いプラスチックのダイヤルみたいなものが付属しているのだが、
それをレンズ部分にはめると回せる。

なくても楊枝かなんかで回せそう。

時計回りで遠くに、逆で近くにフォーカスする。



2019-04-08-raspbian-stretch-lite.img
を使い、諸アップデートをしている。

uname -aの結果
Linux raspberrypi 4.19.57+ #1244 Thu Jul 4 18:42:50 BST 2019 armv6l GNU/Linux