Arduino UNO Qは、Qualcomm Dragonwing QRB2210によるLinux実行環境と、STM32U585によるマイコン制御を1枚のボードに統合した開発ボードです。
本記事では、Arduino UNO Q上でUSBカメラを用いた物体検出デモを実行し、環境準備、Arduino Cloud連携、AIモデルの配置、ログによる検出確認までを実機検証ベースで解説します。エッジAIの初期評価やPoC環境を短期間で立ち上げたいメーカーのエンジニアに向けて、導入時に確認すべきポイントも整理します。
Arduino UNO Qの基礎
Arduino UNO Qは、MPUにQualcomm Dragonwing QRB2210を、MCUにSTM32U585を搭載し従来のArduinoの使いやすさとLinuxが動作する小型コンピュータの性能を1枚のボードに統合した、エッジAI対応のマイコンボードです。手のひらサイズの小型コンピュータで、教育や試作、IoTなど幅広い用途で使われています。
また、Arduinoエコシステムは利用者が多く、サンプルコードやフォーラム情報を参照しやすいため、初期評価時の情報収集を進めやすい点もメリットです。
Arduino UNO Q外観
Arduino UNO Qの主な特徴
Arduino UNO Qの主な特徴を、処理性能、制御性能、開発環境、拡張性、利用形態の観点で整理します。
<特徴>
- MPU側:Qualcomm製の「Dragonwing QRB2210」を搭載。フル機能のLinux(Debian)が動作し、Pythonを使った複雑な計算やAI処理を行います。
- MCU側:STM32U585を搭載し、センサー入力やモーター制御など、低遅延性が求められる処理を担当します。
- Arduino App Lab:Arduino App Labにより、スケッチ、Pythonスクリプト、AIモデルを組み合わせたアプリケーション開発を進めやすくなります。
- Arduino UNO Qは、Arduino UNO R3/R4で採用されてきたフォームファクタやピン配置を継承しています。そのため、既存のArduino資産を活用しながら、機能拡張を検討できます。
- Arduino UNO Qは、単体でLinux PCのように利用する「スタンドアローンモード」と、PC上のArduino App Labから開発・制御する「PCコネクテッドモード」に対応しています。用途に応じて、評価環境を柔軟に選択できます。
物体検出デモの概要とシステム構成
本検証では、公開されているサンプルアプリを参考に、Arduino UNO Q上でUSBカメラを用いた物体検出デモを実行しました。
<参照URL>
https://github.com/robby-proj/robby-project/blob/main/dog-detect-AI/camera-detect/README.md
参照先には、アプリケーション概要、必要機材、プログラム構成に関する説明が記載されています。
一方で、実際に動作させるには、README.mdだけでは把握しにくい設定や実行時の確認ポイントもあります。
そこで本記事では、README.md、ソースコード、設定ファイル、Arduino Forumの情報を確認し、実機で動作させるまでの手順と注意点を整理しました。
なお、本検証はすべてArduino UNO Qを単体で使用するスタンドアローンモードで実施しています。
サンプルアプリ概要
このサンプルアプリは、USBカメラの映像から人と犬を検出し、その検出結果をArduino Cloudへ送信するシステムです。
<説明ページに記載されている機能一覧>
- USBカメラから映像フレームを取得します。
- TFLite SSDモデルを用いて、取得した画像フレームから物体を検出します。
- 検出結果のうち、personとdogを対象として抽出します。
- 検出結果をArduino Cloudへ送信し、クラウド上で状態を確認できるようにします。
- 検出された時間を集計し、人と犬の検出時間をレポートとして出力します。
また、ソースコードと設定ファイルを確認すると、カメラ入力からクラウド送信までの処理は次の流れで構成されていることが分かります。
- ① USBカメラから映像を入力します。
- ② 映像から1フレーム単位で画像を取得します。
- ③ 推論モデルに合わせて、画像を300×300ピクセルにリサイズします。
- ④ TFLite SSDモデルに入力し、物体検出の推論を実行します。
- ⑤ 検出結果として、クラスIDと信頼度スコアを取得します。
- ⑥ クラスIDがpersonまたはdogで、スコアが0.55を超える結果のみを検出対象として採用します。
- ⑦ 検出結果に基づき、人物検知、犬検知、未検知の状態を判定します。
- ⑧ 連続通知を抑えるため、10秒のクールダウン制御を行います。
- ⑨ 判定結果をArduino Cloudへ送信します。
- ⑩ プログラム上では6時間ごとに検出時間を集計し、レポートを出力します。以下は出力例です。
report ( person detected: 1.2 hours, dog detected: 4.6 hours )
使用機材
- Arduino UNO Q 4GBモデル
- USB接続のHDカメラ
- USB Type-Cハブ
- インターネット接続環境(Wi-Fiまたは有線)
- USB PD対応電源(5V/3A推奨)
- スタンドアローンモードで使用するための外部モニタとHDMIケーブル
- USBマウス、USBキーボード
事前準備
Arduino UNO QにUSB Type-Cハブを接続し、電源、USBマウス、USBキーボード、USBカメラを接続します。外部モニタはHDMIケーブルで接続し、スタンドアローン環境として起動します。
Arduino UNO Qと周辺デバイスの接続イメージ
Arduino Cloud設定
Arduino公式サイト(https://www.arduino.cc/)にアクセスし、「Arduino Cloud」からアカウント登録またはログインを行います。
ログイン後、左側メニューの「Things」をクリックします。
Arduino CloudのThingsメニュー
「+ THING」ボタンをクリックし、新しいThingを作成します。
作成したThingに、サンプルアプリで使用する変数を登録します。
- Variable: person_detected , type : Boolean , Permission: Read & Write
- Variable: dog_detected , type : Boolean , Permission: Read & Write
- Variable: last_label , type : String , Permission: Read & Write
- Variable: last_score , type : Float , Permission: Read & Write
- Variable: last_ts , type : Integer , Permission: Read & Write
以下、設定後画面のように、登録した変数が一覧に表示されていれば設定完了です。
Arduino Cloudの変数設定後画面
次に、サンプルアプリに必要なファイルをGitHubから取得し、Arduino UNO Q上の作業ディレクトリに保存します。
必要ファイルはcamera-detectフォルダ内のapp.py、Dockerfile、docker-compose.yml、requirements.txtです。
https://github.com/robby-proj/robby-project/tree/main/dog-detect-AI/camera-detect
Arduino公式ドキュメントの「Set up Arduino Cloud」(https://docs.arduino.cc/tutorials/UNO-q/arduino-cloud/)を参考にデバイスを登録します。登録時に表示されるdevice_idとsecret_keyは、後続の設定で使用するため控えておきます。
取得したdevice_idとsecret_keyをdocker-compose.ymlの環境変数(ARDUINO_DEVICE_ID: "YOUR_DEVICE_ID"及びARDUINO_SECRET_KEY: "YOUR_SECRET_KEY")に設定します。secret_keyは認証情報のため、外部に公開しないよう注意してください。
AIモデル準備
次に、物体検出で使用するAIモデルをダウンロードします。
作業ディレクトリに移動し、モデル保存用のmodelsディレクトリを作成します。
cd ~/camera-detect
mkdir -p models
cd models
modelsディレクトリ内で、TFLite形式の物体検出モデルをダウンロードします。コマンドは改行せず、1行で実行してください。
wget https://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip
ダウンロードしたZIPファイルを展開します。
unzip coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip
以下のコマンドでdetect.tfliteが作成されていることを確認します。
ls -la
推論結果のクラスIDを名称に変換するため、以下のコマンドでCOCOラベルファイルをダウンロードします。headコマンドでperson、bicycle、car、motorcycleなどのラベルが表示されれば、ラベルファイルの取得は成功です。これで実行前の準備は完了です。
# Download COCO labels
wget -O labels.txt https://raw.githubusercontent.com/google-coral/test_data/master/coco_labels.txt
# Verify
head -n 20 labels.txt
実行手順
以下のコマンドでコンテナをビルドし、バックグラウンドで起動します。コマンド内の--buildは半角ハイフン2つで入力してください。
docker compose up -d --build
サンプルプログラムでは、実行後6時間ごとに検出時間のレポートが出力されます。動作確認を早く行う場合は、次章のログ確認方法を利用します。
実行結果:ログから人物検知を確認
サンプルプログラムのレポート出力は6時間ごとのため、初期動作確認ではログを確認し、推論結果が逐次出力されているかを確認します。
サンプルプログラムを起動した状態で、別ターミナルから以下のコマンドを実行します。
docker logs -f camdetect
コマンド実行後、コンテナのログがリアルタイムに表示されます。
以下の図では、DETECTED: person score=0.551と出力されており、人物を検出したことをログ上で確認できます。
また、「DETECTION: 86 0.41 → vase(花瓶)」や「DETECTION: 73 0.21 → book(本)」などの出力も確認でき、モデルが複数クラスの推論結果を出力していることが分かります。
人物検知が成功した証拠ログ
実装時に確認すべきポイント
実装時に確認した主なポイントを以下に整理します。
- README.mdだけでは処理フローを把握しにくい部分があるため、ソースコードや設定ファイルを確認し、カメラ入力からクラウド送信までのデータの流れを整理することが重要です。
- スタンドアローンモードでの周辺機器接続については、Arduino Forumなどの情報も参考になります。
- docker-compose.ymlやアプリケーション側の設定を変更することで、personやdog以外のクラスを検出対象に追加することも可能です。
Qualcomm搭載Arduino製品の比較
Qualcommチップ搭載Arduino製品のラインアップ
公開時点で、Qualcomm社のチップが搭載されたArduino製品は、Arduino UNO QとArduino Ventuno Qの2点です。
Arduino UNO QとArduino Ventuno Qの主な仕様比較
| Arduino UNO Q | Arduino Ventuno Q | |
|---|---|---|
| 使用MPU | Qualcomm Dragonwing™ QRB2210:
|
Qualcomm Dragonwing™ IQ8 QCS8275:
|
| 使用MCU | STM32U585:
|
STM32H5F5:
|
| RAM | 2GB or 4GB LPDDR4 | 2x8GB LPDDR5 |
| ストレージ | 16GB or 32GB eMMC |
|
| 対応インターフェイス |
I2C/I3C SPI PWM CAN UART PSSI GPIO JTAG ADC |
I2C/I3C SPI PWM UART PSSI GPIO JTAG ADC |
| 対応OS |
Linux Debian Zephyr |
Linux Debian Ubuntu Zephyr |
| 外形 | 68.85 x 53.34mm | 160 x 100 x 25.8 mm |
まとめ
Arduino UNO Qは、従来のArduinoの使いやすさを継承しつつ、Linux動作環境とリアルタイム制御を1枚のボードで実現したエッジAI対応の開発ボードです。
本検証では、Arduino UNO Q上でUSBカメラを用いた物体検出デモを実施し、人物と犬の検出、およびArduino Cloudへの検出結果送信の流れを確認しました。実装にあたっては、README.md、ソースコード、設定ファイル、フォーラム情報の確認が必要でしたが、スタンドアローンモードでもAI推論アプリケーションを動作させられることを確認できました。
このようにArduino UNO Qは、教育用途や試作開発に加え、カメラ入力を活用したエッジAI検証やIoTクラウド連携の評価にも適した開発ボードです。初期PoCを短期間で立ち上げたい場合の選択肢として、有力な候補になります。
関連情報
お問い合わせ
関連技術コラム
関連製品情報

Qualcomm Automotive Connectivity Solution
Qualcommは、4G/5G、C-V2X、Wi-Fi、Bluetoothを活用した車載インフォテイメント向けの接続ソリューションを提供します。
- Qualcomm Technologies, Inc.
- NEXT Mobility
- ICT・インダストリアル
- スマートファクトリー・ロボティクス

エッジAIと高性能コンピューティングを実現するQualcommの産業用SoC Dragonwingシリーズ
Qualcomm Dragonwingは、産業・IoT向けに展開される高性能SoCブランドです。エッジAIや長期供給に対応し、ロボティクスや産業機器の開発を支援します。
- Qualcomm Technologies, Inc.

コネクテッドインテリジェントエッジ(Connected Intelligent Edge)を実現する Qualcomm IoT Application Processors
QualcommのIoT Application Processorsは、AIや5Gを活用し、ロボティクスやスマートカメラなどの多様なIoTソリューションを提供します。
- Qualcomm Technologies, Inc.
- NEXT Mobility
- ICT・インダストリアル
- スマートファクトリー・ロボティクス






