実機検証ログ:2026-09〜2026-10 · 記事の編集日:


動作確認は、MCLK、SCCB通信、VSYNC・HSYNC・PCLK、データバス、画像転送の順に進めました。画像が出ない状態でも、どの段階まで動作しているかを一つずつ切り分けるためです。
GC0309想定からOV7670系の同定へ
評価を始めたCM-013は、海外サイトでGC0309搭載として販売されていたため、その前提で動作確認を始めました。しかし、SCCB/I2Cでレジスタを読めるようになった段階で、実機のID値がその前提と一致しないことが分かりました。
7-bitアドレス0x21でACKを確認し、STOP→STARTを用いたReadで複数レジスタを読み出しました。今回の個体では、0x0A=0x76、0x0B=0x73、0x1C=0x7F、0x1D=0xA2を確認しました。これらの値から、評価個体はGC0309ではなくOV7670系として扱うのが妥当と判断しました。
この経験から、型番や販売ページだけでセンサを決め打ちせず、初期化の前にIDレジスタを実機で読むことが重要だと分かりました。モジュールの世代差や部品変更がある場合でも、通信層とセンサ固有設定を切り分けやすくなります。
RP2040との配線
今回の評価では、RP2040側を次のように割り当てました。
| 信号 | RP2040 |
|---|---|
| SDA | GP0 |
| SCL | GP1 |
| D2〜D9 | GP2〜GP9 |
| PCLK | GP10 |
| VSYNC | GP11 |
| HSYNC | GP12 |
| MCLK | 外部24 MHz |
写真のようなブレッドボード上の試作配線で、まずは回路と信号の基板検証を行いました。最初にMCLKとSCCB通信を確認し、その後にVSYNC、HSYNC、PCLK、データバスへ進む順序にしています。画像が出ない場合でも、どの層まで動作しているかを切り分けやすくなります。
同期信号とQQVGAの実測
OV7670系として設定した後、センサ側でQQVGA 160×120、YUV422出力を設定しました。実測では、1フレームあたり120本のHSYNC、1ラインあたり320回のPCLKを確認し、フレーム周期は約30.012 fpsでした。
160画素のYUV422では1画素あたり平均2 byteが流れるため、1ライン320 PCLKという結果は設定と整合します。ここで重要なのは、センサ自体が約30 fpsで動いていても、マイコンからPCまで含めた実効fpsは別物だという点です。
PIO+DMAによるY成分取得
画像取得では、RP2040のPIOとDMAを用いてデータを受け、YUV422から輝度Yのみを扱う構成を評価しました。センサ側QQVGAを直接用いた場合、160×120のグレースケール画像は1フレーム19,200 byteです。
PC側には、受信したグレースケール画像とFPS、CRCエラー数、フレームドロップ数を確認できる表示アプリも用意しました。これにより、画像内容だけでなく、転送が継続しているかや実効フレームレートも同時に確認できます。

PC側で表示・録画まで行った安定動作時の実効値は15.01 fpsでした。380フレームを連続取得した試験では、Good frames=380、CRC errors=0、header errors=0、payload errors=0、frame ID drops=0を確認しました。少なくともこの試験区間では、フレーム欠損や通信破損なしで画像を搬送できています。
解像度と実効fpsの比較
同じ系統で取得方法を変えたときの実効fpsを比較しました。
| 取得方法 | 出力 | 実効fps |
|---|---|---|
| 320×240取得 | QVGA | 5.24 fps |
| Pico側で間引き | 160×120 | 12.21 fps |
| センサ側でQQVGAへ縮小 | 160×120 | 15.01 fps |
今回の条件では、QVGAを取得してからRP2040側で捨てるよりも、センサ側で最初からQQVGAを出力した方が高い実効fpsを得られました。低帯域・低資源環境では、「取得してから削る」より「センサから必要な量だけ出す」設計が有効だと考えられます。
一方で、センサのフレームレート約30 fpsに対してPCまでの実効値は約15 fpsです。したがって、今後は取得処理、USB/シリアル転送、PC側処理を分けて時間計測し、どこが支配的なボトルネックかを定量化する必要があります。
低帯域カメラ研究への展開
ここまでが実装・実測済みの内容です。次の段階では、高速動画用途ではなく、小型・低コスト・低帯域の視覚センサとして次の研究候補を検討しています。
- 画像そのものを送らず、ROI平均輝度、フレーム差分、エッジ量、ブレ量、色分布、マーカー重心などの特徴量だけを送る。
- ローリングシャッタ歪みを利用し、小型UAVなどの振動状態を外部から捉える。
- 他センサの異常をトリガにして撮像するイベント駆動型の記録へつなげる。
- 低fps・低解像度画像を用いたAutoencoder異常検知を評価する。
- 実験状態の自動記録や、マーカーを使った軽量な画像センシングへ展開する。
これらは現時点では研究候補であり、性能を実証したものではありません。まずは実効fps、取得時間、転送時間、欠損率、長時間安定性を測定し、用途ごとの実現可能性を判断していきます。
関連する記事・取り組み
共同研究、技術検証に関するご相談はこちら。