您好,登錄后才能下訂單哦!
小編給大家分享一下如何利用樹莓派3和RTL-SDR V3搭建一個低成本的QRP小功率監(jiān)測點,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
QRP是無線電通訊簡語中的小功率通訊的代詞,像FT8,JT9,JT65和WSPR這些數(shù)字模式是被設(shè)計用來在全球范圍內(nèi)以低功率發(fā)射和接收的模式(雖然不是每個人都只用低功率)。這些特殊設(shè)計的模式使得即使是微弱的信號也能被接收軟件解碼。2017年發(fā)布的FT8打敗了JT9和JT65一躍成為迄今為止最受歡迎的數(shù)字模式。雖然WSRP的信標模式比建立聯(lián)系的模式強一些,但WSRP也沒有FT8強大。
這些微弱的信號模式除了被用來進行建立聯(lián)系外,也是當(dāng)前高頻傳播條件的重要指標。每個信息包都包含關(guān)于發(fā)送器位置的信息,所以你可以看到你收到的信息包來自何處和距離有多遠。你也不需要像一個“火腿”(業(yè)余無線電愛好者)一樣建立一個監(jiān)測站。作為一個SWL(短波聽眾),僅僅看看你能從多遠的地方接收到信號,以及你能從世界上多少個國家“接收”到信號,就會非常有趣。
通過這個設(shè)置,你將能夠連續(xù)地同時監(jiān)視同一頻段內(nèi)的多個模式(例如,同時監(jiān)視20個FT8、JT65+JT9和WSPR測試儀)。在Linux中創(chuàng)建多通道的方法也可能對其他應(yīng)用程序有用。如果你碰巧有一個upconverter(向上轉(zhuǎn)換器)或一個更好的用于監(jiān)視的SDR,比如SDRplay或Airspy HF+,那么它也可以替代RTL-SDR V3。我們需要的零件如下:
RTL-SDR V3 (或 upconverter, 或其他的 HF & Linux capable SDR)
Raspberry Pi 3 (或是其他類似的SBC平臺)
有網(wǎng)
帶通濾波器(可選,但是建議使用)
高頻天線(這個簡單,長導(dǎo)線就可以)
使用@rtlsdrblog V3加密器進行#FT8監(jiān)視一周,使用90英尺長電線對30m進行直接采樣。3151個獨特的響應(yīng),2836個柵極和86個國家。來自#pskreporter的ADIF并與@GridTracker映射。pic.twitter.com/1c826gDoce
——Johnny(@cuoops) 2018年6月15日
本文我們使用的是Raspberry Pi 3,但是如果你想用其他的和這個類似或是比這個更好的SBC平臺的話也可以。首先我們將通過RealVNC設(shè)置遠程桌面連接的Raspberry Pi 3。
首先給我們的Raspberry Pi 3安裝系統(tǒng),將Raspbian系統(tǒng)燒錄在一張SD卡上,講SD卡插入Pi中,插上鼠標和鍵盤,HDMI顯示器和電源。
開機后進入Raspberry Pi 3系統(tǒng)桌面,打開一個終端輸入sudo raspi-config。在本地化設(shè)置中。將時區(qū)更改為UTC(localisation options -> time zones -> none of the above -> UTC),為你的語言環(huán)境設(shè)置鍵盤,并啟用VNC。
在raspi-config中,同樣在接口選項下啟用VNC。
使用Raspberry Pi RealVNC設(shè)置指令,設(shè)置一個RealVNC查看器帳戶,或者通過本地網(wǎng)絡(luò)連接,在終端使用“ifconfig”記錄下Pi的ip。注意,注意,在上一步中啟用VNC之后,你可以通過RealVNC設(shè)置服務(wù)器,以便在Raspberry Pi任務(wù)欄的右上角登錄。
此時,如果你愿意,可以刪除HDMI監(jiān)視器并連接到Pi / VNC。
接著為你的Raspberry Pi 3安裝軟件
我們先安裝RTL-SDR驅(qū)動。我們需要V3的Keenerd驅(qū)動程序,因為這些驅(qū)動程序是允許我們在直接采樣Q-branch模式下運行rtl_sdr軟件的唯一驅(qū)動程序。這是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
現(xiàn)在重新啟動以應(yīng)用黑名單,并插入您的RTL-SDR。
我們需要使用PulseAudio來創(chuàng)建虛擬聲卡驅(qū)動,我們還需要安裝mplayer來播放音頻。
sudo apt-get install pulseaudio pavucontrol mplayer -y
CSDR是一個DSP函數(shù)庫,我們將用它來設(shè)置多通道接收器。
sudo apt-get install libfftw3-dev -y>cd ~ git clone https://github.com/simonyiszk/csdrcd csdr
在進一步討論之前,對于Raspberry Pi 33,我們建議編輯Makefile并將PARAMS_NEON標記更改為以下內(nèi)容。Makefile可以用“sudo leafpad Makefile”命令打開
-march=armv8-a-mtune=coretx-a53-mfpu=neon-fp-armv8.
同樣在 PARAMS_RASPI 設(shè)置:
-mcpu=cortex-a53-mfpu=neon-fp-armv8.
此時我們并不能確定這玩意兒真的做了什么沒有,但是看起來這段代碼應(yīng)該是用來優(yōu)化Raspberry Pi 33 CPU的。如果你使用的是其他的板子的話,你都需要看看這些設(shè)置在你的板子上都干了點啥。
保存并關(guān)閉這個文件,然后運行
makesudo make install
ncat是一個TCP服務(wù)器,我們將使用它來幫助我們建立一個多通道的接收器。
sudo apt-get install nmap -y
我們將使用Chrony來調(diào)整QRP模式所需的時間偏移量。待會兒討論怎么配置。
sudo apt-get install chrony -y
WSJT-X是一個我們將用來解碼FT8,JT9,JT65和/或WSRP的軟件。瀏覽器上打開WSIT-X的網(wǎng)站頁面,下載用于Raspberry Pi 33的.deb后綴的文件,然后雙擊下載的文件開始安裝。
JTDX是另一個源于WSJT-X的解碼器,有人說它比WSJT-X解碼得更好,有更多的特性。然而,我們發(fā)現(xiàn)JTDX占用了更多的CPU資源,因此在Pi 3上使用它進行多通道解碼是很困難的。在本教程文章中,還沒有為JTDX準備好的.deb安裝文件,因此必須手動編譯JTDX。
下面的編譯說明基于N0KEG的教程,現(xiàn)在看起來有點過時了。
安裝
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 ~
我們首先需要為你想要同時監(jiān)視的每個頻率創(chuàng)建虛擬的音頻接收器。下面的示例將設(shè)置兩個在引導(dǎo)時加載的虛擬音頻接收器。要設(shè)置另一個,只需從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
現(xiàn)在找到”log-level”然后把它改為”log-level = error”.刪除log-level邊的分號。保存后退出。
; log-target = autolog-level = error ; log-meta = no
現(xiàn)在可以通過重新引導(dǎo)或在命令行運行“pulseaudio -k”來重新加載pulseaudio。
現(xiàn)在,在終端窗口中運行下面的命令,使用ncat設(shè)置一個RTL-SDR TCP服務(wù)器。在本例中,中心頻率設(shè)置為14.1 MHz (14100000 Hz)。把這個改成你想要監(jiān)控的頻率。這里有一份完整的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 設(shè)置Q-branch為直接采樣模式。
在ncat -4l上設(shè)置TCP IPv4模式,端口是4952,-k允許進行多個連接,--send-only確保服務(wù)器只發(fā)送數(shù)據(jù)而不接收數(shù)據(jù),并且—allow 127.0.0.1確保只能進行本地連接。
再打開一個第終端窗口/選項卡中運行下面的命令,生成一個SSB USB通道,以14.074 MHz監(jiān)測20M FT8通道。注意“(14100000-14074000)”部分設(shè)置監(jiān)測頻率為“(中心頻率調(diào)諧頻率)”。在這個例子中,我們監(jiān)控14.074 MHz,也就是20M FT8頻率。如果你在監(jiān)測一個不同的波段,并且使用不同的中心頻率,那么在這里改變偏移頻率。利用csdr命令設(shè)置一個USB SSB解碼器。關(guān)于使用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”選項卡,并設(shè)置MPlayer使用“Virtual 0”音頻接收器。
QRP模式(尤其是FT8)要求計算機時鐘非常準確。這是因為信號預(yù)期在特定的時間間隔內(nèi)被發(fā)送和接收。大多數(shù)人使用NTP將他們的計算機時鐘同步到一個精確的時間。如果有網(wǎng)絡(luò)連接,Raspbian會自動同步到NTP。
然而,問題是RTL_SDR,CSDR,和mplayer同時運行在Raspberry Pi 33上時,從輸入到輸出這段過程會產(chǎn)生一段時間大概2-3秒的延遲,而這段延遲是不能存在的。大多數(shù)延遲來自mplayer上的緩沖,這有助于減少CPU峰值時的負荷。WSJT-X規(guī)定數(shù)據(jù)包在正確的時間范圍內(nèi)可以被接收,如果超過了+/- 2秒,就不會解碼它們。
為了解決這個問題,我們需要稍微欺騙一下時鐘,并將系統(tǒng)時間設(shè)置向前調(diào)幾秒鐘。感謝dg0opk讓我們了解了這個方法,它包括用Chrony替換Raspberry Pi 3默認的NTP軟件,而Chrony我們是可以自己配置。Chrony在前一節(jié)中應(yīng)該已經(jīng)安裝過了,安裝它會自動禁用NTP并激活Chrony。使用以下命令打開它的配置文件:
sudo leafpad /etc/chrony/chrony.conf
第一個命令,設(shè)置一下讓它可以有一個大概-2.5秒的偏移量
pool 2.debian.pool.ntp.org iburst offset -2.5
保存配置文件后退出,然后重啟Chrony服務(wù)。
sudo invoke-rc.d chrony restart
打開WSJ-T或者JTDX,進入File -> Settings -> Audio選項卡,設(shè)置聲卡輸入為“Virtual0.monitor”。
WSJT-X設(shè)置為FT8模式,現(xiàn)在你可以用它來解碼信號。
終端輸入“jtdx”打開JTDX也一樣。輸入聲卡的接口設(shè)置成和上面一樣。
WSJT-X使用RTL-SDR V3在Pi 3上以直接采樣模式解碼FT8
如果你沒有看到解碼信息,但是在光譜中看到信號,這個時候嘗試下調(diào)整下你的時間偏移量。然后在WSJT-X數(shù)據(jù)流中應(yīng)該可以看到,數(shù)據(jù)包到達的是太早還是太晚。當(dāng)你獲得解碼數(shù)據(jù)后,相應(yīng)地調(diào)整偏移時間。讓“DT”列的值盡可能的接近0。DT列顯示的是時間偏移量和準確時間。例如,-0.5表示數(shù)據(jù)包比預(yù)期提前了0.5秒。
WSJT-X可以向pskreporter.info/pskmap報告你的位置,這個站點聚集了來自世界各地的QRP位點。在這里,你可以把你的接收器和附近的比較,看看你的天線和設(shè)置怎么樣,并顯示出你的信號能被多少個國家接收到。
要設(shè)置它,只需在WSJT-X的 General settings中輸入您的呼號和maidenhead網(wǎng)格詳情,然后在Reporting選項卡下輸入“Enable PSK Reporter Spotting”。
如果你不是“火腿”,你仍然可以作為一個SWL(短波聽眾)來為網(wǎng)站做貢獻。你的呼號可以是“hamprefix/SWL/city”。在https://pskreporter.info提供了一個示例。你可以在這里找到你的國家。你可以從這個計算器獲得你的Maidenhead網(wǎng)格位置。只用它給你的前四個字符。
多通道檢測FT8 + JT9/JT65
這一步我們將展示怎么樣為附加的一些QRP模式(如JT65、JT9和WSPR)添加同步監(jiān)控。首先我們將會說明如何設(shè)置dg0opk,在他的youtube視頻里講過用這種方法監(jiān)控JT9和JT65。由于JT9和JT65頻段距離FT8只有幾個kHz,我們可以簡單地打開WSJT-X的第二個實例,讓它與FT8解碼器偵聽相同的音頻,然后在WSJT-X中擴展解碼帶寬。
1.要做到這一點,在終端中輸入wsjtx -r jt_decode 打開wsjt-x的第二個示例。
2.在WSJT-X高級設(shè)置中,將接收機帶寬增加到4500赫茲。
3.將模式設(shè)置為JT9+J65,在數(shù)據(jù)窗口中,將“JT65 2500 JT9”設(shè)置為“JT65 4500 JT9”。
FT8 + JT9/JT65 + WSPR
現(xiàn)在要監(jiān)視WSPR,我們需要打開第二個通道,因為WSJT-X可以監(jiān)視的最大帶寬是6000赫茲,WSPR在20m波段比FT8頻率高28.1696 kHz。
打開第二個終端窗口,再次運行ncat命令,確保更改了調(diào)優(yōu)頻率。在下面的示例中,我們將它更改為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”。這里設(shè)置新播放器使用“Virtual 1”音頻接收器。
輸入“wsjtx -r wspr”打開wsjt-x的第三個示例。然后將輸入聲卡設(shè)置為“Virtual1”并且設(shè)置好WSRP模型。此時你的環(huán)境已經(jīng)基本上搭建成功了。
在Raspberry Pi 33上們我們成功的打開并運行了兩個通道和三個WSJT-X解碼實例。如果使用JTDX的話,因為它太占CPU了,我們實際上只能打開一兩個實例。
Grid Tracker
GridTracker是一個很好用的軟件,它可以自動在地圖上標出你的位置。安裝后在命令行運行./GridTracker就可以了。
要為GridTracker設(shè)置WSJT-X,只需進入設(shè)置窗口的Reporting選項卡,并啟用“Accept UDP Requests”。
不過,對于Raspberry Pi 33b的CPU來說,使用這兩個通道和三個解碼器運行GridTracker是有點吃力的。這就可能造成軟件出現(xiàn)丟包,閃退和緩沖區(qū)負載過高的情況。
看完了這篇文章,相信你對“如何利用樹莓派3和RTL-SDR V3搭建一個低成本的QRP小功率監(jiān)測點”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。