Arduino Uno Qの利用 ② 入門編 従来のArduinoと互換性を保ち新しい機能を追加されたArduino Uno Q Arduino <App Labをインストール>
前回は、Arduino Uno Qを従来からArduinoの開発システムであるArduino IDEで定番のサンプル・スケッチBlinkをテストし、従来のArduinoのボードと同様な結果を得ました。
アナログ入力データをシリアルモニタに表示するサンプル・スケッチでは、シリアルモニタに対しては新たなライブラリArduino_RouterBridgeを読み込み、Monitor.print()、Monitor.println()を、Serial.print()、Serial.println()の代わりに利用することで、従来と同様な結果を得ることができました。
今回は、Arduino Uno Qの本来の機能を発揮するために用意された Arduino App Labをインストールし、用意されているサンプル・プログラムを動かしてArduino Uno Qの動作を確認します。
●Arduino App Labのインストール
Arduino App LabをインストールするためにArduinoのホームページ、
にアクセスしてProductsを選択すると、次に示すArduinoの製品のリストが表示されます。この中のSOFTWAREの欄に Arduino App Lab NEW があります。この項目を選択し、指定に従ってダウンロードします。
Arduino App Labのダウンロードされたインストーラは、2026年4月現在 ArduinoAppLab_0.6.0_Windows_x86-64_installer.exeの名でダウンロード・フォルダに格納されています。このインストーラをダブルクリックすると、デバイスに変更を加えることの許可を求めてきます。「はい」で答えるとインストールを開始し、インストールが完了すると稼働中のArduino Uno Qを探します。
稼働しているArduino Uno Qが見つからないと、次に示すようにUSB接続している物にも同じWi-Fiネットワーク上にもArduino Uno Qは見つからないと表示されます。Arduino Uno R4などのようにArduino Uno Q以外のボードが接続されている場合でも、見つからないと表示されます。
Arduino Uno Qのボードを接続するとArduino Uno Qのボードにcarlinaの名前が付けられ、Arduino Uno Qの表示の横にUSB接続を示すマークが表示されています。前回このボードが接続された日時も表示されます。
ネットワーク経由でアクセスする場所に稼働中のArduino Uno Qがあることが次のように示されます。USB経由かWi-Fi経由かを示すマークが、Arduino Uno Qの後に表示されます。今回は、PCにUSB経由で接続されているArduino Uno Qを対象にします。
Wi-Fi経由で接続されているボードは、後ほど関連する事項を確認後接続し利用します。USB経由のものは、予備知識なしでもサンプル・スケッチの動作確認は行えます。
USB経由で接続されているcarlinaを選択すると、次に示すArduino App Labのサンプル・スケッチの数々が表示されます。
最初に、確認するサンプル・スケッチとしてBlink LEDを選択します。
Blink LEDをクリックすると次に示すように、Blink LEDのサンプルが開きます。README.mdのタグに表示されているのは、サンプル・スケッチのBlink LEDについての説明です。
右上の緑色のRUNアイコンをクリックすると、Blink LEDのスケッチがアップロードされ起動します。同時に表示は橙色のStopの表示になります。
併せてArduino Uno Q オンボードのLED2が赤く1秒間隔で点滅します。Arduino IDEのBlinkで点滅したLEDと同じです。
README.mdのタグでBlink LEDの説明では、
- Arduino Uno Q( Qualcom QRB2210)のPython側プログラムでLEDの点滅を制御する1秒ごとタイミングをとり
- Router Bridge でArduino(STM32U58)のスケッチにLEDのオン/オフの渡してArduinoのディジタル・ポートに接続されたLEDを制御
します。
●この処理のプログラムを確認する
左側のFilesの表示の元に、Python>main.pyにPython側のプログラム、sketch>skech.inoにArduino側のスケッチがあります。
次に示すのはPython側のプログラムです。
最初に1秒のタイミングを得るためのtime関数を取り込みます。併せてLEDのオン/オフの状態を指定するグローバル変数 led_stateをFalseにします。
time.sleep(1)で1秒間の時間を待ちます。led_stateを反転します。Bridge.calでArduino側に反転したled_stateの値を渡します。
次に示すのはArduino側のskech.inoです。
最初に #include "Arduino_RouterBridge.h" でPython側と受け渡しを行うライブラリを取り込みます。次にsetup()関数でLEDを制御するディジタル・ポートを出力に設定します。
Bridge.beginでBridgeライブラリを起動し、Python側とArduino側とのデータの受け渡しを行う関数を設定しています。スケッチのloop()関数は何もしていませんが、1秒ごとにPython側から起動されるset_led_state()関数がLEDの制御を行っています。
digitalWrite(LED_BUILTIN, state ? LOW : HIGH);
この命令の設定する出力の状態を示す値 は state ? LOW : HIGHの結果となります。
この式の結果は最初の条件式 state が true の時は LOWとなり、false の時は HIGHとなります。
変数 = 条件式 ? trueの時の値 : falseの時の値
Arduino IDEのサンプル・スケッチのBlinkは、Arduino側の数行の命令でLEDの点滅のタイミングの処理を行っています。Arduinoの処理だけで済む場合はこのような面倒な処理を行う必要はありません。
顔認識やAIの処理と連携したい場合、Arduinoの処理は直接デバイスの制御を行う部分を分担し、上位の処理をPython側で分担するようなシステムを構築するときには、このArduino App Labが大いに助けになりそうです。
引き続きArduino App Labのサンプル確認を行っていきます。
●Arduino IDEでArduino Uno QのBlinkが動かなかった
今回のArduino App LabのサンプルBlink LEDの動作テストは順調に進みました。念のため
Arduino IDEでのサンプルBlinkを「Arduino Uno Q入門1」にしたがって動作確認しましたが、LEDの点滅ができませんでした。
Arduino Uno R4では動作確認が出来ました。いろいろ確認していくと、Arduino Uno Qのボードのバージョンが0.54.1にアップデートする必要が分かりました。
アップデートを行った結果、従来と同じ結果が得られるようになりました。