一家に一台は欲しい、無線学習キット「ADALM-PLUTO」を買いました。Pythonの開発環境Spyderで使えるようにします。 Amazonでも買えますが、マルツ、Mouser、Digikeyでも買えます。Amazonは高いです。マルツはユーザ登録とかハードルが低いです。
値段だけ考えるとDigikeyが一番安かったので、Digikeyで買いました。アメリカ発送なのに12/24発注で、12/28についたので、アメリカも近くなったなー。
こちらのページに説明があります。 まずはwindows用のデバイスドライバを入れます。PlutoSDR-M2k-USB-Drivers.exeをダウンロードして実行。問答無用でじゃんじゃん進めます。で、
インストール後のデバイスドライバが説明のページと一致しないけど、まぁだいたいあってそうなのでそのままGo。で、 pythonで使うにはpyadi-iioとpylibiioをpipでインストールしろとありますが、Spyderな私はcondaでインストールしたい。で、かのgoogle先生に聞いてみると、
https://anaconda.org/conda-forge/pyadi-iio
https://anaconda.org/conda-forge/libiio
があることを教えてもらえますので、で、condaで無事インストールです。
で、認識しているか、確認してみましょう。
https://anaconda.org/conda-forge/pyadi-iio
https://anaconda.org/conda-forge/libiio
があることを教えてもらえますので、で、condaで無事インストールです。
で、認識しているか、確認してみましょう。
Spyderのコンソールで、こんな感じで、認識されていることが確認できます。\(^o^)/
で、
で、
- # -*- coding: utf-8 -*-
- # 変数クリア
- from IPython import get_ipython
- get_ipython().magic('reset -sf')
- import matplotlib.pyplot as plt
- import numpy as np
- import adi
- sdr = adi.Pluto()
- # ADALM-PLUTOの設定
- # TXとRXの局発周波数をちょっとずらしてダウンコンバートされた波形が出るかどうか、、、です
- sdr.tx_lo=2400100000
- sdr.tx_hardwaregain_chan0=-10
- # 繰り返し送信を有効にする
- sdr.tx_cyclic_buffer=1
- sdr.rx_lo=2400000000
- sdr.rx_hardwaregain_chan0=60
- sdr.gain_control_mode_chan0='manual'
- sdr.sample_rate=10000000
- # 送信するデータは1+0jで送りっぱなし
- data = np.ones(1)
- sdr.tx(data)
- # 受信
- data_rx = sdr.rx()
- sdr.tx_destroy_buffer()
- sdr.tx_cyclic_buffer=0
- # オブジェクト解放
- sdr=None
- # プロット
- plt.plot(data_rx.real)
- plt.plot(data_rx.imag)
こんなことすると、
こうなります。10MS/sで、100kHzの正弦波をサンプリングしているはずなので、1000ptまでに10サイクル、、、そうなっているっぽいので、うまくいっているのだと思う。
ところで、一か月ぶりの更新、、、色々大変だったんですよ。公私とも。
コメントをお書きください