chakokuのブログ(rev4)

テック・コミック・ごくまれにチャリ

お決まりコース、ラズパイ+USBカメラ

Pi Zeroを動かしてみて、音が出たら次は画像だというわけで、、家にあるUSBカメラを取り付けてみた。使ったのはLogiCoolのWebカム(C310)。WebカムをUSBにさしてPi Zeroをブート。
左は現在の構成。PiZeroのUSBポートにUSB HUBをさしてUSBポートをN増し、そこに無線LANとSouldBlasterとUSBカメラを接続。SoundBlasterで音声再生と録音、USBカメラで画像の取得が可能になるはず。なお、電源容量不足でSDカードが飛んだりするのを避けるため、拡張IOポートから5Vを供給してます。電源は5V6Aまで出せる定電圧電源を使用。これだけUSBタコ足配線して何アンペア使ってるのかは測定していないので不明。そのうち計測します。

周辺デバイスがOSに正しく認識されるかどうかは型番次第と思われますが、LogiCoolのC310は問題なく認識され、lsusbで確認すると、Logitech Webcam C310として認識されている。

# lsusb
Bus 001 Device 005: ID 046d:081b Logitech, Inc. Webcam C310
Bus 001 Device 004: ID 041e:30d3 Creative Technology, Ltd Sound Blaster Play!
Bus 001 Device 003: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

手っ取り早く画像を見てみたかったら、uvccaptureがシンプルでよかろうと思い、apt-get install でインストール。他の方のブログ記事を参考に最低限のコマンドで起動してみた。すると以下のような画像が取れた。

# uvccapture -v -o/tmp/pic_def.jpg -d/dev/video0  -x640 -y400  -m



これではいかんということで、さらにググると、パラメータを指定する必要があることが分かった。domoticz様のサイトでUSB_Camera用パラメータが明記されておりこれを指定。

# uvccapture -v -o/tmp/pic1.jpg -d/dev/video0  -x640 -y400  -q100 -m -S80 -B128 -C128 -G80


なお、普通のデジカメで撮るとこんな感じ

C310はもうちょっと性能がいいはずなので、パラメータを再調整すればもう少し綺麗に撮れるとは思われます。まぁ画像はそのまま使わず、変換して画像認識とかさせる目的なので細かい画質は気にしない。機械学習と組み合わせて顔認識とかジェスチャ認識とかやらせてみたいけど。。どうなることやら。

■ご参考URL
Domotics様?のCamera SetupWiki
http://www.domoticz.com/wiki/Camera_Setup#USB_Camera

■追記(160817)
次にやりたいこと:
起動完了したら、「起動完了しました」と喋らせる。
shutdownしたい時に、ジェスチャ認識か音声認識でshutdownシーケンスが起動できるようにする。
理由は、、毎回Piにログインするのが面倒だから。

■メモ書き
http://qiita.com/yosi-q/items/55d6d3d6834c778ae2ea
Raspbian Jessieではrc.localが動いていないようだ→rc.localを使わず、systemdの流儀で自動起動を設定すべきなようだ
http://www.slideshare.net/enakai/linux-27872553
http://magayengineer.hatenablog.com/entry/2016/07/06/231533

systemdでもrc.localは利用可能なようで、executeフラグが立っていれば良いようだ。自分のPiでも立てているが、、なぜかnode-redは起動されない。原因をさらに調査するのもありだけど、node-redの自動起動はpm2を使うのが常套手段のようであった。というわけで、pm2を入れてみることに。
http://www.rs-online.com/designspark/electronics/jpn/blog/home-automation-with-raspberry-pi-2-and-node-red

■追記(160918)
PIZero起動時にnode-redが起動されるようにする

apt-get install npm
npm install -g pm2
pm2 start /hoge/node-red
pm2 startup
which node-red      # node-redの場所確認
pm2 start /usr/bin/node-red
pm2 startup