UNOQへトリプルカメラ接続とストリーミング(使い方例)

本サイトはアフィリエイト広告を利用しています。
AI

新しい「Arduino® UNO Q」が手に入りました。

Qualcomm Linux HostとSTM32 Zephyr RTOSのデュアル構成を持つ、非常にユニークで強力なボードです。

今回は、このボードの多彩な機能を試すため、MIPI-CSI2、USB、SPIという、3種類の異なるカメラを同時に接続してみました。

マルチアングルで観察できる、面白いカメラシステムの使い方を紹介します。

 

スポンサーリンク

Arduino® UNO Q のトリプルカメラ接続とストリーミング

新しい「Arduino® UNO Q」が手に入りました。

Qualcomm Linux HostとSTM32 Zephyr RTOSのデュアル構成を持つ、非常にユニークで強力なボードです。

 

今回は、このボードの多彩な機能を試すため、MIPI-CSI2、USB、SPIという、3種類の異なるカメラを同時に接続してみました。

マルチアングルで観察できる、面白いカメラシステムの使い方を紹介します。

 

プロジェクト・GitHubのリンク先

コンテストに提出したプロジェクトのリンク先は下記です

Attention Required! | Cloudflare

 

GiHubのリンク先は下記です

GitHub - iotengineer22/unoq-edge: This repository present solution for the Invent the Future with Arduino UNO Q and App Lab
This repository present solution for the Invent the Future with Arduino UNO Q and App Lab - iotengineer22/unoq-edge

 

今回のシステムは、UNO Qの豊富なインターフェースを試すのに最適です。

3つのカメラを使い分けて接続します。

 

広角俯瞰カメラ(MIPI-CSI2)

Pi Camera v2を使用します。高速バス経由で、広範囲を綺麗にスキャンします。

 

可動式サブカメラ(USB)

高速なUSBウェブカメラを使用します。アングルを自由に変えて、動きを追いかけます。

 

極小マクロカメラ(SPI)

超小型のArducam Megaを使用します。マイコンのJSPIピン経由で、クローズアップ撮影します。

 

使用するハードウェアと接続(BOM)

全体のブロックダイアグラム

Arduino UNO Qは、内部でLinuxとマイコンが連携しています。

Linux側でMIPIとUSBを制御し、STM32マイコン側でSPIカメラと人感センサーを制御します。

 

使用パーツ一覧

本システムに使用したハードウェア構成は以下の通りです。

部品名 画像 役割・説明
Arduino® UNO Q Qualcomm LinuxとSTM32 RTOSを1枚で実行可能なメインユニット。
MIPI-CSI2カメラ
(Pi Camera v2)
真上から基板全体を高解像度スキャンするメインカメラ。
MIPI-CSI2 アダプター基板 UNO QにMIPIカメラを接続するためのカスタムボード。
USBカメラ
(ELP-USBFHD08s)
高フレームレートで動的に角度調整できるサブカメラ。
USB-C ハブ
(Anker 332)
カメラへの安定給電と接続を行うためのセルフパワーハブ。
SPIマクロカメラ
(Arducam Mega 3MP)
JSPI/ICSPピンヘッダ接続の極小マクロ検査カメラ。
トリガーセンサー
(PIRセンサー)
基板の進入を検知してマイコン側カメラを起動する人感センサー。

 

SPIカメラとPIRセンサーの接続

マイコン側のJSPI(SPI2)コネクタと、GPIOピンを使用して接続します。

 

* Arducam MOSI/MISO/SCK: JSPIピン(PC3, PC2, PD1)へ接続。

* Arducam CS: D10(PB9)ピンへ接続。

* PIR Sensor OUT: D7(PB2)ピンへ接続。

PIRで検知した瞬間に、マイコンをスリープ解除します。

 

 

3つのカメラを同時に動かすWebサーバーの構築

3系統の映像を同時にWebブラウザで確認できるよう、Linux側でPythonを使ったWebサーバーを構築しました。

 

 

Pythonによるマルチスレッド配信サーバー(multi-cam.py)

MIPI、USB、SPIの各配信スレッドを分離し、ポート7000で並列配信します。

プログラムの全コードは、下記GitHubリポジトリで公開しています。

unoq-edge/src/mipi-cam/multi-cam at main · iotengineer22/unoq-edge
This repository present solution for the Invent the Future with Arduino UNO Q and App Lab - iotengineer22/unoq-edge

 

 

レスポンシブな3カラムHTML表示

CSSグリッドを使い、3つの映像を横並びにするダッシュボードを作成しました。

 

 

「Start Save」ボタンを押すことで、3つのカメラの最新フレームを、全く同じタイムスタンプでローカルに同時保存できます。

これにより、AI用のデータ収集がワンクリックで可能です。

 

実際のデモ動画は下記です。

 

 

まとめ

Arduino® UNO Qの特徴である「Linux+マイコン」を活かし、3つの異なるカメラを1つに統合できました。

次回は、マイコン側でZephyr RTOSを動かし、SPIカメラとEdge Impulseで省電力AIを実装する方法について詳しく紹介します!

コメント