TOP > 電子部品> カメラ(OV7670)

カメラモジュール (OV7670)

 (2020.12.17 作成)

 このページではOmniVision社製のカメラモジュールOV7670について紹介してみたいと思います。

 このカメラモジュールの歴史は古く2005年から発売されており、またとても安価なため多くのサイト様で使用例が紹介されています。

 このためAliexpressで検索すると多くのショップで取り扱われています。

 そして販売されているモジュールには大別してメモリを積んだFIFOありとメモリを搭載していないFIFOなしのモジュールに分かれます。FIFOありのモジュールは画像データを一旦メモリに蓄えることができるため安価なマイコンでも使用可能なのですが800円以上ととても高価です。

 一方FIFOなしのモジュールは150円前後ととても安く、安物買いの銭失いをモットーとしている本サイトではもちろんFIFOなしのモジュールに魅力を感じます。

 さて、そんな多くのサイト様で紹介されているOV7670をあえて紹介しようとした理由ですが、管理人としてはこのモジュールをカメラとしてではなく、単なる受光器アレイとして使ってみたということにあります。

 安価なカメラであればこのOV7670以外にも多く発売されていますが、このモジュールはレンズとセンサが分かれており、レンズ部分を外すことで写真の様にセンサが露出します。

 このようにセンサだけで使用すると3.6umのフォトダイオードが640x480個並んだ受光素子というとらえ方ができます。

 具体的にはこのセンサを使うことでレーザーカッターの焦点調整に使えないかなと思ったことがきっかけです。

 ということでこのページで紹介する使い方は

  • フルサイズ(640x480)のRAWデータを取得する
  • データレートは遅くてもOK
  • 複雑な処理はPCで行うからマイコンはPCへデータを渡してくれるだけでいい
  • 画像処理は一切不要。受光量が倍になれば出力も倍になってほしい(リニアガンマ)
  • 金額はなるべく安く仕上げたい。

というものを目指しました。

 ということでマイコンにはSTM32F103C8T6基板を使用し、全体でマイコンを合わせて500円以下でシステムの構築を行いました

実際にできたシステム

 細かな使用法や苦労などは以下のリンクから見てもらうとして、出来上がったシステムとこのボードでキャプチャしたRAWデータを以下に載せます。

  • マイコン基板とOV7670基板のみの構成で画像を転送することができました。配線以外は一切部品を使用していません。
  • PCで受信した画像は右上の画像です。PCへの転送はBayer配列画像なのでこの画像はOpenCVでカラーに変換しています。
  • 見ての通りあらゆる画像補正を切り、ガンマも1.0に調整しているためカメラの映りとしては最低です。
  • PCへの転送レートはUSBを使用して2.5fpsでした。かなりカクカクしますが、動画かと言われれば一応動画です。

 カメラとしての動作は期待していないので、これで問題のない出来上がりだと思っています。

リンクとダウンロード

 使う上で参考になりそうなページをいくつか作成してみました。

 以下のリンクから管理人が作成したソフトのソースコードをダウンロードしていただくことができます。

 ただしこちらで紹介しているクラスを使用し、またPCソフトもOpenCVをDllとしてC#から呼び出しています。これらのすべてを逐一説明することは事実上困難なので、参考にされる方はぜひソースから読み取っていただければと思います。

<< Download >>

 

 なお、使用した開発環境ですが以下の通りです。

 

ソースを見ていただいてわかりにくい点があれば下のコメント欄で質問していただければと思います。できる範囲で回答したいと思います。

コメント: 1
  • #1

    (火曜日, 10 9月 2024 22:46)

    こんにちは。
    突然のコメント失礼いたします。
    現在私はマイコンでFIFOなしOV7670モジュールを利用したいと思い開発を進めています。
    その中でF1マイコンを利用しているコードをぜひ参考にしたく、ソースを確認しようとしたのですが、リンクが無効になっておりDLできませんでした。
    もしよろしければ、再度アップロードしていただけないでしょうか。

    以上、よろしくお願いいたします。