こんにちはドルフィンシステム福島です。
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を呼ぶ方法 を紹介しました
セットアップは
- LabVIEW
- UHD
- Python
- UHD Python API
- サンプル実行
の順に行います
次回は、実際に LabVIEWからUSRPを起動してIQデータを送受信 する流れを解説予定です。
以上、ドルフィンシステム福島でした!
コメント
コメントを投稿