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

二つのシリアル接続JPEGカメラの比較

左:LinkSprite LS-Y201-TTL 右:C328-7640
最近Sparkfunで取り扱いはじめたLinkSprite社製のJPEG Color Camera LS-Y201-TTL

偶然若松で見つけたので見てみると、レンズマウントがよく見かけるタイプなのでレンズ遊びを期待して購入。 秋月のボードカメラを望遠鏡にとりつけて天体観測をしていたころの記憶が蘇る。

ついでに手元にあったC328-7640(すでに入手不可。今は改良された後継機種が出ている)と比べてみた。 

外観


基板はC328より大きめ。 日本にはTTL版が入ってきたようで、裏にRS232レベルコンバータは無い。 販売元ではArduino用ライブラリ、あと中国語っぽいPC用制御ソフトが入手できる。

裏のLSIはPDA向け汎用映像処理チップ、らしい。
データシートを検索したら製品特徴だけ見つけた。 それによると、モバイル用と言う割には、監視用途まで想定しているのか、TV出力もある。 
実は配線端子部にひとつだけ"TV"というシルク印刷がある。 
ほかはシリアルと電源なのだが、TVという端子にRCAケーブルを半田づけしてTVにつないでみた。
アナログTVの映像端子つなぐと、乱れてはいるが映像が出力されていた。 ここは監視用ボードカメラのような感覚らしい。 信号出力が弱いのか、出力先によっては一瞬だけしか映らないこともある。 
( 追記: 後日実験してみたところ、どうやらPALで映像を出力しているらしい。 PALに指定してキャプチャしたところカラー映像が得られた。 )

画像取得はシリアル経由で取得する。 制御ソフトは撮影画像の保存先のパスを指定しておかないとクラッシュするので注意。 先程のTV出力は、画像の転送期間中は転送中の画像フレームがずっと表示される。 転送が終わると元通りに30fps程度で映像を表示する。
なにはともあれ、秋晴れの日に外へ出て撮影テストを実施してみた。
比較用テスト

ハウジングに入れたC328と、LS-Y201を用意。

秋月のUSB変換キットを改造したシリアル変換器でPCと接続。 FT232の3.3v出力は足りない場面が多すぎるので、3.3vレギュレータを装備している。スイッチで5v/3.3v切り替え可能。

C328はタカチのケースにいれている。 上にはケータイ用の魚眼レンズを付けられるように作った。

実画像
----------------------------------------------------------------------------------

C328-7640

80x60

160x128

320x240

640x480

VGA,(Fisheye)


※時々橋の手前の空に映るゴミみたいな影はカモメです。
---------------------------------------------------------------------------------
LinkSprite LS-Y201-TTL


160x120
 (追記2010/11/25) Arduino用ライブラリを拡張して、付属ソフトでは出せない最小サイズも出力してみた。 一度成功したがその後初期化によく失敗するようになって埒があかない。 うーむ。
 付属のPCソフトには応答するが、なぜかArduino経由では応答してくれなくなる。
 実は地雷? 
  すでに究明している方のブログ
  http://shinta-main-jp.blogspot.com/2010/11/linksprite-jpeg-color-camera-ls-y201.html
320x240

640x480
 ---------------------------------------------------------------------------------

Sample 参考までに、普通のカメラでも。

GX200 (VGA)
GX200 24mm広角端


--------------------------------------------------------------------------------

それぞれの特徴

 センサーがVGAな上、目的がUARTで画像を読み込むことにあるモジュールに画質をもとめるのはそもそも間違いなので、それぞれの傾向と使い勝手を列挙してみる。 

C328 
・本体小さい
・圧縮率高め、
・AGC遅め、
・出力サイズ多め
・RAW出力可能。
・機嫌損ねやすい
・消費電流 max:60~70mA, min:0.66mA 10秒でスリープ。

小ささとミニマムな構成が良い。 ただちょっとしたことでコマンドを拒否したりと癖のあるヤツ。
新型のC1098-SSならいろいろ改善されているそうなのでちょっと気になる…。

LS-Y201 
・本体とレンズは標準的な大きさ。
・圧縮ノイズは目立たない。絵は綺麗。
・赤外領域への感度があるためか色がおかしい(IRカットフィルター弱め?)
・AGCは優秀。 
・解像度の変更は電源の入れ直しが必要。
・(コマンド操作しなければ)扱いやすい。 操作したいのに…
・消費電流 約69mA, TV出力OFFで43mA スリープモード無し。(画像サイズで4mA程度変化)   
・面白いことにJPEG画像サイズを設定すると、それがテレビ出力の解像度にも反映される。(VGAとVGA) 

レンズがボードカメラとしては標準的なので、画像の色合いについては、レンズを取り替えることや、カットフィルターを挟むといったことが容易に行える。 弄り甲斐という点ではLS-Y201が気に入った。 ただしMCUからの操作はC328以上にひねくれているみたい。
 公式にはあまり触れられてないTV出力だが。仕様を見る限りはJPEG画像出力付きカラーカメラと見たほうがいいだろう。(機能の優先度は、TV出力OFFのモードが存在するため、JPEG画像>TV出力となる。でも完全なスリープモードは無い)
しかし常に40mA喰うので、バッテリ機器では外部に電源制御回路が欲しい。


どちらのカメラもよくフリーズする。そのとき消費電流もおかしな値になる。C328では消費電流が65mA、LS-Y201では50mA程度になった。 LS-Y201は電源ラインだけFETで制御出来れば多分リセットがうまくいくと思うけど、C328はスリープモードがあるため、単にVCCを制御してもシリアルのラインから動いてしまいリセットできない。工夫が必要。 

LS-Y201で面白そうな応用としては、TV出力をビデオトランスミッターにつないで、RF送信をしてロボットを遠隔操縦するというものを思いついた。 画像撮影はロボット側で完結する。
惑星探査ローバーの管制気分を味わえたらいいのだけれど、日本では良さそげなトランスミッタは電波法に抵触するため使えない。残念。

こいつに組み込みたい・・・
以上レポートでした。 

Popular posts

【サボテン】太陽電池の結線

 久しぶりにサボテン計画。 忙しかったり投薬治療直前でだるかったりして、かなり放置していた。 さぼてんも不機嫌そうだ。 せっかくなので、園芸用の水受けに移す。  関節痛で寝込んでる間に、エイプリルフール終わってましたね^^・・・。  太陽電池の展開機構を想像したが、まずは太陽電池の結線を済ませよう。  配線を綺麗にまとめたくていろいろ探していたら、千石電商でぴったりなものを見つけた。 LEDリング基板 というらしい http://www.led-paradise.com/product/629?  本来はチップLEDをリング状にまとめる代物。 イレギュラーな使い道だ。   今度は小径のを買って、GX200のリングライトに仕立て上げよう。   嬉しいことにフレーム径にジャストフィット。 配線を綺麗にまとめられた。   太陽電池の接続部。逆流防止用にショットキーダイオードを入れている。 かなりスッキリ。 蛍光灯下 500ルクスでの実験。 EDLCは10Fを使用。  ちゃんと充電が行われている。 といっても、とてもとてもゆっくりとだけれど・・・。

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

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となると、複数の周波数のために調整されているセラミックパッチアンテナが有利だと思う。 セラミックパッチア

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