玄箱で赤外監視カメラ

試行錯誤で飯作る暇なかったし

※以下の事項は当然自己責任で参考程度にネ!
去年末からの残件。
とある重要な物品が収められている場所を、監視するための機器が欲しかったのです。


実は一度、Windowsマシンを使って監視・Webから閲覧可能な装置を作ってみたのですが・・・。
やはり、WindowsPCを起動しっぱなしでは消費電力が計り知れないし、モノとしてもったいない。
そんな訳で今回、玄箱で監視カメラが作れるというような話をどっかで読んだので、挑戦してみる気になったのであります。

どのカメラにしよう

色々なWebサイトに書いてあるカメラそそのまま使えば、恐らく何の苦もなく監視機器はできるはず。しかし、今回は重要な事項がありました。
上記物品が納められている場所は、たまに非常に暗くなる。したがって・・・暗くても撮影可能なものでなければならない。
センサー利用で、暗くなったときだけライトがつくようにする、という方法も考えましたが、なんかあからさまでかっこ悪い。したがって、今回は赤外線ライトがデフォルトでついている種類のWebカメラを選びました。
赤外線つきWebカメラは、少ないながらもそれなりの種類があるみたいです。
例としては
NET COWBOY
http://www.digitalcowboy.jp/products/nc/index.html
GroovyのGR-CAM系
http://www.groovy.ne.jp/
辺りです。
結局今回買ったのは、駅前ビックカメラにて現品があったDIGITAL COWBOY DC-NCR30。
そして、下記で悩み中、乗り換えようかと思ってネットで購入したGroovy GR-CAM130N2です。
実は、お試し用に拝借したQcam Expressも手元に。

なんでもいいから玄箱Debian化しちまえ。

HGでも良かったんですが、安さに負けて、今回はノーマル玄箱
Googleでトップに引っかかる、
http://tabi.homeip.net/kuro/
こちらを参考にDebian化します。この段階は全く滞りなく進み、とりあえずインストが完了したら
http://web.archive.org/web/20080317100008/http://www.dyg.jp/category/kurobox/8.htm(元々はhttp://www.dyg.jp/category/kurobox/8.htm
こちらを参考に、EMモードからバックアップを取ります。

さて、問題のWebカメラ認識だ。〜ダメな例〜

正直、Linuxのドライバ関連のお話なんか何もしりません。
訳が分からないまま、とにかくgspcaというドライバを入れることができれば大丈夫らしいことだけが分かりました。(DIGITAL COWBOY DC-NCR30をlsusbとすると、ID 0ac8:305b Z-Star Microelectronics Corp.と出る。lsusbはaptitudeであっさりインスト可能、ただしusbutils。)
ということで、イチかバチかaptitude install gspca-modules-2.6.18-5-powerpcとかやってみます。
インストだけはそこそこ順調に進みます・・・が。
途中、linux-imageかなんかのインストの段階で、liloがなんちゃら/boot/がなんちゃらといわれまして。
YesYesYeeeeeees!!と答えていった後、Webカメラをぶっさすと・・・認識しません。なんかヤバいことをやった模様。
rebootすると・・・はい、再起動しません。コンセントぶっこ抜き。
コンセントを再度差し込んで起動してみるも、結構な時間のランプ点滅の後、赤ランプ6回サイン。だめだこりゃ、っと。
運良く、赤ランプがついてハングるまではtelnetてきましたので、その隙にEMモードにしてバックアップから復旧。
こんなことを、色んなgspca-moduleで繰り返してました。
暇な時間があまりなかったので、1ヶ月くらいずっと。

んじゃまぁカーネル再構築とかやってみようか。

色々と試しているうちに、カーネルのソースがないとだめのような気がしてきました。
そこで昔聞いた事がある、カーネルの再構築とかいうもんをやってみれば、そら絶対カーネルのソースは手に入るわな?と考え、やってみることにしました。
んで、こちら
http://web.archive.org/web/20080309202804/http://www.dyg.jp/category/kurobox/5.htm(http://www.dyg.jp/category/kurobox/5.htm)
http://yahho.ii2.cc/modules/bwiki/index.php?%B3%D0%A4%A8%BD%F1%A4%AD
を参考にDebian再構築を。
ただ、使ったパッチとソースはkurobox-sources-2.6.23.1.patchとlinux-2.6.23.1.tar.gzでした。
再構築後の失敗は色々ありましたが、結局途中のmake menuconfigにて、MultimediaのCameraに関係しそうなものを追加しまくったのが功を奏したのかもしれません。


make vmlinuxとmake modulesで時間がかかりつつも、とりあえずは再構築完了、とバックアップ。

ちゃんと組み込まないと、ドライバは認識しないらしい。

再構築後・・・。gspcaを・・・。なんか色んな手でインストトライしました。
どれがうまくいったのか、正直わすれちったい!(胸を張って
多分、
http://lists.debian.or.jp/debian-users/200705/msg00060.html
ここを参考に
aptitude install gspca-modules-`uname -r`
aptitude install module-assistant gspca-source
m-a a-i gspca
をしたら、うまくいったんだと思います。

ここ
http://mxhaard.free.fr/download.html
から落としたソースをmake、make installもしたと思いますが、なんかうまくいかなかった気がする。

ちゃんと組み込まないといかんのね?

で、この状態のままUSB端子に3種のカメラを挿し込んでみましたが・・・/var/log/messagesには、USBデバイスの抜き挿しのみしか反応がありません。対応ドライバがあれば、USBデバイス認識の後、対応ドライバ認識のログが出るはず?


勿論全く知らなかったのですが、どうやら
depmod -a
modconf
で組み込まないといかんのですね。
kernel/drivers/usb/mediaにあったgspcaを+に。ついでに、Camera関係のドライバを全て組み込んでやったり・・・。


ここまでして、ようやくDIGITAL COWBOY DC-NCR30を認識。あぁぁ〜・・・長かった(;´д⊂)

実際に撮ってみる

バイスは認識されたので、後は実際に撮影を。
mknod /dev/video0 c 81 0
ln -s /dev/video0 /dev/video
とかでデバイスファイルを作成。
install xawtv webcam
で撮影ソフトを入れる。/root/.webcamrcはここ
http://bakuretsu.atso-net.jp/bakuretsu/webcam/linux-usb-old.html
を参考に設定!大きさを1280*960にしたらば、320*240の繰り返し画像みたいになっちゃいましたので、640*480で妥協。rotate=2にしないと上下逆。


当初、なかなかカメラ自体についているピントがあわず、思わず不良品か?とも思いましたがー。
5秒毎撮影で少しずつ合わせたところ、ようやく標準レベルには写るようになりました。
こたつの中につっこんだところ、赤外線もそれなりに動作するみたいです。

後は、この画像データをどう扱うかだけですな。

NightVision2はまだダメ

せっかく買ったことだし、Groovy GR-CAM130N2の方もなんとか使えないかと調べまくってみました。
が、今のところ自分では不可能です・・・。
センサー:CMOS:OmmVision社OV7660、画像エンジンSONIX社SN9C201みたいです。
lsmodはID 0c45:627b Microdiaです。


よう分からんのですが。
gscpaはSN9C102ならOKだったり、ここ
http://www.linux-projects.org/modules/news/
にsn9cxxxのi386用のドライバならあったり。でも、よくよく読んでみるとバイナリのみの公開で、ソースは公開しておらず、金払わないとその他のドライバはくれない、って連呼してますな。
やれやれです。


どっかの掲示板に、Microdiaは結構たくさんドライバが未対応で、gspcaか何か(忘れた)が対応中だとかなんとか書いてありましたね。
このカメラならもっと大きい解像度で撮影できるみたいだし、将来的にはこっちを使いたいものです。