Raspberry Piの基板上にはCSIソケットという、カメラモジュール専用のインターフェースがあります。カメラモジュールが開発中であることは伝えられていましたが、2013年5月中旬にやっと販売が開始され、一般の人でも入手できるようになりました。価格は25ドル程度(約2500円)です。

raspicol5-1

Raspberry PiではUSB接続のWebカメラも使用することもできますが、Raspberry Pi専用のカメラモジュールは5Mピクセルの画素センサーを搭載しており、2592x1944ピクセルの画像の撮影や、1080p/H264形式で30フレーム/秒の動画を撮影することができます。しかもカメラモジュールの基板は25x24mmと非常に小型なので、ケースに組み込んで使うことも可能です。

発売を伝える記事raspberrypi.org
Camera board available for sale!

本コラムでは3回にわたり、カメラモジュールを使って基本的な制止画の撮影から、動画撮影、応用編として”デジカメ”の作成をしていきたいと思います。

まずはカメラモジュールに対応させるため、Raspberry Piのファームウェアを最新のものに更新します。以下の手順はDesignSparkの記事を参考にさせていただきました。
$ sudo apt-get update
$ sudo apt-get upgrade

続いてRaspi-configを起動して、カメラを有効(Enable)に設定します。Raspi-configもバージョンアップされ、今までとは若干構成が変わっているようです。
$ sudo raspi-config

raspicol5-2

設定が終わったらRaspberry Piを再起動します。これでカメラモジュールが使えるようになりました。まずは制止画を撮影してみましょう。制止画の撮影にはraspistillコマンドを使用します。
$ raspistill -o image.jpg

-oオプションで保存したいファイル名を指定します。このコマンドを実行するとディスプレイに5秒間映像が表示され、この5秒間の最後の時点の内容が保存されます。プレビューの時間を変更したい場合は-tオプションを使います。単位はミリ秒です。(1000=1秒)
$ raspistill -o image.jpg -t 1000

逆にプレビュー不要ですぐに撮影したい場合は-nオプションを使います。ただしある程度プレビュー時間をとらないと、ホワイトバランスが自動調整されないようです。
$ raspistill -o image.jpg -n -t 0

保存したファイルはSFTPなどでPCに転送すれば、普通にPCでも見ることができます。WWWサーバー用のディレクトリに保存してライブカメラを作ったり、shell scriptなどを組み合わせて、画像をメールで送るシステムも簡単に作れそうですね。

Raspberry Piのカメラモジュールで撮影した画像(縮小しています)
raspicol5-3

もしRaspberry Piのコンソール上で画像を確認したい場合は、fbi(linux framebuffer imageviewer)で表示することができます。まずはfbiをインストールします。
$ sudo apt-get install fbi

たとえば先ほど撮影したimage.jpgを表示したい場合は、次のコマンドを実行します。fbiでは複数の画像ファイルを指定して、スライドショー表示をすることでもできます。終了するにはESCかqをタイプします。
$ fbi image.jpg -a

もし画像を3秒間だけ表示させて終了したい場合は次のようにします。-tオプションは秒数、-1は1回だけ表示するという意味です。なお-aは自動ズームで、-aを付けないとズームした状態で表示されます。
$ fbi image.jpg -a -t 3 -1

raspistillコマンドにはこのほかにも画質の調整オプションがあったり、タイムラプス機能(一定間隔で撮影する機能)などもありますので、詳しくは引数を付けずにraspistillコマンドを実行して、HELPを見てみるとよいでしょう。

次回のコラムでは動画の撮影について、その次のコラムではGPIOポートにボタンを取り付けてデジカメの作成に挑戦します。