引き続いてOV7670のカメラを作ろうと思っているのですが、今度は撮影した画像を保存しようと思っています。ただ保存するだけでは面白くないので、定期的に自動撮影した画像をPicasaやFrickrにアップロードできる定点観測カメラに仕立てることをもくろんでいます。SAM3SにはEthernetはないので、ネットワーク接続にはEye-Fiを利用してやろうと考えConnect X2を購入。
購入したはいいのですが、このカードって技術情報が何も開示されていないんですね。「いつのまにか転送してくれる」のは普通の人には便利なのかもしれませんが、こちらとしては転送中かどうかを判断する方法が知りたいところ。世の中にはEye-fi対応を謳うカメラもあり、転送中は電源を落とさないらしい。したがって、転送中かどうかを調べる手順があるはず。マイコンで制御する場合にも、できれば転送終了を待ってパワーダウンモードに入るとか、SDカードへの給電を停止するとかしたい。
マイコンに接続する場合の方法については、SPIモードが使えるかどうかも気になるところですが、検索したところエレキジャックの記事が見つかりました。何回かの連載の内容がこの本にまとめられていたので、立ち読みしてみるとSPIモードでも書き込めるようです。やろうとしていることは、この記事と同じようなことですが、よりシンプルなハードで安価に作れるかな。SAM3SはHSMCIというSDカードインタフェースを持っているので、考え直してSPIを使ってのSDカード接続は取り下げ。この機会にHSMCIを使ってみようと思います。
転送できるファイルはJPEGあるいはRAWならびにいくつかの動画形式に限定されているようなので、BMP形式ではアップロードできないことになります。そこでOV7670で撮影したデータもJPEGにしてやる必要があります。libjpegを使えばできることはわかっているので、変換してSDカードに書き込んでやれば、自動的にアップロードできるはず。転送がおわった写真ファイルを自動的に削除してくれる「エンドレス・モード」という機能もあるので、自動で写真を撮り続けてもSDカードがいっぱいになる心配をしなくてもすみます。しかし、この機能もどういうタイミングでファイル消すのか不明なので、ちょっと不安なところです。自分だったらこの機能をどうやって実現するかを考えてみましたが、やはりカードの初期化手順の中で処理してしまうのがいいかな。CMD0とか CMD1のようなカード初期化時に実行されるコマンドを処理するついでにファイル消去すれば、それ以降の読み書き処理に影響を与えずに済みます。OV7670はVGA解像度しかないので、これをJPEGにしてしまえば100KBも使わないはずです。4GBもあれば、当分は困ることもないのですけどね。
購入したはいいのですが、このカードって技術情報が何も開示されていないんですね。「いつのまにか転送してくれる」のは普通の人には便利なのかもしれませんが、こちらとしては転送中かどうかを判断する方法が知りたいところ。世の中にはEye-fi対応を謳うカメラもあり、転送中は電源を落とさないらしい。したがって、転送中かどうかを調べる手順があるはず。マイコンで制御する場合にも、できれば転送終了を待ってパワーダウンモードに入るとか、SDカードへの給電を停止するとかしたい。
マイコンに接続する場合の方法については、SPIモードが使えるかどうかも気になるところですが、検索したところエレキジャックの記事が見つかりました。何回かの連載の内容がこの本にまとめられていたので、立ち読みしてみるとSPIモードでも書き込めるようです。やろうとしていることは、この記事と同じようなことですが、よりシンプルなハードで安価に作れるかな。SAM3SはHSMCIというSDカードインタフェースを持っているので、考え直してSPIを使ってのSDカード接続は取り下げ。この機会にHSMCIを使ってみようと思います。
転送できるファイルはJPEGあるいはRAWならびにいくつかの動画形式に限定されているようなので、BMP形式ではアップロードできないことになります。そこでOV7670で撮影したデータもJPEGにしてやる必要があります。libjpegを使えばできることはわかっているので、変換してSDカードに書き込んでやれば、自動的にアップロードできるはず。転送がおわった写真ファイルを自動的に削除してくれる「エンドレス・モード」という機能もあるので、自動で写真を撮り続けてもSDカードがいっぱいになる心配をしなくてもすみます。しかし、この機能もどういうタイミングでファイル消すのか不明なので、ちょっと不安なところです。自分だったらこの機能をどうやって実現するかを考えてみましたが、やはりカードの初期化手順の中で処理してしまうのがいいかな。CMD0とか CMD1のようなカード初期化時に実行されるコマンドを処理するついでにファイル消去すれば、それ以降の読み書き処理に影響を与えずに済みます。OV7670はVGA解像度しかないので、これをJPEGにしてしまえば100KBも使わないはずです。4GBもあれば、当分は困ることもないのですけどね。