テラリウム管理装置を作る2
テラリウムの映像を取得するカメラをラズベリーパイに実装します。
※不慮の事故によりOSの再インストールを行ったので、
以降の記事はOSがWeezyではなくJessieになってます。
ラズベリーパイには専用のカメラモジュールもありますが、
結構いいお値段しますしその割に性能が限られるので
気軽に取り替えられる市販のWEBカメラを接続して使いたいと思います。
アマゾンで安いのを探しました。
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="https://rcm-fe.amazon-adsystem.com/e/cm?ref=qf_sp_asin_til&t=niwatomarigi-22&m=amazon&o=9&p=8&l=as1&IS1=1&detail=1&asins=B0087UMLJI&linkId=568e9a41b9737596615bc51b64c66808&bc1=FFFFFF<1=_top&fc1=333333&lc1=0066C0&bg1=FFFFFF&f=ifr">
</iframe>
これをラズベリーパイに接続します。
USBなので特に何も考えず、とりあえず挿せばよし。
カメラが認識されているか確認
$ lsusb
Bus 001 Device 005: ID 056e:7016 Elecom Co., Ltd
Bus 001 Device 004: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
1行目にELECOMって出てるので多分これでしょう。
カメラとして機能しているか確認するため、
簡単なビューワーをインストールします
$ sudo apt-get install guvcview
起動
$ guvcview
いい感じに映りました。
(OSがWeezyだとこれがうまく映らず、真黒な画面が表示されますが
以降の手順には影響ないので気にせず続行してください)
あとお気づきかと思いますが、苔の一部というか大部分が
茶色くなってしまっています。
原因は不明ですが、こういうこともあるみたいです。
最近急に寒くなったことが関係あるのかもしれませんし、
この苔とテラリウムの環境が合わなかった可能性もあります。
(今のところ水やりは怠ってませんよ!)
一応枯れているわけではなさそうなので
部屋を温めたり日に当てたりして復活を期待したいと思います。
実際の撮影はPythonで行います。
Python自体は元々RaspberryPiに入っています。
バージョンを確認するとこんな感じ。
$ python --version
Python 2.7.13
ここに画像を扱う定番のOpenCVというライブラリを入れます。
$ sudo apt-get install libopencv-dev
$ sudo apt-get install python-opencv
ここからプログラミングです。
と言っても画像を取得して保存するだけなので簡単。
これだけです。
細かい解説はよそのサイトに譲ることにして、
/usr/app/niwashi/img/capture.jpg
というファイルに撮影した画像を保存しているだけです。
これをデスクトップで確認してみると、
映りましたが、真っ暗です。
撮影できていないわけではないので、
明るさの調整の問題と思われます。
どうもカメラには自動補正機能があるらしいです。
こちらのページを参考に、複数回撮影してから本撮影するようにしました。
ラズパイでUSBカメラを使うときに知っておきたいこと | hiro345
映りました。
ちょっと暗いのは撮影したとき部屋が暗かったからです。
照明があったほうがいいかもしれませんが、
基本的にはこれでよさげです。
解像度が低いですが、そこはカメラの性能。
もうちょっと高いのを買えばよかったかもしれませんが、
苔の状態はなんとなくわかりそうなのでよしとしましょう。
次回に続きます。