raytency’s diary

画像とテーブルはそのうち上げます

HackRFOneとGNURadio(Companion)をWindowsで使ってみる

最近、仕事でSDR(software defined radio=ソフトウェア無線)を使う機会がありそうなので、備忘録とタイピング練習を兼ねて書く練習をする。

 

 

これらを使うとなにができるか

・2.4GHz帯とか、電波の様子を見ることができる

・AMFMラジオを受信してPCで聞ける

・・なんだったらAMFMトランスミッタもできる

・ASK、PSKなどのデジタル通信の送受信を色々試せる

・BTとか電波通信のスニッファができるかもしれない

 

GNURadioのバイナリをインストールする

GNURadio公式のWikiには既に書かれているが、Win向けにビルド済みのバイナリが配布されている。

wiki.gnuradio.org

ここから、自分の環境にあったインストーラをダウンロードしてくる。

よくわからなければ下記のようにAnyCPUと書かれているものの最新版でよい。

この時点で64bit版のバイナリしかないので、未だに32bitOSを使っているひとは今すぐ64bit版を買ってこよう

f:id:raytency:20190409224857p:plain

GNURADIOインストールサイト

インストール時、特に聞かれることはない。

 

パスを通す

GNURadioのインストール時に、対応しているSDRボードのツール群もインストールされている。(BladeRFやHackRFのものももちろんある)

しかし、そのままではパスが通っていないので自分でパスを通す必要がある。

 

私の場合、Dドライブにいれたので

D:\Program Files\GNURadio-3.7\bin

配下に色々なバイナリ群が置いてあったのでここへパスを通す。

 

パスの通しかたは

Windows で環境変数 PATH をいじる方法のまとめ - Qiita

がわかりやすい。

※SDRボード側の用意しているツール群をインストール(ないしビルド)する必要はあるか?

このへんで、ほかの記事を並行して見ている人は「このあとはHackRF由来のツールもインストールするんだろ?」と思う人もいると思うが、

少なくともHackRFを利用する上でその必要はない。

 

HackRFのgithubレポジトリの説明を見ると、自分で一からビルドしなければいけない風に書いてあるが、ビルド済みのものをGNURadioが用意してくれている。CMakeやらcygwinを使ってビルドする必要はない

(それに気づかずずいぶんと時間を消費してしまった・・・)

 

BladeRFについては、ボードのUSB側ファームウェアの更新などをインストール時にしてくれるのでnuandから用意されているインストーラーは使うと楽。

それにfpgaファームウェアのロードなどもしなければいけなので、一度nuand提供のgetting startedを読んだほうが良い。

 

HackRFOneを繋いでドライバ入れる

インストールしてパスを通したら、HackRFOneをPCに繋ぐ。

ドライバのインストールが必要なので、先ほど通したパスの中にある

zadig.exeでドライバのインストールを行う。

なければ本家がここにあるので、ダウンロードしてくる。

 

起動してもリストボックスに何のデバイスもなければ、Options->List All Devices

を選択する

f:id:raytency:20190409231524p:plain

HackRFOneを選択して、既にドライバーがあれば(左側の表示)そのままで良いし、何もなければInstall Driverを押下。

ドライバはWinUSB含めて3種類ほどあったが、WinUSBで良い。

f:id:raytency:20190409231803p:plain

動作確認

ここまできたら、コマンドプロンプトを開き、以下のコマンドを入力

hackrf_info

こんな感じでFound HackRFと共にバージョンやシリアル番号が取得できれば準備完了

f:id:raytency:20190409233207p:plain

 

GNURadio上で動かしてみる

GNURadio Companionを起動する

f:id:raytency:20190409233815p:plain

 

しばらくすると、こんな感じの画面が現れる。

f:id:raytency:20190409233858p:plain

ここにフロー図を書くことで簡単に信号処理を行うことができる。

GNURadioの操作方法については、このチュートリアルが大変わかりやすい。

wiki.gnuradio.org

英語はGoogle翻訳に突っ込めばほぼ理解できる。

このなかの

Core concepts of GNU Radio applications

Guided Tutorial GRC

は、自分でフロー図を書くときに必要になるのであとで目を通そう。

とりあえずFMを受信してみる

HackRFのチュートリアルから、FMラジオの受信を行う。

Getting Started with HackRF and GNU Radio · mossmann/hackrf Wiki · GitHub

チュートリアルのページにある”You can find the GNU Radio Companion source file here”となっているリンクから、fm_radio_rc.grcというxmlをダウンロードする。

これはフロー図のデータなので、GNURadioConpanionで読み込むことができる。

f:id:raytency:20190410000917p:plain

読み込まれた図

 

実行すると、設定した周波数の音声を聞くことができる。(要アンテナ)

f:id:raytency:20190410005334p:plain