您好,登錄后才能下訂單哦!
小編給大家分享一下如何利用樹莓派3和RTL-SDR V3搭建一個低成本的QRP小功率監測點,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
QRP是無線電通訊簡語中的小功率通訊的代詞,像FT8,JT9,JT65和WSPR這些數字模式是被設計用來在全球范圍內以低功率發射和接收的模式(雖然不是每個人都只用低功率)。這些特殊設計的模式使得即使是微弱的信號也能被接收軟件解碼。2017年發布的FT8打敗了JT9和JT65一躍成為迄今為止最受歡迎的數字模式。雖然WSRP的信標模式比建立聯系的模式強一些,但WSRP也沒有FT8強大。
這些微弱的信號模式除了被用來進行建立聯系外,也是當前高頻傳播條件的重要指標。每個信息包都包含關于發送器位置的信息,所以你可以看到你收到的信息包來自何處和距離有多遠。你也不需要像一個“火腿”(業余無線電愛好者)一樣建立一個監測站。作為一個SWL(短波聽眾),僅僅看看你能從多遠的地方接收到信號,以及你能從世界上多少個國家“接收”到信號,就會非常有趣。
通過這個設置,你將能夠連續地同時監視同一頻段內的多個模式(例如,同時監視20個FT8、JT65+JT9和WSPR測試儀)。在Linux中創建多通道的方法也可能對其他應用程序有用。如果你碰巧有一個upconverter(向上轉換器)或一個更好的用于監視的SDR,比如SDRplay或Airspy HF+,那么它也可以替代RTL-SDR V3。我們需要的零件如下:
RTL-SDR V3 (或 upconverter, 或其他的 HF & Linux capable SDR)
Raspberry Pi 3 (或是其他類似的SBC平臺)
有網
帶通濾波器(可選,但是建議使用)
高頻天線(這個簡單,長導線就可以)
使用@rtlsdrblog V3加密器進行#FT8監視一周,使用90英尺長電線對30m進行直接采樣。3151個獨特的響應,2836個柵極和86個國家。來自#pskreporter的ADIF并與@GridTracker映射。pic.twitter.com/1c826gDoce
——Johnny(@cuoops) 2018年6月15日
本文我們使用的是Raspberry Pi 3,但是如果你想用其他的和這個類似或是比這個更好的SBC平臺的話也可以。首先我們將通過RealVNC設置遠程桌面連接的Raspberry Pi 3。
首先給我們的Raspberry Pi 3安裝系統,將Raspbian系統燒錄在一張SD卡上,講SD卡插入Pi中,插上鼠標和鍵盤,HDMI顯示器和電源。
開機后進入Raspberry Pi 3系統桌面,打開一個終端輸入sudo raspi-config。在本地化設置中。將時區更改為UTC(localisation options -> time zones -> none of the above -> UTC),為你的語言環境設置鍵盤,并啟用VNC。
在raspi-config中,同樣在接口選項下啟用VNC。
使用Raspberry Pi RealVNC設置指令,設置一個RealVNC查看器帳戶,或者通過本地網絡連接,在終端使用“ifconfig”記錄下Pi的ip。注意,注意,在上一步中啟用VNC之后,你可以通過RealVNC設置服務器,以便在Raspberry Pi任務欄的右上角登錄。
此時,如果你愿意,可以刪除HDMI監視器并連接到Pi / VNC。
接著為你的Raspberry Pi 3安裝軟件
我們先安裝RTL-SDR驅動。我們需要V3的Keenerd驅動程序,因為這些驅動程序是允許我們在直接采樣Q-branch模式下運行rtl_sdr軟件的唯一驅動程序。這是RTL-SDR V3中HF接收所需要的。
sudo apt-get updatesudo apt-get install libusb-1.0-0-dev git cmake -ygit clone https://github.com/keenerd/rtl-sdrcd rtl-sdr/mkdir buildcd build cmake ../ -DINSTALL_UDEV_RULES=ONmakesudo make install sudo cp ../rtl-sdr.rules /etc/udev/rules.d/ sudo ldconfigecho 'blacklist dvb_usb_rtl28xxu' | sudo tee --append /etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf
現在重新啟動以應用黑名單,并插入您的RTL-SDR。
我們需要使用PulseAudio來創建虛擬聲卡驅動,我們還需要安裝mplayer來播放音頻。
sudo apt-get install pulseaudio pavucontrol mplayer -y
CSDR是一個DSP函數庫,我們將用它來設置多通道接收器。
sudo apt-get install libfftw3-dev -y>cd ~ git clone https://github.com/simonyiszk/csdrcd csdr
在進一步討論之前,對于Raspberry Pi 33,我們建議編輯Makefile并將PARAMS_NEON標記更改為以下內容。Makefile可以用“sudo leafpad Makefile”命令打開
-march=armv8-a-mtune=coretx-a53-mfpu=neon-fp-armv8.
同樣在 PARAMS_RASPI 設置:
-mcpu=cortex-a53-mfpu=neon-fp-armv8.
此時我們并不能確定這玩意兒真的做了什么沒有,但是看起來這段代碼應該是用來優化Raspberry Pi 33 CPU的。如果你使用的是其他的板子的話,你都需要看看這些設置在你的板子上都干了點啥。
保存并關閉這個文件,然后運行
makesudo make install
ncat是一個TCP服務器,我們將使用它來幫助我們建立一個多通道的接收器。
sudo apt-get install nmap -y
我們將使用Chrony來調整QRP模式所需的時間偏移量。待會兒討論怎么配置。
sudo apt-get install chrony -y
WSJT-X是一個我們將用來解碼FT8,JT9,JT65和/或WSRP的軟件。瀏覽器上打開WSIT-X的網站頁面,下載用于Raspberry Pi 33的.deb后綴的文件,然后雙擊下載的文件開始安裝。
JTDX是另一個源于WSJT-X的解碼器,有人說它比WSJT-X解碼得更好,有更多的特性。然而,我們發現JTDX占用了更多的CPU資源,因此在Pi 3上使用它進行多通道解碼是很困難的。在本教程文章中,還沒有為JTDX準備好的.deb安裝文件,因此必須手動編譯JTDX。
下面的編譯說明基于N0KEG的教程,現在看起來有點過時了。
安裝
sudo apt-get install build-essential subversion git automake libtool libusb-dev gfortran gfortran-5 g++ g++-5 libusb-1.0-0-dev texinfo cmake asciidoc asciidoctor libqt5serialport5 libqt5serialport5-dev libfftw3-dev libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtmultimedia5-dev libudev-dev pavucontrol wget
多線程編譯
export MAKEFLAGS='-j 4'
需要用 swapfile編譯一個大文件
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
下載、編譯并安裝最新的hamlib
cd ~mkdir ~/hamlib-prefix && cd ~/hamlib-prefix && git clone git://git.code.sf.net/u/bsomervi/hamlib srccd src git checkout integration ./bootstrap ./configuremakesudo make install sudo ldconfig
下載安裝JTDX
cd~ wget https://www.release.jtdx.tech/Windows/Source%20code/src18.1.0.85.zipmkdir ~/jtdx-prefix && mkdir ~/jtdx-prefix/build && mkdir ~/jtdx-prefix/src unzip src18.1.0.85.zip mv wsjtx/* ~/jtdx-prefix/src/
cd ~/jtdx-prefix/buildcmake -D CMAKE_PREFIX_PATH=~/hamlib-prefix ../srccmake --build .sudo cmake --build . --target install
下載適配Raspberry Pi 3版本的GridTracker
在https://tagloomis.com/downloads下載Raspberry Pi 3版本的GridTracker . 這將允許你在Pi本身的地圖上可視化你的QRP點。這個是可選的,因為你在 PSKreporter.info 也能完成同樣的操作。
cd ~/Downloads tar -xzf GridTracker-Linux-Arm-1.18.0604.tar.gz -C ~
我們首先需要為你想要同時監視的每個頻率創建虛擬的音頻接收器。下面的示例將設置兩個在引導時加載的虛擬音頻接收器。要設置另一個,只需從Virtual 2多加幾行,等等。首先打開Pulseaudio的default.pa文件:
sudo leafpad /etc/pulse/default.pa
在這個文件末尾加下面幾行:
load-module module-null-sink sink_name=**Virtual0** sink_properties=device.description="**Virtual0**"load-module module-null-sink sink_name=**Virtual1** sink_properties=device.description="**Virtual1**"
我們還建議禁用PulseAudio日志,因為這東西很占CPU。
sudo leafpad /etc/pulse/daemon.conf
現在找到”log-level”然后把它改為”log-level = error”.刪除log-level邊的分號。保存后退出。
; log-target = autolog-level = error ; log-meta = no
現在可以通過重新引導或在命令行運行“pulseaudio -k”來重新加載pulseaudio。
現在,在終端窗口中運行下面的命令,使用ncat設置一個RTL-SDR TCP服務器。在本例中,中心頻率設置為14.1 MHz (14100000 Hz)。把這個改成你想要監控的頻率。這里有一份完整的QRP波段列表。只要記住將中心頻率從實際信號頻率偏移幾百kHz,就可以避免達到中心直流電峰值。
rtl_sdr -s 1200000 -f 14100000 -D 2 - | csdr convert_u8_f | ncat -4l 4952 -k --send-only --allow 127.0.0.1
Rel_stl命令中-s表示采樣率,-f表示中心頻率。-D 2 設置Q-branch為直接采樣模式。
在ncat -4l上設置TCP IPv4模式,端口是4952,-k允許進行多個連接,--send-only確保服務器只發送數據而不接收數據,并且—allow 127.0.0.1確保只能進行本地連接。
再打開一個第終端窗口/選項卡中運行下面的命令,生成一個SSB USB通道,以14.074 MHz監測20M FT8通道。注意“(14100000-14074000)”部分設置監測頻率為“(中心頻率調諧頻率)”。在這個例子中,我們監控14.074 MHz,也就是20M FT8頻率。如果你在監測一個不同的波段,并且使用不同的中心頻率,那么在這里改變偏移頻率。利用csdr命令設置一個USB SSB解碼器。關于使用csdr的更多信息可以在[csdr GitHub]頁面(https://github.com/simonyiszk/csdr)上找到。注意,我們將fir_decimate_cc命令中的“transition bandwidth”從GitHub頁面上的csdr示例中使用的0.005減少到0.05。這個操作可以降低CPU的負荷,代價可能是干擾更強一點,但是在我們這次列出的例子中,沒什么毛病。
ncat -v 127.0.0.1 4952 | csdr shift_addition_cc
python -c "print float(14100000-14074000)/1200000"| csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc 0 0.5 0.05 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer -nocache -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -
打開pavucontrol,可以進入Raspberry Pi Start Menu -> Sound & Video -> PulseAudio Volume control,或者簡單地在命令行輸入“pavucontrol”。單擊“ Playback”選項卡,并設置MPlayer使用“Virtual 0”音頻接收器。
QRP模式(尤其是FT8)要求計算機時鐘非常準確。這是因為信號預期在特定的時間間隔內被發送和接收。大多數人使用NTP將他們的計算機時鐘同步到一個精確的時間。如果有網絡連接,Raspbian會自動同步到NTP。
然而,問題是RTL_SDR,CSDR,和mplayer同時運行在Raspberry Pi 33上時,從輸入到輸出這段過程會產生一段時間大概2-3秒的延遲,而這段延遲是不能存在的。大多數延遲來自mplayer上的緩沖,這有助于減少CPU峰值時的負荷。WSJT-X規定數據包在正確的時間范圍內可以被接收,如果超過了+/- 2秒,就不會解碼它們。
為了解決這個問題,我們需要稍微欺騙一下時鐘,并將系統時間設置向前調幾秒鐘。感謝dg0opk讓我們了解了這個方法,它包括用Chrony替換Raspberry Pi 3默認的NTP軟件,而Chrony我們是可以自己配置。Chrony在前一節中應該已經安裝過了,安裝它會自動禁用NTP并激活Chrony。使用以下命令打開它的配置文件:
sudo leafpad /etc/chrony/chrony.conf
第一個命令,設置一下讓它可以有一個大概-2.5秒的偏移量
pool 2.debian.pool.ntp.org iburst offset -2.5
保存配置文件后退出,然后重啟Chrony服務。
sudo invoke-rc.d chrony restart
打開WSJ-T或者JTDX,進入File -> Settings -> Audio選項卡,設置聲卡輸入為“Virtual0.monitor”。
WSJT-X設置為FT8模式,現在你可以用它來解碼信號。
終端輸入“jtdx”打開JTDX也一樣。輸入聲卡的接口設置成和上面一樣。
WSJT-X使用RTL-SDR V3在Pi 3上以直接采樣模式解碼FT8
如果你沒有看到解碼信息,但是在光譜中看到信號,這個時候嘗試下調整下你的時間偏移量。然后在WSJT-X數據流中應該可以看到,數據包到達的是太早還是太晚。當你獲得解碼數據后,相應地調整偏移時間。讓“DT”列的值盡可能的接近0。DT列顯示的是時間偏移量和準確時間。例如,-0.5表示數據包比預期提前了0.5秒。
WSJT-X可以向pskreporter.info/pskmap報告你的位置,這個站點聚集了來自世界各地的QRP位點。在這里,你可以把你的接收器和附近的比較,看看你的天線和設置怎么樣,并顯示出你的信號能被多少個國家接收到。
要設置它,只需在WSJT-X的 General settings中輸入您的呼號和maidenhead網格詳情,然后在Reporting選項卡下輸入“Enable PSK Reporter Spotting”。
如果你不是“火腿”,你仍然可以作為一個SWL(短波聽眾)來為網站做貢獻。你的呼號可以是“hamprefix/SWL/city”。在https://pskreporter.info提供了一個示例。你可以在這里找到你的國家。你可以從這個計算器獲得你的Maidenhead網格位置。只用它給你的前四個字符。
多通道檢測FT8 + JT9/JT65
這一步我們將展示怎么樣為附加的一些QRP模式(如JT65、JT9和WSPR)添加同步監控。首先我們將會說明如何設置dg0opk,在他的youtube視頻里講過用這種方法監控JT9和JT65。由于JT9和JT65頻段距離FT8只有幾個kHz,我們可以簡單地打開WSJT-X的第二個實例,讓它與FT8解碼器偵聽相同的音頻,然后在WSJT-X中擴展解碼帶寬。
1.要做到這一點,在終端中輸入wsjtx -r jt_decode 打開wsjt-x的第二個示例。
2.在WSJT-X高級設置中,將接收機帶寬增加到4500赫茲。
3.將模式設置為JT9+J65,在數據窗口中,將“JT65 2500 JT9”設置為“JT65 4500 JT9”。
FT8 + JT9/JT65 + WSPR
現在要監視WSPR,我們需要打開第二個通道,因為WSJT-X可以監視的最大帶寬是6000赫茲,WSPR在20m波段比FT8頻率高28.1696 kHz。
打開第二個終端窗口,再次運行ncat命令,確保更改了調優頻率。在下面的示例中,我們將它更改為14.0956 MHz的20m WSPR頻率。
ncat -v 127.0.0.1 4952 | csdr shift_addition_cc
python -c "print float(14100000-14095600)/1200000"| csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc 0 0.5 0.05 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer -nocache -rawaudio samplesize=2:channels=1:rate=48000 -demuxer rawaudio -
打開pavucontrol,可以進入樹莓Pi Start Menu (開始菜單)-> Sound & Video(聲音和音頻) -> PulseAudio Volume control(PulseAudio音量控制),或者簡單地在命令行輸入“pavucontrol”。這里設置新播放器使用“Virtual 1”音頻接收器。
輸入“wsjtx -r wspr”打開wsjt-x的第三個示例。然后將輸入聲卡設置為“Virtual1”并且設置好WSRP模型。此時你的環境已經基本上搭建成功了。
在Raspberry Pi 33上們我們成功的打開并運行了兩個通道和三個WSJT-X解碼實例。如果使用JTDX的話,因為它太占CPU了,我們實際上只能打開一兩個實例。
Grid Tracker
GridTracker是一個很好用的軟件,它可以自動在地圖上標出你的位置。安裝后在命令行運行./GridTracker就可以了。
要為GridTracker設置WSJT-X,只需進入設置窗口的Reporting選項卡,并啟用“Accept UDP Requests”。
不過,對于Raspberry Pi 33b的CPU來說,使用這兩個通道和三個解碼器運行GridTracker是有點吃力的。這就可能造成軟件出現丟包,閃退和緩沖區負載過高的情況。
看完了這篇文章,相信你對“如何利用樹莓派3和RTL-SDR V3搭建一個低成本的QRP小功率監測點”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。