Raspberry Piで赤外線デジカメを1.5万円で自作する方法

f:id:karaage:20151012171630j:plain:w640

赤外線写真

 自分が、何度もチャレンジしてはうまくいかないもののテーマの一つに赤外線写真があります。赤外線フィルタを使って長時間露光で赤外線写真を撮ったりしていました。もう3年以上前の記事なのに今だに検索されることが多いです。みんな赤外線写真によっぽど興味があるのか、よからぬことを考えているのか…

 ただ、やはり問題としては長時間露光が必要なため、画質に影響が出てしまうのとなにより撮影が難しい点。かといって赤外線フィルタを取り外す改造はリスクが高すぎる。そういえばRaspberry Piに赤外線フィルタレスのカメラモジュールがあったし、昔Raspberry Piでデジカメ作ってるし、Raspberry Piで赤外線デジカメ作れそうじゃん!と思いついたので作ってみました。
 ただ、以前作ったデジカメはディスプレイが壊れてしまい使えなかったので、ハードウェアは一から作り直しました。といっても市販のケースにフィルムをテープでとめて、スイッチつけただけ。ソフトは以前作ったものほぼそのままで、一部修正してます。部品揃えてから大体半日くらいで完成しました。
 なお念のため最初に言っておきますけど、自分の服を試しに撮ってみましたが全然透けませんのでそういうことを期待している人は無駄なので止めておいたほうが良いです。女の子の服はちゃんと口説いて脱がせて撮って下さい。

必要なもの

 部品費で0から集めると大体1.5万円くらい。Raspberry Piのソフト開発に必要なキーボード、マウス、ディスプレイケーブルや半田付けする工具を買うと2万円ちょいくらいかかります。

Raspberry Pi 2 Model B

Raspberry Pi 2 Model B

Raspberry Pi 2


赤外線カメラモジュール


microSDカード。Raspbian Jessieだと最低8GBは必要です。


バッテリ。最低2A出力できるものがよいです。


バッテリからの給電ケーブル。タイプAオス- マイクロタイプBオスのものなら何でもOK


Raspberry Pi B+ (Plus) 専用ケース RS製 (White)

Raspberry Pi B+ (Plus) 専用ケース RS製 (White)

ケース。カメラの固定もできます


赤外線フィルタ。色を残したい場合は、もっと高い周波数でカットするフィルタの方がよいです。


ジャンパワイヤ(オス?メス) 10本セット

ジャンパワイヤ(オス?メス) 10本セット

配線


押しボタンスイッチ。好きなものでよいです。


goot 電子工作用はんだこてセット X-2000E

goot 電子工作用はんだこてセット X-2000E

半田付け用に

 以下はそこそこマニアックになるので、気になる方のみ続きを読んでください。

ハードウェアセットアップ

 半田付けが一箇所だけありますが、基本買ってきたものをつなぐだけです。

スイッチ接続

f:id:karaage:20151012160522j:plain:w640
 スイッチと配線

 半田付けしてやりましょう

f:id:karaage:20151012161153j:plain:w640
 こんな感じ。

 半田付けのやり方は適当に検索してください!どうしても半田付けできない人、やりたくない人はテープで接続しても何回かは試せると思います。

組み付け

 赤外線カメラモジュールとスイッチを以下のようにとりつけます。
f:id:karaage:20151012170938j:plain:w640

 スイッチは、Raspberry PiのBCM17(11pin)GND(9pin)に繋いで下さい。Raspberry Piのピン配置は以下です。


 次に取りいだしたるは赤外線フィルタ

f:id:karaage:20151012171142j:plain:w640
 今回はIR76で試しました


 ケースにテープで固定してやります

f:id:karaage:20151012171345j:plain:w640
 こいつを


f:id:karaage:20151012235042j:plain:w640
 こうね!!


 あとは以下のようにケースにカメラを取り付けて
f:id:karaage:20151012171504j:plain:w640

 最終的には以下のようになります
f:id:karaage:20151012171630j:plain:w640

ソフトウェアセットアップ

 ソフトのセットアップです。初めての人は結構大変かも。

Raspbian Jessieセットアップ

 まずは以下の記事を参考にRaspberry Pi2にRaspbian Jessieをセットアップしましょう。

 Raspbian Wheezyでは動作確認はしてないですが、多分動くとおもいます。Raspbian Wheezyをセットアップする場合は以下参照下さい。

 これ以降はRaspbian Jessieのセットアップができていて、Raspberry Piがネットに繋がっている状態でログインしている前提です。

 Raspbianセットアップの注意点は以下。

  • カメラモジュールの設定はEnableにしておきましょう
  • カメラモジュールLED消灯の設定は、撮影に影響するので消灯するように設定しておきましょう

WiringPiセットアップ

 WiringPiをセットアップします。WiringPi自体はRaspbian Jessieではインストール済みなので、pythonでWiringPiを使うため、以下コマンドでWiringPi2-PythonのインストールをすればOKです。

$ sudo apt-get update
$ sudo apt-get install python-dev python-setuptools
$ git clone https://github.com/Gadgetoid/WiringPi2-Python.git
$ cd WiringPi2-Python
$ sudo python setup.py install

 WiringPiを使ったプログラムで、セットアップのときwiringPiSetup()という関数を使うかwiringPiSetupGpio()という関数を使うかでピン配置が変わるのですが、wiringPiSetup()だとSys modesとなり内蔵プルアップ、プルダウンが設定できないようなので、今回はwiringPiSetupGpio()を使ってセットアップします。wiringPiSetupGpio()でのピン配置は以下。


カメラアプリ インストール

 次にカメラアプリをインストールします。私が以前作った自作デジカメのソフトほぼそのままです。gistにアップしたので、以下のコマンドを実行するとソフトをインストールしてセットアップできます。

$ cd
$ git clone https://gist.github.com/8263451c7310f6fd203c.git raspidigicam
$ chmod 755 raspidigicam/raspidigicam.py
$ sudo cp raspidigicam/raspidigicam.py /usr/local/bin/
$ mkdir photo
$ echo 0 > photo/camera.set

カメラアプリのテスト(マニュアル)

 カメラアプリのテスト方法は以下の通り。マニュアルも兼ねてます。 

写真撮影

 Raspberry Piを起動して、以下コマンド実行してカメラの押しボタンスイッチを押すと写真が撮れます。

$ sudo raspidigicam.py

 写真は/home/pi/photoディレクトリに0.jpgというファイル名で保存されます。スイッチを押すたびに1.jpg2.jpgといった感じに数字がインクリメントされていきます。

写真転送

 写真をRaspberry PiからPCに転送する場合はSFTP経由でファイル転送してください。ソフトはMacならFilezilla、WindowsならWinSCP等があります。Macの場合は、以下の記事のファイル転送を参考にして下さい。


写真消去・カウンタリセット

 写真を消してカウンタをリセットしたい場合は以下です。

$ cd ~/photo
$ rm *
$ echo 0 > camera.set
シャットダウン

 押しボタンスイッチを5秒以上長押しすると、Raspberry Piのシャットダウンプロセスが走ります。Raspberry Piが停止してから電源を切るようにしましょう。

カメラアプリ自動起動設定

 /etc/rc.d/rc.localを以下のコマンドで編集

$ sudo vi /etc/rc.local

 exit 0の行の手前に以下のようにコマンドを追記しましょう。

sudo raspidigicam.py
exit 0

 これでRaspberry Piを再起動したらアプリが自動起動するようになります。

カメラアプリ ソースコード

 ソースコード。好きな方はご覧下さい。

 シャッターボタンの入力は割り込み使いたかったのですが、WiringPi + Pythonには割り込みは無いことを後で知りました。とりあえずポーリングっぽいことして無理やり動かしています。割り込み入力使うならRPi.GPIOというライブラリ使った方がよいかもしれません。

まとめと撮影した写真

 こんな感じで完成です。写真は以下のような感じです。
(写真間違えていたので修正しました! 2015/10/26)

f:id:karaage:20151017232159j:plain:w640

f:id:karaage:20151017232225j:plain:w640

 やっぱり植物撮影するとよい感じにスノー効果が出ますね。あと、全く色が残らないのは動作としては正しいのですが、自分にとっては誤算でした。長くなってしまったので作例はそのうちもうちょい詳しく書きます。多分。

 作例公開しました(2015/10/27追記)

関連記事