ニワとりの巣箱

面白いものが生まれたり生まれなかったり。

テラリウム管理装置を作る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なので特に何も考えず、とりあえず挿せばよし。 

f:id:niwakxq:20171114000744j:plain

 

カメラが認識されているか確認

$ 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

f:id:niwakxq:20171123204105j:plain

 

いい感じに映りました。

(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/bin/env python
# coding:utf-8

import cv2
import time

c = cv2.VideoCapture(0)

ret, img = c.read()

if ret==True:
    cv2.imwrite('/usr/app/niwashi/img/capture.jpg', img)

c.release()

 

細かい解説はよそのサイトに譲ることにして、

/usr/app/niwashi/img/capture.jpg

というファイルに撮影した画像を保存しているだけです。

これをデスクトップで確認してみると、

f:id:niwakxq:20171125021031j:plain

映りましたが、真っ暗です。

撮影できていないわけではないので、

明るさの調整の問題と思われます。

 

 

どうもカメラには自動補正機能があるらしいです。

こちらのページを参考に、複数回撮影してから本撮影するようにしました。

ラズパイでUSBカメラを使うときに知っておきたいこと | hiro345

 

…省略…

c = cv2.VideoCapture(0)

for i in xrange(30):for i in xrange(30):

    ret, sample = c.read()

ret, img = c.read()

…省略…

 

f:id:niwakxq:20171125021816j:plain

映りました。

ちょっと暗いのは撮影したとき部屋が暗かったからです。

照明があったほうがいいかもしれませんが、

基本的にはこれでよさげです。

解像度が低いですが、そこはカメラの性能。

もうちょっと高いのを買えばよかったかもしれませんが、

苔の状態はなんとなくわかりそうなのでよしとしましょう。

 

次回に続きます。