LabVIEWで非対応なUSRPを動かす(第1回:概要とセットアップ)

こんにちはドルフィンシステム福島です。

USRPにはNI USRP-2954やX410などLabVIEW対応の機種がある一方で、N310 や E320 のようにLabVIEW未対応の機種も数多く存在します。

今回から数回に分けて、この「LabVIEWサポート外のUSRPをLabVIEWから制御する方法」をご紹介します。

第1回は、アーキテクチャの簡単な概要と、開発環境をセットアップします。


USRPを制御するAPI

Windows上でLabVIEWからUSRPを制御できるAPIは大きく2つです。

  • NI-USRPドライバ
    • Ettus UHDをラップした関数群
    • IQ送受信など簡単に扱える
    • LabVIEWから直感的に使える反面、Ettus UHDより古く一部制限あり
  • IDL (Instrument Design Libraries)
    • NIが開発した高機能API
    • USRP制御だけでなく、LabVIEW FPGAでUSRPのFPGA開発まで一気通貫

これらに加えて、本家 Ettus ResearchのUHD も存在します。

UHDはDLL形式で提供されており、通常はVisual Studio Code上でC++やPythonからuhd.dllを呼んでUSRPを制御します。

今回の制御方法は、本家UHDをPython経由でLabVIEWから呼び出して実行します。(回りくどい方法ですが、実装が楽という事情があります。)



セットアップする

まずLabVIEWからUSRPを呼ぶためのサンプルが以下のgithubにあります。

ここの Dependenciesにインストールすべきアプリの一覧が掲載されているので、以下で順次セットアップしていきます。

ni/labview-usrp-examples
https://github.com/ni/labview-usrp-examples


LabVIEWをセットアップする

既にLabVIEW 2025 Q3がインストールされている場合はこの作業は不要です。

LabVIEW 2025 Q3(64bit)をセットアップします。現時点(2025/09/30)では最新のバージョンになります。

インストールするLabVIEWのbit幅は、ドキュメントでは64bit推奨とされており、ここはおとなしく64bit版をインストールします。

  • ※LabVIEW 2025 Q3ではなくても動作する気がしますがサンプルVIが、2025 Q3で作成されているため仕方ありません。最新版をインストールしましょう。
  • ※ UHDが64bit版しか提供されていないので、LabVIEW 32bit版では恐らく動作しません。

UHDをインストールする

既にUHD 4.8以降がインストールされている場合はこの作業は不要です。

UHDをダウンロードしてインストールします。
以下のURLのページから赤枠のリンクをクリックします。

https://files.ettus.com/manual/page_install.html


次のページの"Windows11"をクリックします。


インストーラーが2つ用意されています。
下側の*-VS2022.exeをダウンロードします(VS2022でビルドされたUHD)。


ダウンロードしたインストーラーを実行してインストールします。


インストーラーの流れに沿ってインストールすれば良いです。パスは特にPATHに追加しなくても良いです。


これでUHDのインストールは完了です。

※ ちなみにですが、USRP B2x0を使用する際に必要となるUSB Driverは、UHDをインストールすると以下のフォルダにインストールされますので、B2x0を使用する際にはこのドライバで認識させることが出来ます。

C:\Program Files\UHD\share\uhd\usbdriver


Pythonをインストールする

既にPython 64bit 3.10もしくは3.12以降がインストールされている場合はこの作業は不要です。

次にPython 3.10もしくは3.12をインストールします。LabVIEWに合わせて64bit版をインストールします。

以下のURLから3.12.10のインストーラーをダウンロードします。
https://www.python.org/downloads/windows/


インストーラーを実行してインストールします。
※下図では"Use admin privileges~"にチェックが入っておりますが、チェック無し(デフォルト)で良いです。


インストールが完了したら、Pythonの動作を確認します。

コマンドプロンプトを起動して

  • py

コマンドを実行しインストールできた事を確認します。


UHD Python APIをインストールする

次にUHDとPythonをつなぐUHD Python APIをインストールします。

インストールはpipで行いますので、コマンドプロンプトを開き

  • py -m pip install uhd

と実行してインストールします。(ネットワーク接続が必要です)


以下のようにワーニングが表示されていますがインストールできました。


サンプルをダウンロードする

次にLabVIEWからUSRPを実行するサンプルをgithubからダウンロードします。

gitがインストールされている場合は、

  • git clone https://github.com/ni/labview-usrp-examples

でクローンします。

gitがない場合は、下図のように Code→Download ZIPでzipをダウンロードして、それを適当なフォルダに展開します。



サンプルを実行する

ここまででようやくセットアップが完了しました。
サンプルの"check-sw-env.vi"をLabVIEW 2025 Q3から開きます。


開きました。

左上のPython VersionをインストールしたPythonのバージョンに合わせてから、VIを実行します。


無事、エラーもなく実行が完了しました。
出力されているメッセージをみるとuhd_find_deviceの戻り値のようです。


今回のまとめ

LabVIEWから非対応USRPを制御するために Python経由でUHDを呼ぶ方法 を紹介しました

セットアップは

  1. LabVIEW
  2. UHD
  3. Python
  4. UHD Python API
  5. サンプル実行

の順に行います

次回は、実際に LabVIEWからUSRPを起動してIQデータを送受信 する流れを解説予定です。

以上、ドルフィンシステム福島でした!







コメント