開発日誌:ラズパイ+AWS S3でネットワークカメラもどきを作ってみるvol.2:カメラをPythonで制御
これを使って遊びます。

- 出版社/メーカー: Raspberry Pi
- メディア: Personal Computers
- この商品を含むブログを見る
今までの経緯
前回はカメラを機能するようにしたので、今回はPythonコードで制御できるようにしたよ。
手順
1:まずは、python-picameraというモジュールをOSにインストール。
apt-getで行う。
[ユーザー名]:~/py3env $ sudo apt-get install python-picamera [sudo] password for [ユーザー名]: パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 python-picamera はすでに最新版です。 以下のパッケージが自動でインストールされましたが、もう必要とされていません: libasn1-8-heimdal libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libkrb5-26-heimdal libroken18-heimdal libwind0-heimdal libxfce4ui-1-0 xfce-keyboard-shortcuts これを削除するには 'apt-get autoremove' を利用してください。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 10 個。
なんかすでに入っていた模様・・・問題は特になし。では次。
2:仮想環境に移行
(ラズパイでの仮想環境の構築方法はこちら→ Raspbian(RaspberryPi)でvirtualenvを導入したときのメモ - まわ )
[ユーザー名]:~/py3env $ ls bin include lib pip-selfcheck.json [ユーザー名]:~/py3env $ source ./bin/activate (py3env) [ユーザー名]:~/py3env $ ls bin include lib pip-selfcheck.json
3:とりあえず動作確認・・・
(py3env) [ユーザー名]:~/py3env $ python Python 3.4.2 (default, Oct 19 2014, 13:31:11) [GCC 4.9.1] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import picamera Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named 'picamera' >>> exit()
あれ、"picamera"ってモジュールが無いと来た。試しにpip3で入れてみる。
4:picameraをインストール
今度はapt-getでなくpip3で入れる。
(py3env) [ユーザー名]:~/py3env $ pip3 install picamera
Collecting picamera
Downloading picamera-1.13.tar.gz (143kB)
100% |████████████████████████████████| 153kB 899kB/s
Building wheels for collected packages: picamera
Running setup.py bdist_wheel for picamera ... done
Stored in directory: /home/[ユーザー名]/.cache/pip/wheels/bd/5f/88/3109bd5aa7e6c5cf62d71d6cbf444d46a9d932df4af35f2071
Successfully built picamera
Installing collected packages: picamera
Successfully installed picamera-1.13
オッ、行けたっぽい。再度pythonシェルへ。
5:カメラをPythonコードで制御
以下のように打つと・・・
(py3env) [ユーザー名]:~/py3env $ python
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import picamera
>>> cam = picamera.PiCamera()
>>> cam.resolution = (640,480)
#↑撮影画像の縦横ピクセルを指定可能
>>> cam.capture(test_by_python.jpg)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'test_by_python' is not defined
#↑captureするファイル名は""でくくって文字列と明示が必要
>>> cam.capture("test_by_python.jpg")
>>> exit()
撮れてるかファイルを確認すると、
(py3env) [ユーザー名]:~/py3env $ ls bin include lib pip-selfcheck.json test_by_python.jpg
できてる。実際に画像も撮れていた。OK。次は、botoでS3にアップだな。