Darkside(https対応しました)

2021年8月26日(木) 22:47

CSIカメラ2台を使う

 コネクターにカメラを1台だけ取り付けて試してみた。
 例によってラズパイカメラは、使用可能な解像度を設定しないと接続に失敗する。そして、この使用可能な解像度というのが必ずしもはっきりしない。解像度一覧の情報が何かに付けて表示されるのだが、一覧に存在する解像度の1つを選んで設定しても、駄目なことが多いのだ。

 結局のところ、画角が少し狭くなるがデーターが軽量になる 1280*720 と、解像度をフル活用できる 3264*1848 を使い分ければ足りるとの結論。ついでに、可能なフレームレートより小さなフレームレートを明示的に設定しないと後者は失敗する。あれこれ注文(隠れ仕様とも言う)が煩いのだ。

 そしてカメラは、コネクター1だけに挿してもコネクター2だけに挿しても、ちゃんと認識された。どちらでも同じプログラムで表示できた。言い換えると、どちらに挿してもカメラ0として認識された。
 両方のコネクターにカメラをセットすると、コネクター2のカメラだけが認識された。ls /DEV/ すると、ちゃんと video0 と video1 の2つが認識されている。つまり、最初に1つしか認識されなかったのは、単にコネクターへのケーブル取り付けが不完全だったのだ。このコネクターとリボンケーブルは、確実に取り付けるのにコツを要求しやがる。

 こうなると問題は、カメラ1を選択する方法である。
 複数のカメラから1台を選ぶ指定方法が不明で、現状ではカメラ0しか選択できない。そしてカメラ0は、なぜかコネクター2が優先されている。このままでは、B01を買い増した意味が無い。

 これ NVIDIA のサイトに詳細な解説があったにも関わらず nvarguscamerasrc で入力カメラを選択する例が載っておらず、しかし v4l2 だと入力選択可能。でも v4l2 ではカメラコネクターからは読めない。もしかして nvarguscamerasrc はカメラ1台しか読めず、すなわち Gstreamer の使用は断念するしかないのか?
 絶望が深まる中、遂に情報を発見した。

nvarguscamerasrc sensor_id=1

というパラメーターを使うことで、入力ソースを /dev/video1 に出来るのだった。

 これで、ようやく先が見えた。
 ステレオカメラにこそならないが、ほぼ当初予定の機能が実現できる。センサーを読むのは以前に成功しているから、今度はカメラ映像の合成とPIC相手のSPI通信が焦点となる。

 実用上は解像度が低くても充分に有用だし、画像の無線通信は非常に帯域を食ってフレームレートが出ない。だから、最終的には320×240で行う予定である。
 そうなると、広角カメラの中央に望遠カメラの映像を小さくインポーズするよりは、広角カメラと照準用望遠カメラは完全切替にした方が使い易いかもしれない。

written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4