スキップしてメイン コンテンツに移動

カメラモジュールと画角

OV7670で遊んでいるけど、手に入るモジュールはどれも望遠気味。
 これは、OV7670の素子面積が小さいためだ。 なので12mm径のレンズマウントに対応した焦点距離1.8mmの超広角レンズ(自動車のリアカメラ用)をつけても、画像が歪みまくる割には広角にならない。

手元のレンズ付きモジュール(トラ技頒布カメラA)と、aitendoで入手したレンズ一体型を比べてみた。 

OV7670と手配線FIFO基板、ATmega644P




画角テスト

 画像1 頒布カメラA(付属レンズ)

 画像2 レンズ一体型

VGA RAW解像度で撮ってPCで表示したもの。
比べると、レンズ一体型のほうが広め。 手持ちの画角がわかるGX200で検証したところ、

レンズ一体型 約50mm
頒布カメラA 約72mm

頒布カメラはかなり望遠気味なようだ。 ここでは載せていないけど、FIFO付きのモジュールはさらに望遠だという噂。

参考 GX200 画角50mm VGAで撮影。


参考2 OV7725 (レンズ一体型) レジスタ設定がまだ途中なので露出がうまくいってない。
画角は35mm程だった。

モジュールいろいろ
 
12mmレンズマウント 頒布カメラA (左は頑張ってフード削った)

 レンズ一体型タイプ

レンズ一体型の準備

レンズ一体型はFFCをコネクタに取り付けて、線を引き出す。 24ピンの変換基板を使う。

ピンアサインは、販売元の表どおりだったが、端子部を観察してみると、今回買ったモジュールは、10bit出力用の端子が削られている。

ちなみに、同じHDFという刻印のあるOV7725もピンアサ共通だった。

物によっては、来てるモジュールもある。今回のは変換基板でみたらAGNDとDGNDが導通しているタイプだったけど、ものによってはヒントがなく、泣く泣くチップを剥がしてピンアサを確認することになったり…。

はじめはFFCの端子配列の規則性がよくわからなかったが、2列にしてみると結構わかりやすくまとまっている。

FIFO/マイコン基板用に配線をする。 電源ラインの処理とリセット端子やプルアップ抵抗もつけて、トラ技カメラAにだいたい準拠させる。 

これでコンパチに。


OV7670で経験を積んだら、素子面積が大きいOV7725に移行しようとおもっている。

OV7670だと、aliexpressでもたくさん販売されていて、場合によっては日本で輸入してる店より安いけれど、よく見ると古いリビジョンだったり、ピンアサと掲載画像が適当なことが多いので、日本の店で買ったほうが間違いが少ない。 
 以下は、レンズ一体型モジュール用の変換基板を設計して実装したもの。 ピンアサが共通だったOV7670とOV7725に対応した。 頒布カメラA相当の回路と、オシレータを搭載して、FFCケーブルで延長できる。
 

Popular posts

Arduino Nano Everyを試す

 秋月で売っていたAtmega8と、感光基板でエッチングしたArduino互換ボードを製作してみて、次に本家ボードも買って…  と気が付いたら10年が経過していた。  ハードウェア的な観点では、今は32bitMCUの低価格化、高性能化、低消費電力化が著しい。動作周波数も100MHz超えが当たり前で、30mA程度しか消費しない。  動作電圧範囲が広く、単純な8ビットMCUが不要になることはまだないだろうけど、クラシックなAVRマイコンは値上がりしており、価格競争力は無くなりつつある。 そしてコモディティ化により、公式ボードでは不可能な値付けの安価な互換ボードがたいていの需要を満たすようになってしまった。     Arduino Nano Every https://store.arduino.cc/usa/nano-every https://www.arduino.cc/en/Guide/NANOEvery  そんな中、Arduino本家がリリースした新しいNanoボードの一つ。  他のボード2種はATSAMD21(Cortex-M0+)と無線モジュールを搭載したArduino zero(生産終了済み)ベースのIoT向けボードだが、 Nano EveryはWifi Rev2と同じくAtmega4809を採用していて、安価で5V単電源な8ビットAVRボードだ。  Atmega4809はATmegaと名がついているが、アーキテクチャはXMEGAベースとなり、クラシックAVRとの間にレジスタレベルの互換性は無い。   https://blog.kemushicomputer.com/2018/08/megaavr0.html  もちろん、ArduinoとしてはArduinoAPIのみで記述されたスケッチやライブラリは普通に動作するし、Nano Every用のボードオプションとして、I/Oレジスタ操作についてはAPIでエミュレーションするコンパイルオプション(328Pモード)がある。 公式のMegaAVR0ボードはどれもブートローダーを使わず、オンボードデバッガで直接書き込みを行っている。  ボードを観察してみると、プログラマ・USBCDCとしてATSAMD21が搭載されている(中央の四角いQFNパッケージ)MCU的にはnEDBG

ATmega4809(megaAVR0)を試す

megaAVR 0という新しいAVRシリーズを試してみた。  小さいパッケージなのに、UARTが4本もあるのが気になったのがきっかけ。 登場すると噂の Arduino Uno Wifi rev2  にも採用されるらしい。  簡単にデータシートを眺めてみると、アーキテクチャはXmegaシリーズを簡素化し、動作電圧範囲を広げたもののようだ。  CPUの命令セットはAVRxtと新しくなっているが、Xmegaで拡張された一部の命令(DESやUSBで使われる命令)が削除されていて、基本的に今までのATmegaとほぼ同じだ。  コンパイラからは、先に登場した新しいtinyAVR0, tinyAVR1シリーズと共にAVR8Xと呼ばれて区別されている。  CPU周りを見てみると、割り込みレベルなど、今までのクラシックなATmegaで足りないなと思っていたものがかなり強化されていた。 ArduinoAPIを再実装するとしたら便利そうなペリフェラルもだいたい揃っている。 データシート P6  DMAは無いけれど、周辺機能にイベント駆動用の割り込みネットワークが張り巡らされているのがわかる。  できるだけCPUを介在させない使い方がいろいろ提案されているので、アプリケーションノートやマニュアルを読み込むことになる。 ピックアップした特徴 ・データメモリ空間(64kB)に統合されたFlashROMとEEPROM ・RAM 6kB ROM 最大48kB (メモリ空間制限のため) ・デバッグ専用の端子 UPDIを搭載 ・優先度付きの割り込み(NMIと2レベル) ・ピン単位の割り込み(かなり複雑になった) ・リセットコントローラ(ソフトウェアリセット用レジスタが実装され、リセット原因が何だったかもリセット後に読み出せるようになった) ・豊富な16ビットタイマ(4809では5基) ・16ビット リアルタイムカウンタ(RTC) ・豊富な非同期シリアル/同期シリアル(USART 4ch、SPI 1ch,TWI 1ch) ・内蔵クロックは最高20MHz(PLL)と32kHzの2種類。外部クロックは発振器と時計用水晶のみ ・ADCは10bit 16ch ・内蔵VREF電圧が5種類と多い(0.55V,1.1V,1.5V.2.5V.4.3V

GPSアンテナをつくる

GPSアンテナを作ってみた。 1575MHzの波長は約19cmなので、半波長で9.5cmとなる。 GHz帯とはいえ、結構長いものだなぁ。 セラミック等の誘電体がなければ、平面アンテナで真面目に半波長アンテナを作ろうとすると手のひらサイズの面積が必要になってしまう。 普通のダイポールだと指向性があるので、交差させてクロスダイポールにする。 屋外地上局のアマチュア衛星用アンテナの設計をそのまま縮小したもの。 水平パターンはややいびつ 92.2mmの真鍮の針金(Φ=0.5mmくらい)を2本用意して、42.3mmで90°に曲げる。 長さの同じ素子同士を並べて配置する。 (全長が半波長より長い素子と短い素子が交差した状態) 片方をアンテナ信号線、もう片方をGNDにつなげば完成。 実際5分くらいでつくったけれど、果たしてどうだろうか。 今回は、道具箱に眠っていた表面実装タイプのMT3339系モジュールに取り付けた。 アンテナはもともと3x1.2mm程度のとても小さいチップアンテナで、 LNAが入っているけど感度が悪かったのでお蔵入りしていた代物。 最近の携帯機器はみなアンテナに厳しい。 さて・・・ クロスダイポール版モジュールをPCでモニタしたウインドウ(左)と、QZ-Rader画面 東側に建物遮蔽があるので、そちら側の衛星はSNが悪い。 とりあえず補足できた衛星数はシミュレーションされたものとほぼおなじだった。 アンテナの角度をいろいろ振って、逆さまにしてもロストすることはなかった。 セラミックのパッチアンテナレベルにはなったかな・・・。 簡単にできてそれなりに測位するけれど、携帯性は皆無になった。 あと、近接周波数の干渉を受けやすいかもしれない。 GPSアンテナのDIY例としては、QFHアンテナもある。 ラジオゾンデなどで使われている例がある。 いつもお世話になっているQFHアンテナ計算シートのサイト https://www.jcoppens.com/ant/qfh/fotos_gps.en.php ヘリカルアンテナは加工精度の難易度が上がるので、今回はクロスダイポールにした。 GNSSとなると、複数の周波数のために調整されているセラミックパッチアンテナが有利だと思う。 セラミックパッチア

人工衛星の住む軌道 (とKSP)

相乗り衛星の軌道を、Kerbal Space Programで再現してみた。 現実の軌道をいくつかシミュレートしてみる。  衛星の行き先は、わりと限られた範囲に集中している。 低軌道(300~400km)  CubeSat級の衛星にはHotな軌道。 わずかに存在する気体分子や電離した原子が抵抗となるため、半年ほどで大気圏に再突入してしまうが、それゆえデブリ化の危険がほとんどない。 断面積と重量により、軌道寿命の差が極端にひらく。 基本的には地球の影に定期的はいることもあり、電力収支、熱環境共に厳しい。  投入手段: ISSからの放出、低軌道観測衛星への相乗り。 最近はISSに直接装置を設置する例も増えてきた。 極軌道(太陽同期軌道)(600~1000km)   観測衛星の天国。 軌道傾斜角が赤道と直行するような軌道。 特に太陽同期軌道では数日~数週毎に同じ地点の上空を通過するため、地表をまんべんなく安定した条件で観察できる。  太陽と軌道円の角度によっては、数週間~数ヶ月は日照状態が続くので電力不足に陥りにくい。  初期のCubeSatをはじめ、数十キロ級のマイクロサットなどが数多く投入され、今も投入されている軌道。  ただし、軌道が高くなるにつれ軌道寿命が延びることになる。 多くの衛星が周回していることもあり、長い軌道寿命の中で、交差、衝突する可能性が無視できなくなりつつある。 現在ではデブリ化を防ぐための取り組みがはじまっている。 参考文献: http://www.spacenews.com/article/civil-space/4207665th-international-astronautical-congress-cubesat-revolution-spotty 楕円軌道(数百~数千km)  宇宙開発初期のロケットで多かった軌道。 モルニア軌道を除くと利用例は少ない。静止軌道へ投入される主衛星との相乗りで、トランスファ軌道で放出されるものは存在していた。  投入例としては、アマチュア衛星( Phase-3シリーズ )がある。 かつては数基のアマチュア衛星で、地球をカバーして通信しようという計画があった。  近地点が数百kmだと、ヴァン・アレン帯を毎回横切ることになり、荷電粒子によって電子機器や太陽