Kria KV260 で Raspberry Pi Camera Module V2 (Sony IMX219) を動かすサンプルです。
vivado2021.2 を用いております。
認定Ubuntu 環境にて試しております。
image : iot-kria-classic-desktop-2004-x03-20211110-98.img
Description : Ubuntu 20.04.4 LTS
kernel : 5.4.0-1017-xilinx-zynqmp
sudo apt update
sudo apt install libopencv-dev
git clone https://github.com/ryuz/jelly.git
で一式取得してください。
projects/kv260/kv260_imx219/syn/vivado2021.2
に移動して Vivado から kv260_imx219.xpr を開いてください。
最初に BlockDesign を tcl から再構成する必要がります。
Vivado メニューの「Tools」→「Run Tcl Script」で、プロジェクトと同じディレクトリにある update_design.tcl を実行すると再構築を行うようにしています。
うまくいかない場合は、既に登録されている i_design_1 を手動で削除してから、design_1.tcl を実行しても同じことができるはずです。
design_1 が生成されたら「Flow」→「Run Implementation」で合成を行います。正常に合成できれば
kv260_imx219.runs/impl_1
に kv260_imx219.bit が出来上がります。
projects/kv260/kv260_imx219/app の内容一式と先ほど合成した kv260_imx219.bit を、KV260 の Ubuntu で作業できる適当なディレクトリにコピーします。bitファイルも同じ app ディレクトリに入れてください。
を、KV260 側では Ubuntu が起動済みで ssh などで接続ができている前提ですので scp や samba などでコピーすると良いでしょう。app に関しては を、KV260 から git で clone することも可能です。
この時、
- OpenCV や bootgen など必要なツールがインストールできていること
- ssh ポートフォワーディングなどで、PCに X-Window が開く状態にしておくこと
- /dev/uio や /dev/i2c-6 などのデバイスのアクセス権が得られること
- sudo 権限のあるユーザーで実行すること
などの下準備がありますので、ブログなど参考に設定ください。
問題なければ、app をコピーしたディレクトリでb
make all
と実行すれば kv260_imx219.out という実行ファイルが生成されます。
ここで
make run
とすると、Device Tree overlay によって、bit ファイルの書き込みなどを行った後にプログラムが起動し、ホストPCの方の X-Window に、カメラ画像が表示されるはずです。
なお、Device Tree overlay のロード/アンロードは
make load
make unload
といったコマンドで実施可能です。
なお、デフォルトで 1280x720サイズでの撮影モードで起動しますが、
make load
./kv260_imx219.out 1000fps
のようにすれば、640x132での 1000fps モードにも切り替わります(カメラが1000fpsで動くだけで、表示は間引かれて60fpsです)。
その他の細かいコマンドは main.cpp の中を確認ください。
-
作者ブログ記事
-
https://github.com/lvsoft/Sony-IMX219-Raspberry-Pi-V2-CMOS
- Raspberry Pi Camera Module V2 の各種情報(IMX219のデータシートあり)
-
https://www.raspberrypi.org/forums/viewtopic.php?t=160611&start=25
- 各種情報。回路図の情報あり