Raspberry PiカメラモジュールV2でデジカメを作ってみた
2017/02/18
以前購入した基本セットに加えて、Raspberry PiカメラモジュールV2 (Daylight - element14)を購入してみました。
デジカメなどを製作するためです。
デジカメといっても、Raspberry Pi3に、PiカメラモジュールV2とブレッドボード上のタクトスイッチをつないだだけなんですけど・・・。
このPiカメラモジュールV2ですが、現時点で価格が4千円前後と、部品としてはちょっとお高い。
まあ808万画素のカメラを電子工作に組み込めるんだから、ここはちょっとガマンですね。
Amazonで購入する場合、同様の商品はいろいろありますが、私的にはこれがオススメです。
→Raspberry Pi Camera Module V2 カメラモジュール (Daylight - element14)はコチラ
しかし、たまに在庫切れでプレミア価格になってしまうこともあります。
その時は、RSオンラインというサイトで探してみてください。
さて、デジカメの作り方です。
ネタ元は「Raspberry Piで学ぶ電子工作」ですが、丸パクリは失礼かと思ったので、プログラムのコードをほんの少しだけ変えてあります。
手順としては以下のとおり。
①回路作り
②Raspberry Piの設定
③プログラム開発環境IDLEでプログラムファイルを作って実行
④撮影したJPEG画像ファイルが保存されているか確認
それでは詳細に入ります。
①回路作り
タクトスイッチの回路図は、基本的には次のとおりです。
タクトスイッチとプルダウン抵抗をつないでます。
しかし!
今回は、Raspberry Pi内部のプルダウン抵抗を使うので、10kΩの抵抗は使いません。
(Raspberry Pi内部のプルダウン・プルアップ抵抗を使う場合は、プログラムで設定します)
したがって次のような回路図になります。
回路図と言ってしまうと恥ずかしくなるくらいシンプルですが、一応タクトスイッチ(=シャッターボタン)は必要なので。
実際の配線は次の画像のようになります。
使うのは、PiカメラモジュールV2と、基本セットのタクトスイッチ、ジャンパーワイヤ(オス-メス)2本。
1本(赤)は1番ピンの電源3.3[V]とタクトスイッチのピンに、もう1本(黒)は12番ピンのGPIO18とタクトスイッチのピンに、それぞれつないでいます(タクトスイッチのピンに注意。スイッチを押すとつながる組み合わせで)。
念のため、Piカメラモジュールの取り付け方を説明しておきますね。
本の中でも軽く流してある程度なので、もしかしたら戸惑う人がいるかも。
Piカメラモジュールのコネクタは、基板に小さく「CAMERA」と書いてあるところです。
コネクタの、ツメの両側を上に引っ張りあげます。
そこにPiカメラモジュールV2の端子を奥まで差し込みます。
向きを間違えないように。
引っ張り上げたツメを押し込むと、Piカメラモジュールのケーブルが固定されます。
②Raspberry Piの設定
初期設定のままでは、Piカメラモジュールは使えません。
設定の手順は次のとおり。
デスクトップ画面(GUI)から「Menu」→「設定」→「Raspberry Piの設定」と進みます。
(CUIでも「sudo raspi-config」というコマンドで設定できます)
Raspberry Piの設定ウィンドウが表示されたら、「インターフェースタブ」をクリック、「カメラ」の項目で「有効」を選択し、「OK」ボタンをクリックします。
以上でRaspberry Piの設定は完了です。
③プログラム開発環境IDLEでPythonプログラムを作って実行
プログラムは次のとおりです。(本のサンプルプログラムとはちょっとだけ違います)
#! /usr/bin/env /usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time import subprocess import datetime def my_callback(channel): if channel==18: d = datetime.datetime.today() filename = "{0}{1:02d}{2:02d}{3:02d}{4:02d}{5:02d}.jpg".format(d.year, d.month, d.day, d.hour, d.minute, d.second) args = ['raspistill', '-o', filename, '-t', '1'] subprocess.Popen(args) GPIO.setmode(GPIO.BCM) GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.add_event_detect(18, GPIO.RISING, callback=my_callback, bouncetime=200) try: while True: time.sleep(0.01) except KeyboardInterrupt: pass GPIO.cleanup()
このプログラムを実行します。
Piカメラモジュールのレンズを撮影対象に向けて、何回かタクトスイッチを押してみてください。
正常に動作すれば、Raspberry PiのpiディレクトリにJPEG画像が保存されているはずです。
④撮影したJPEG画像ファイルが保存されているか確認
デスクトップの引き出しボックスのようなアイコンをクリックしてファイルマネージャーを起動します。
ウィンドウ左側の「ディレクトリツリー」の「pi」をクリックするか、上側の入力欄に絶対パス「/home/pi」を入力してENTERキーを押すと、piディレクトリ内が表示されます。
ここに「(西暦年・月・日・時・分・秒).jpg」というJPEG画像ファイルがあれば、撮影成功です。
ファイルをダブルクリックするか、右クリックして「イメージピューワ」を選択すると画像を見ることができます。