先日analog devices社の販売するソフトウェア無線キット、ADALM-Plutoを購入し、セットアップを行ったので詳細をメモしておく。Ubuntu20.04にて行った。
環境構築
ユーザーガイドはこちらにあり、特にpythonからの利用方法はここにまとまっている。そのためあえてここで説明するまでもないかもしれない…
強いて言うならばUbuntuを利用している場合、libiioのインストール後にpyadi-iio quickstartにしたがってパスを通す必要があることくらい。(libiioのインストール時に特にオプションをつけなかった場合)
自身の場合は以下のように.bashrc
に記載した
export PYTHONPATH=$PYTHONPATH:/usr/lib/python3.8/site-packages
また、libiioにはビルド済みパッケージも存在しているが、自身の環境ではこれを利用できなかった。(実行時になぜかSegmentation Faultとなった)そのためアンインストールし、ソースからビルドしてインストールしたところ、問題なく実行できた。
利用方法
ドキュメントやexampleなどがあるので分からないことがあればこのあたりを参照すればいいように思う。以下はこれらに対する補足。
adi.Pluto()
のuri
について
Customizing the Pluto configuration内に説明があったりする。libiioに含まれるコマンド、iio_info -S
で情報が取れる。uri
の指定はADALM-Plutoが複数接続されている場合に役に立つらしい。
ADALM-Plutoの型番
ad936xに属しており、恐らくデフォルトではad9363だと思われる。ちなみにad9364へのアップデート方法についてはCustomizing the Pluto configurationの「Updating to the AD9364」を参照すべし。
sdr.tx()
を利用するとなぜかSegmentation Faultが出る
プログラム終了時にsdr.tx_destroy_buffer()
を呼んだら出なくなった(気がする)。
参考資料
- PySDR: A Guide to SDR and DSP using Python
- pythonでsdr入門するには非常に良い
- adiモジュールの各プロパティについて詳しい説明もある(参考)