Raspberry Π

Raspberry Piでいろんなことをやってみようというブログです。

mincraft

カメラモジュールを使って写真を撮る

ラズパイを使った野菜栽培のプロジェクトを始めましたが、そこで野菜の状況を毎日確認出来たらと思いまして。
写真撮影をして、日々の移り変わりを確認できれば面白そうとなりました。

ということで、ラズパイにカメラ機能を付けてみて写真を撮ってみます。
今回はラズパイ3を使いました。

f:id:taka230035:20170518083459j:plain:w300

ラズパイで野菜栽培=ラズ菜プロジェクトは以下となります。

rasp0035.hatenablog.com



買ったもの・使ったもの

ラズパイ用のカメラモジュール
Raspberry pi Camera Module V2
というのを購入しました。
f:id:taka230035:20170518081810j:plain:w300

ラズパイ系にしては結構高価です。


※ちなみに、以前購入レビューした、ラズパイマガジン2016年6月用の部品セットにはもちろん付いていません。
ラズパイマガジン2016年6月号の電子工作入門部品セットの購入レビュー - Raspberry Π



またラズパイについては、OSインストールまで完了している状態とします。
rasp0035.hatenablog.com





公式ドキュメント

今回は公式ドキュメントを参照しました。

www.raspberrypi.org

英語ですが、手順はかなり簡単ですし、読みやすいです。

カメラのライブラリにはShell用とPython言語用のどちらかを使用できるとのことです。

今回は、Python言語を使用したいと思います。





カメラモジュールの接続

まず、開封となります。中身は以下となりました。暗くてスミマセン。
f:id:taka230035:20170518082317j:plain:w200


ラズパイ3との大きさ比較です。
f:id:taka230035:20170518082329j:plain:w200


レンズ部分で、シールが貼ってありました。
f:id:taka230035:20170518083459j:plain:w200

この部品の使いみちがいまいち分かりません。フォーカス用なのか、固定するものなのか。
f:id:taka230035:20170518083701j:plain:w200
一応取り付けはできますが、ガッチリと固定されるものではありませんでした。
f:id:taka230035:20170518083705j:plain:w200



このカメラモジュールをラズパイに接続します。
ラズパイ3にCAMERAと親切にも記載している箇所があり。
f:id:taka230035:20170518085004j:plain:w200

その部分の部品を持ち上げます。
※写真タップで拡大します。
f:id:taka230035:20170518085037j:plain:w100 f:id:taka230035:20170518085047j:plain:w100

カメラモジュールの接続部分を挿して、部品を押し込み戻します。
特に他の部品や道具は必要なく、簡単にできました。
※写真タップで拡大します。
f:id:taka230035:20170518085226j:plain:w100 f:id:taka230035:20170518085230j:plain:w100


完成形は以下です。
f:id:taka230035:20170518085557j:plain:w200




カメラを使えるようにする

次にラズパイのターミナル画面上での操作です。

以下コマンドを入力します。

$ sudo raspi-config

設定画面が表示されるので、カメラ機能をONにします。
f:id:taka230035:20170518090050p:plain:w200
f:id:taka230035:20170518090100p:plain:w200

すぐに設定を反映するため、リブートします。
f:id:taka230035:20170518090111p:plain:w200


ちなみに外部ディスプレイを接続している場合は、以下で設定できると思われます。(コチラの設定は未確認です。)
f:id:taka230035:20170518090351j:plain:w200
f:id:taka230035:20170518090705j:plain:w200

そして、ラズパイのOSやライブラリを最新にします。
以下のコマンドを入力して、しばらく待ちます。

$ sudo apt-get update
$ sudo apt-get install python-picamera


以上で、カメラが使用できる状態となりました。




スクリプト

あとはPython言語で撮影用のスクリプトを作るだけです。

その前に現在いるパスを確認しましょう。

自分の環境ではpiユーザでログインしていますので、
/home/pi
にいる状況です。
今回はここでpythonスクリプトを作成していきます。

ファイル名はcamera.pyとしました。

$ sudo vi camera.py



ファイル内に以下を記載します。たった3行です。

import picamera #------1
camera = picamera.PiCamera() #------2
camera.capture('image.jpg') #------3





スクリプトの解説

上記camera.pyファイルの解説となります。
〜〜〜〜〜〜〜〜〜〜
1については、カメラライブラリをインポートする処理です。

2については、ライブラリ使用の準備となります。

3については、実際写真を撮り、画像にする処理です。
〜〜〜〜〜〜〜〜〜〜

3行だけで、写真撮影が出来て簡単ですね。




撮影

それでは撮影してみたいと思います。

$ sudo python3 camera.py



2,3秒でプロンプトが帰ってきますので、lsコマンドでファイルがあることを確認します。

$ ls
~~
image.jpg
~~





撮影した画像を見るには。。

せっかく撮影した画像ですが、場合によっては確認するのにもう一手順必要になります。


ラズパイを外部ディスプレイに接続している状態でしたら、GUIでファイルをクリックすれば、すぐに確認可能です。
では、ディスプレイに接続していない(ラズパイにコンソール接続)場合はどうするかというと。。。


SCPコマンドで、ラズパイ上の画像ファイルを接続元PCにダウンロードしたいと思います!!


ラズパイにコンソール接続する場合、
PCのターミナルから

$ ssh pi@192.168.X.X(ラズパイのIPアドレス

などとして、ラズパイに接続すると思いますが、
その場合はPCのターミナルから

$ scp pi@192.168.X.X:/home/pi/image.jpg .

と打ちます。最後のドットも忘れないでください。


sshの部分をscpとします。
ラズパイのIPアドレスの後に
:“ラズパイ上でのイメージパス” “接続元PCのパス”
を追記します。

今回だと、 先に確認したとおりラズパイ上では
/home/pi
で作業したので、ラズパイ上でのイメージパス => /home/pi/image.jpg となります。
接続元PCのパス => . と今回はしました。



その後

pi@192.168.X.X's password:

となるので、パスワードを入力します。

そうすることで、接続元PCの現在いるパスに画像ファイルが作成されていることを確認します。


私の環境で撮影した画像が以下となります。
f:id:taka230035:20170521015245j:plain:w200




所感

モジュールは簡単に接続できますし、撮影自体も簡単でそこが良いポイントです。

撮影された画像はちょっと画質は荒いかなと思い、
値段もそれなりにしたので、少し残念ポイントです。
(もしかしたら、撮影環境とかも関係するかもしれません。)


ただ、カメラのライブラリで画質などの調整も行えるコマンドもあるようなので、
どうしても気に入らない場合は、調べてみたいと思います。



Raspberry Pi Camera V2

Raspberry Pi Camera V2