エントリー

200万画素シリアル出力カメラを試食してみた

SparkfunでLinkSprite社製「LS-Y201-2MP」というカメラモジュールを見つけたので、試しに購入してみました。価格は約$55、下記のような仕様です。

  • CMOSイメージセンサ 200万画素
  • シリアル(UART)インターフェース、最大1.2Mbps
  • 出力画像フォーマット JPEG
  • 最大解像度 1600x1200(UXGA)


このカメラモジュールは、撮影した画像をシリアル(UART)経由で取り出せます。画像フォーマットはJPEG。JPEGファイルのデータがそのまま送られてくるイメージです。

同じくシリアル出力で解像度がVGAの「LS-Y201」の後継にあたります。制御コマンドの体系がLS-Y201とほとんど同じなので、ネット上に数多く公開されている、LS-Y201用のプログラムをほぼそのまま流用できます。

高速インターフェースを使用せず、非力なマイコンでも、200万画素を扱える。
多分SDカードへの保存がやっとというくらいでしょうけど。なかなか魅力的ですよね。


外観はこのような感じです。サイズは32x32(mm)。

20140810002105.JPG

裏面

20140810002107.JPG
QCのシールを剥がしてみると・・・

20140810002106.JPG
STM32F103・・・おっとどこかで見たことのあるマイコンですね。

せっかくカメラモジュールにSTM32が付いているのに、わざわざデータをUART経由で出してきて、さらにそれを別のマイコン等のデバイスで受ける、という構成になってしまい、非常にイマイチな感じを受けます。

カメラ側のマイコンをプログラミングしたいところですが、おそらくプログラム領域は常識的に考えてプロテクトが掛けられていて読み書き出来ないはずなので、諦めるしかないようです。(あくまで憶測ですので、もしかしたら、ということがあるかもしれません)


さて、LS-Y201-2MPの使い方ですが、簡単に言えば、UART経由でコマンドを送り、初めにカメラの各設定を行います。次に撮影コマンド送信後、リードコマンドを送り、カメラからのデータをひたすら受信します。JPEGファイルの内容がそのまま送られてくるので、JPEGイメージの終了を表すマーカー値「FFD9」が来たら受信処理を終了させます。


データ受信側のマイコンとしてmbed(LPC11U24)を使った場合の回路と、サンプルコードを紹介します。10秒毎に撮影、カメラからJPEGデータを受信しSDカードへ書き込みます。

 

  • 回路図

20140810002439.jpg

 


前モデルと異なり、解像度は一度設定するとカメラ側に記憶されますが、UARTの転送速度については電源を切ると115200bpsに初期化されます。設定ミスを心配することなく、安心して高速転送に挑むことができます。

ちなみに上記構成で576kbpsまでデータが正常に受信できていることを確認しています。さすがに1.2Mbpsでは、受信データが化けてしまいました。

サンプルプログラムで使用している、SDFileSystemライブラリについてですが、デフォルトの状態ではSPIのクロックが1MHzの設定になっています。このままではSDカードへの書き込みがかなり遅いので、SDFileSystem.cppの210行目にあるの周波数設定を変更しておきます。24MHzくらいで良いと思います。

LS-Y201-2MPの最も信頼できる資料は、今のところSparkfunにあるpdfのUserManualくらいです。ただこの資料も「Pin Description」記載の端子の並びが、実際の並びとは異なるので注意が必要です。

つづく・・・

 

ページ移動

コメント

  • コメントはまだありません。

ユーティリティ

Author


oaks (twitter: @oks486)

記事の内容に関しては無保証です。何事も At your own risk ってことでよろしく。
リンクはご自由にどうぞ。

SPAM対策が面倒なため現在コメント投稿機能を停止しています。あしからず...

検索

エントリー検索フォーム
キーワード

Feed

リンク