Webカメラ

Raspbian“wheezy”の最新版にはデフォルトでUVC(USB video device class)対応のUSBカメラドライバが入っていると聞いたので、会社に転がっていたバッファローのUSBカメラを接続。

lsusbで確認すると、確かに認識されている。

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 005: ID 0c45:62e0 Microdia MSI Starcam Racer

デザインは全く違うのだが、中身はMSIのStarcam RacerのOEMのようだ。

PythonでUSBカメラからキャプチャを行うには、WindowsならVideoCaptureを使用すれば簡単なのだが、Linuxでは動作しない。他の手段としてはOpenCVがあるが、Raspberry PiでOpenCVを使うのは今のところあまり簡単ではないので、USBカメラをWebカメラ化するMotionで動作確認を行ってみた。

sudo spt-get update
sudo spt-get upgrade

で更新を行ってから

sudo apt-get install motion

でインストール。

デフォルトではローカルでしか動作しないので

sudo nano /etc/motion/motion.conf

で設定ファイルを編集。とりあえず以下の二箇所を変更する。

daemon off → on
webcam_localhost on → off

nanoで編集を行う場合は^w(Ctrl+w)で検索文字列を指定して、M-w(Alt+w)で探すと楽。設定ファイルを保存(Ctrl+O)したら

sudo motion

で起動する。

pi@raspberrypi ~ $ sudo motion
[0] Processing thread 0 – config file /etc/motion/motion.conf
[0] Motion 3.2.12 Started
[0] Motion going to daemon mode

この時に、以下のようなエラーメッセージが出る場合がある

[0] Exit motion, cannot create process id file (pid file) /var/run/motion/motion.pid: No such file or directory

この場合は

sudo mkdir -p /var/run/motion

でフォルダを作成してから起動する。

起動後に同じネットワーク内にあるPCのブラウザから、Raspberry PiのIPアドレス:ポート番号(デフォルトでは8081)でアクセスすると、カメラ画像が表示されるはずだ。webcam

Daemonとして起動しているので、終了させる場合は以下のコマンドを実行する。

sudo service motion stop

1000円以下で入手できるUSBカメラとRaspberry Piで、手軽にWebカメラ化できるのは面白い。動体検出で何か動きがあった時に画像を保存するとか、設定によって色々とできるので試してみて欲しい。

コメントを残す