I had lunch at a restaurant serves wine and grills in Machida today.
Cabernet Sauvignon from Chile...
(注)ワインはボールドでシャープなチリのカベルネソーヴィニヨン
Jun 29, 2022
Breaded Fried Pork Butt (豚肩ロースのカツレツ)
Jun 27, 2022
A Bluegrass Music Concert "Lily Pickin' Party" at a public hall in Midori, Yokohama
【御参考】
Murgh Makhani (バターチキンカレー)
I had lunch at a Nepal & Indian restaurant "Everest Kitchen" near Nakayama station in Midori, Yokohama yesterday.
Butter chicken curry... yummy!!
Jun 25, 2022
Stir-Fry Pork with Ginger (姜葱猪肉、ポークジンジャー)
My homemade dish called "Stir-Fry Pork with Ginger".
Jun 24, 2022
Grilled Mackerel (鯖のグリル)
I had lunch at a restaurant serves wine and grills in Machida today.
Sauvignon Blanc from Chile...
(注)ワインは爽やかな酸味のチリのソーヴィニヨンブラン
Jun 21, 2022
ADALM-PLUTOの使い方(応用編)
1. 概要
#1(基本編)の続き#2(応用編)です。Pythonプログラミングにつてはちょっと置いといて一気に実際にウェブで公開されているパッケージソフトを使った実用性のあるソフトウェア無線機を紹介します。狭帯域のデジタル通信(FT8など)、画像通信(テレビなど)やデジタル変調(QAMやOFDMなど)に関しては他のソフトを当ってください(笑)。
2.SDR Console(全般と受信機能)
ウェブで公開されているSDR Consoleというソフトを用いてADALM-PLUTOを使ったソフトウェア無線機を作ってみました。
Windows用のソフトウェア無線機用ソフトウェアを開発しているSDR-Radio.comのアマチュア無線家用の無料ソフトを使います。ウェブ上の場所はここです。
SDR Consoleのダウンロードはここからできます。
https://www.sdr-radio.com/console
指示どおりセットアップします。
現時点での最新版はこれです。
無線機はPlutoSDRを選びます・・・ってこれしかないのでこれ選びます。
(周波数レンジが0-3800MHzになっていますが、実際は70-6000MHzで送受信可能(笑)。)。帯域幅を選んでStartボタンを押します。
スタートするとこんな画面になります。
1階リビングでFM横浜(84.7MHz)がバッチシ入ります。アンテナはアマチュア無線用のホイップです。左上にあるのはSメータで受信入力端における受信電力(受信電界強度ではない)?だと思う。右端のバーで受信電力の表示範囲を設定します。ノイズフロアが一番下に来るように設定します。続いて、画面の一番上にあるメニューからReceiveを選びDSPをクリックします。
するとテレビのリモコンのようなものが現れます。上から周波数設定窓でマウスで0Hzから9.999999999GHzまで任意の周波数が設定できます(ADALM-PLUTOの場合は70MHzから6GHzの間しか送受信できません)。続いてスピーカーの音量、オーディオのスペクトル表示、IF表示窓(中心周波数微調出来ます)、モード選択窓(BC-FMとはFM放送)、あと細かい設定が出来ますが詳細は省略します。
どの程度の受信感度なのか参考になるものを次に示します。
アンテナは屋外アンテナ使用。鎌倉自宅にていずれも明瞭に受信できます。
3.送信機能
画面一番上にあるメニューからTransmitを選びDSPをクリックします。
受信の場合と同じように各種の設定ウィンドウが開きます。上から周波数設定窓、受信と送信の同期ボタン、モード設定ボタンと続き「TX」とあるのが送信ボタンです(左上にある「TX」ボタンと同じです)。マウスでこのボタンを押して送受信を切り替えます(設定によってVOXもフットスイッチも単極双投スイッチによる送受切り替えも可能です)。続いてドライブレベルで0―100%の調整が出来ます(普段送信しない時は絞っておいた方が良いと思う)。更にALCレベル、マイク関係の設定と続き変調のスペクトラム表示等があります。
ADALM-PLUTOの送信性能はどの程度のものなのか調べてみました。送信出力端における送信電力の実測値を次に示します。
公称0dBm最良ポイントで+7dBmと言われているのでそのようなデータになっているかと・・・測定は中華スペアナ(未校正・・・笑)。70MHzから6GHzの任意の周波数で送信することが出来ます(笑)。ついでにスプリアスを観測してみました。スプリアス出まくりですね・・・スペアナからもスプリアス出ていますが原理が分かっていれば識別できます(笑)。これ送信出力の波形が正弦波ではなく矩形波に近いという事ですね・・・要所要所にフィルタを入れる必要がありますね・・・でもこれって大昔の真空管送信機の逓倍と同じような使い方が出来そうですね(笑)。3.5GHzFMの電波を3逓倍して取り出せば10.5GHzのFMの電波になりますね(超笑)。
4.ソフトウェア無線機の構築例
ソフトウェア無線機を作るのはとっても簡単です・・・半世紀前の真空管無線機自作時代を彷彿とさせますね。何しろはんだ付けなんかほとんど必要ありませんしモジュールをネットで買って来て同軸ケーブルとわずかな電線(主に電源関係)で結線するだけですから。バリエーションはいっぱいあるのでここでは最終形態ではなく構築例を挙げるにとどめます・・・ネットにモジュールがあふれていますし、モジュールを組み替えればいろんな無線機に作り替えられます。
まず必要なものを次に列挙します。
・ADALM-PLUTO本体
発売当初$100でしたが現在は値上がりしていて$171.45です。日本では3万円から4万円で売られています。
・パソコン
SDR Consoleのパソコンへの要求性能は下記
2GB RAMでもぎりぎり動きますが厳しいです。8GB RAMならサクサク動きます。受信だけなら次のような古いパソコンでもOK。押し入れに眠っているので充分、わざわざ買う必要なし。
・USBケーブル
ADALM-PLUTOに同梱されている。
・ヘッドセット
決してHiFi仕様のものなんか買わないように・・・音声だけを通すような安物でよい。
・USB-RS232変換
必須ではないですが、あると便利。送受切り替えに使う。
私はアマチュア無線のCW I/Fに使っているものを流用。
次に430MHzのFMトランシーバーの構築例を示します・・・
5.まとめ
現在はもう部品屋さんで電子/電気部品を買って来て装置を組み立てるという時代ではなくなってきたようです。いろんな機能を持った回路ブロックを簡潔なモジュールとしてまとめてそれらを組み合わせて装置を作るという事ですか・・・。製造の標準化が可能ですし保守も楽ですしね。今は部品屋さんではなくネット上でモジュールを購入する時代になりつつあるのでしょうか・・・モジュールがネット上に溢れていますし次々と新しいのが出てきます(中古品も一杯出てます)。ちょっと買いそびれているともうネット上には無くなっていたりします(中国の零細企業の少量生産品が多い??)。まーアマチュアも無線機を自作しやすくなってきたようですし結構な時代になってきたものです!
Jun 15, 2022
ADALM-PLUTOの使い方(基本編)
1. 概要
欧米の理系の学生の間で人気のAnalog Devices 社製の ADALM-PLUTO、何故か日本では人気が今一つのようです。この一番大きな問題は日本語の詳しい取扱説明書が無いことに起因しているのでしょうか? ちなみにAnalog Devices社ではオンラインドキュメントや簡単なクイックスタート(もちろん英文です)は作られているようですが、ほとんどの人が読んでいないと苦言を呈していますね・・・。これはADALM-PLUTOが学生の教材として格安に作るという思想によるもので、およそ無駄に費用の掛かるものはハード及びソフトから極力省いているという事のようです。それでADALM-PLUTOを入手して自分なりにいろいろ調べたことを纏めてみました。
2.学習に必要なもの
ADALM-PLUTOを買ってネット上で公開されている情報によってソフトウェア無線機を作る事は可能で多くの情報が巷に溢れています。もちろんそれはそれで良いのですが、せっかく教材として売られているのですからちょっとばかりソフトウェア無線のさわりだけでも学習してみようと思う訳です。
ソフトウェア無線機は従来の古典的なアナログの無線機と違ってハードそのものは高周波が扱えるデジタルのLSIでそのLSIの周辺に外部から入出力される信号を処理してLSIに受け渡しするFPGAで構成されています。なのでハード的に外から弄れる部分は殆どありません。外部から入力するソフトウェアでどのようにでもなるというのが大きな特徴です・・・それが故に使い方は千差万別で新しい使い方や発明につながるようなことが出来るという事でしょう・・・だから教材なんですよね。
ソフトウェア無線機はソフトウェアが無いと動きません。もちろんパッケージとして売られているか公開されているソフトウェアを使って動かすことは可能です。それはそれでそれまでのことでソフトウェア無線機を使いこなしているとは言い難い事です。それで私も半世紀ぶりぐらいにプログラミングの勉強をしてみました。今最も流行っている・・・小学生も勉強しているという・・・Pythonの小学生向け?の教科書を買って勉強しました(笑)。プログラミングをやるためのPCは安物で充分です。もちろん扱う無線の種類によっては高性能のものが必要かもしれませんが普通の電話程度のものなら1万円ぐらいの中古PCで充分遊べます。あとは動作を確認するための測定器類・・・アマチュアのお遊びですから高級なものは要りません、、格安の中華スペアナがあれば充分かと(笑)。
もうひとつプログラミングの教材になる次の書籍を用意しました。Pythonによる無線信号処理について詳しく解説されているコンピュータサイエンスの専門誌です。
それでは、次から思いつくままにADALM-PLUTOにまつわるヒントを書き並べてみました。
3.ADALM-PLUTOを動かすのにPythonの最新版が良いとは限らない
Pythonを使ってライブラリやドライバをインストールする時にPCとの相性でPythonの最新版では正常に動作しない場合があります。この場合ひとつ古いバージョンでやってみると上手くいくことが多いようです。例を次に示します。
インストールされているライブラリの確認は次のコマンドで出来ます。
4.Firmwareのupdate
ADALM-PLUTOのFirmwareはまだ正規のバージョンにはなっていなくってバグがまだフィックスされていないようです。特にネットで格安のものを購入した場合はバージョンが古い可能性があるので、購入したら直ぐにUpdateした方が良いようです。と言っても市販のソフトのような自動でアップデートしてくれるインストーラーは用意されていませんのですべて手動でアップデートする必要があります。最新のバージョンは次から確認できます。
https://github.com/analogdevicesinc/plutosdr-fw
現在インストールされているFirmwareのバージョンは次から確認できます。
ADALM-PLUTOをPCのUSBに接続してPLUTOSDRというドライブにあるLICENSE.htmlにFirmwareのバージョンが記述されています。
バージョンアップの方法は次のとおりです。
新しいFirmwareをPCの外部デバイスとして認識されているPLUTOSDRにコピペし「取り出し」操作をします。
実際はこんな感じ
「取り出し」とはこれです。
5.Firmwareのupgrade
アマチュア無線をやろうとしている人にはこれは必須です。ADALM-PLUTOに搭載されているAD9363というデバイスは携帯電話用のデバイスとして開発されたAD9361の兄弟でハードウェアそのものは同じものです。このAD9361をベースにFirmwareで機能を制限して兄弟のデバイスが作られています。AD9363というのは格安で教材用に機能を大幅に制限したデバイスです。
FREQ
Response Channel
BW
AD9361 70MHz – 6GHz 56MHz
AD9363 385MHz – 3.8GHz 20MHz
AD9364 70MHz – 6GHz 56MHz
AD9363のFirmwareをAD9364のFirmwareに書き換えることによって動作周波数範囲を拡張することが出来ます。
まずCOMポート接続機能を持った端末アプリケーションを準備します。私は昔から使い慣れているTera Termを使いました。Tera Termの接続画面を次に示します。
接続できるとログイン画面が現れます。
ログインIDは root
パスワードは analog
です。次の画面の上半分の文字が出てきたらログイン成功です。
多くの場合上から二番目までで作業は完了です。あまり言いたくないけどAD9361にもなるんですね(笑)。
詳細は下記を参照ください。
https://wiki.analog.com/university/tools/pluto/users/customizing#updating_to_the_ad9364
6.ドライバのインストールは基本中の基本
ここで失敗するとなかなか抜け出せませんので注意が必要です。ドライバは何が必要なのかは環境や目的によって違ってくるのでケースバイケースで対応が必要です。
ここにあります↓
https://wiki.analog.com/university/tools/pluto/users
正しくデバイスドライバがインストールされるとWindowsのデバイスマネジャーで次のとおり確認できます。
これは私の場合ですが、このとおりになっていないと正しくインストール出来なかったかファイルが壊れていると思われるので、原因を突き止めて再トライする必要があります。
これが結構鬼門です。インストールしたつもりが正しくビルドされていなくシステムがエラーになったり正しく動作しない場合があります。IIOとはIndustrial I/Oの略でPCと周辺機器との間のいろんなことに対応できる入出力のデバイスドライバです。特にAD変換やDA変換に関与していて送受信の根幹的なところを担っているようです。なので、これが問題だと送信できない(パワーが出ない)受信できない(感度が悪い)という事が起こります。Windows用のIIOデバイスドライバはLibiioというドライバファイルにまとめられていて次のところからダウンロードしてインストールします。https://wiki.analog.com/resources/tools-software/linux-software/libiio
または直接libiioのファイルリストからインストールします。
https://github.com/analogdevicesinc/libiio/releases/
最初これが正しくインストールされているかなんて気に留めていなかったのですが不穏な動作に気が付いていろいろ調べていくうちにlibiioのバージョンとPCの間に相性があるのに気が付きました。古いPCにlibiioをインストールするとファイルが正しくビルドされないことがあるようです。このような時は古いバージョンのlibiioをインストールし直してみると上手くいく場合があります・・・私はlibiio-0.19まで試してみました(笑)メーカーも心得ていてちゃんと古いバージョンもダウンロード出来るように残してあります。ちなみにlibiioのビルドされたファイルはPCの次の場所に格納されています。
赤線を引いたこれらのファイルが正しくビルドされていないか壊れているとシステムが正しく動作しないです。それで正しくビルドされているか確認する方法があるので必ず次のコマンドを実行して確認することをお勧めします。
(3)
PythonからADALM-PLUTOを操作するためのドライバ
Windows用のドライバとIIOドライバが既にインストールされている必要があります。Pylibiioを下記のとおりインストールします。
pythonを起動するとインストールが成功した場合は下半分のように表示されます。
PyADI-IIOを下記のとおりインストールします。
これらのインストールは私の場合エラーが表示されてすんなりインストールできませんでした。IIOドライバのバージョンが関係ありますしエラー表示されたらエラーの内容を読み取って対処する必要があります。
Pluto/M2k was designed never to have to be rebooted - but software bugs happen. Before you reboot things - try to ask yourself “why”, what went wrong, how do I reproduce, and how can I file a bug report that will help someone debug.
8.参考
私のソフトウェア無線機の実験ベンチ
#2に続く・・・