開発日誌:ラズパイ+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にアップだな。