Raspbian“wheezy”の最新版にはデフォルトでUVC(USB video device class)対応のUSBカメラドライバが入っていると聞いたので、会社に転がっていたバッファローのUSBカメラを接続。
lsusbで確認すると、確かに認識されている。
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
|
デザインは全く違うのだが、中身は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] 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)でアクセスすると、カメラ画像が表示されるはずだ。
Daemonとして起動しているので、終了させる場合は以下のコマンドを実行する。
sudo service motion stop
1000円以下で入手できるUSBカメラとRaspberry Piで、手軽にWebカメラ化できるのは面白い。動体検出で何か動きがあった時に画像を保存するとか、設定によって色々とできるので試してみて欲しい。