2021年04月24日

Node-redを用いたシリアルカメラ画像取込

今回はシリアルカメラPTC06をNode-Redを用いて画像として取り込んでみました。シリアルカメラPTC06は高画質や高フレームレートは全く期待できませんが、UARTから気軽に画像データを取得することができます。組込マイコンとの接続や簡易的な遠隔監視といった用途に最適です。Node-Redのシリアルポートを使用して画像を取り込んでみました。なお、シリアルポートのノードを使用するため、Node-Redはクラウド版でなく、オンプレミス版を使用する必要があります。

フローの全体は下記です。

serial_camera_node_red.jpg

必要に応じて、最初に解像度設定等のコマンドを実行(Inject)した後でResetコマンドでリセットします。画像を取得したいタイミングでCapture Imageコマンドを実行します。取得した画像を確認するためにはRead Data Lengthコマンドを実行してファイルサイズを取得します。その後でRead Image Dataコマンドを実行します。一括で取得できるデータは200Byte前後のため、Read Image Dataコマンドではファイルを分割してメモリから取得し、Jpegファイルを生成しています。


img.jpg

実際に取得したファイルです。至近距離のため、ぼやけていますが、3秒程度でファイルを取得できました。画像サイズは320x240で12kBとなりました。今回のNode-Redのフローはこちらにアップしています。640x480の場合は40kB前後で15秒程度取得に時間を要します。

Node-Redを用いてシリアルカメラの初期化、設定、画像取得までできました。PTC06のデータシートの記載ミスなのか分かりませんが、画像取得コマンドが56,00,32,0C,00,0D...と記載されていますが、このコマンドでは取得できませんでした。他のシリアルカメラと同様に56,00,32,0C,00,0A...とすると取得できるようになりました。ファーム等によっても若干、挙動が異なるようです。

今回は使用しませんでしたが、Node-RedのDashboardと組み合わせれば、ファイルとして画像を取得するだけでなく、ボタンとtemplate等を活用してDashboardにボタン操作で表示することも可能です。時間を見つけて実装してみたいと思います。
posted by Crescent at 00:00| Comment(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。