Pi式Jetracer ProをWeb経由で動かします。
お願いだ、動いてくれ。
やっと準備ができましたのでいよいよPi式Jetracer Proを動かします。
今回は、コレ、に悩まされました。
それは、カメラ、です。
カメラに関しては、リスクを認識したうえでJetracer Proのキットに入っていたIMX219-160を使いました。
これは、僕が、Raspberry PyカメラV2仕様に適合しているということを、使える、と誤解したことから始まっています。
IMX219-160はCSIインタフェースとなっていて、Raspberry PiカメラV1のインタフェースとは仕様が違います。
Jetson nanoにはCSIインタフェースがあるので、そのままカメラ用のコネクタに接続すれば使用できますが、Raspberry Pi4でIMX219-160を使うためにはRaspberry PiカメラV2のインタフェースモジュールを介す必要があったのです。
これに気づくのに長い時間を使ってしまいました。
V1とV2でインタフェースが違うので、どこでそれを吸収しているのだろうと思っていましたが、同じカメラコネクタに接続できることから安易にソフトでの仕様差吸収と思い込んだのがドツボにはまった原因ですね。
思い込みは良くないことを再認識させられました。
それではWebで動作開始
今回の件を、今後の教訓にするために、一通りやったことを記録しておきます。
Webで動かすための手順はwaveshareのwikiに記載されています。
仮想環境からmanage.pyというアプリを起動します。
ドツボは、ここから始まりました。
出てきた画面がコレ。
out of resourceってなんだ?
から始まり、色々なことを調べました。
カメラのタイプが、
PICAMになっているのでbootフォルダの中のconfig.txtを修正してCSICに切り替えたり、
カメラモジュールを調べてみたり、
競合しているかもしれないということで処置したり、
ところが何をやってもダメで、諦めかけていた時に下の記事を見つけました。
Jetson nanoに今回のカメラモジュールを接続するという記事です。
表面的には、Jetson nanoでもRaspberry Piでも使えそうな雰囲気で書いているのですが、記事の下のほうに、
Jetson Nanoで使用するカメラモジュールはMIPI CSI-2規格の必要があるため、V1カメラモジュール等のCSI-2ではないモジュールは、接続しても認識されませんでした。
とありました。
???ということは、CSI-2インタフェースを持っていないRaspberry Pi4では、IMX219-160は使えない?
という、ある意味で当たり前の疑問にぶち当たりました。
Amazonで調べてみると同じカメラがでていました。
そこのカスタマレビューには、僕と同じようなことを考えて、Raspberry Piに付けようとして動かなかったと文句を言っている人がいました。
インタフェースモジュールがないとRaspberry Pi4では動かないようです。
ある意味、これで納得できました。
それでは方針転換です。
手持ちのRaspberry PiカメラV1を使うことにします。
Raspberry PiカメラV1実装
その結果がコレ。
ちょっと無理くりですがカメラ台座に取り付けることができました。
これは8Mではなく5Mですが、まあいいでしょう。
さあ、これで動け、と、manage.pyを動かしました。
すると下の画面が出てきました。
どうやら無事に動いたようです。
この状態でホストPCからWebでアクセスするとカメラの画像の確認ができます。
ということでホストPCからアクセスしましたがNG。
では、ということで、Microsoft Surface Laptop2からWebでアクセスすると下のような画面が出てきました。
Pi式Jetracer Proは動いています。
万事順調にとはいっておりませんが、なんとかPi式Jetracer Proを動かし、そのカメラ画像がパソコンに表示できるところまできました。
遠回りをしていますが、これも経験です。
かなり悩んで頭も疲れましたので、今日はここまで。
では、また。
(記事後記)
Jetracer ProにはOLEDが付いているのですが、なかなか良いですよ。
電圧やCPUの状態を表示しています。