Dekódovanie meteorologických sond s Raspberry Pi
Na Githube je už určitý čas dostupný balík
dekódovacích programov od "Zilog80". Je to súbor programov napísaných v
jazyku C. K tomuto balíku napísal "darksidelemm" nadstavbový program v
jazyku python, ktorý realizuje a automatizuje príjem a dekódovanie
meteoroligických sond.
Úpravy:
Tento program popri svojich predností má aj niekoľko
nedostatkov. Na príjem meteorologických sond používam yagi anténu,
preto potrebujem anténu natočiť do správneho smeru. Doplnil som preto
program o funkciu, ktorá z momentálnej pozície sondy vypočíta azimut a
eleváciu a príslušný príkaz cez
USB-COM prevodník vyšle do elektroniky rotátora. Najčastejšie používaný
rotátor pre AZ-EL je Yaesu G-5400, alebo G-5500 ktoré používajú
protokol
GS232, preto aj v tomto programe je implementovaný tento protokol.
Ďalšia funkcia, ktorá bola doplnená, je upozornenie
na sondu, ktorá priletí do blízkosti, a je predpoklad na jej odlov.
Medzi parametrami je možné určiť rádius upozornenia. Samozrejme toto
upozornenie je aktívne len v zostupnej časti letu. Upoznenie je možné zvýrazniť malým hardvérom, ktorého výkres je tu. Pri každom výpise upozornenia, sa ozve krátke pípnutie a LED svieti trvalo až do nového termínu vypustenia sond.
Program bol doplnený aj o "čiernu listinu". Do
tohoto zoznamu je možné zaradiť take kmitočty, ktoré zaručene
nepochádzajú od sond, ale od miestnych rušení. Tento zoznam zrýchli
hľadanie sond, pretože program nestráca čas hľadaním sond na takom
kmitočte, kde v skutočnosti sonda nie je.
Ďalšia funkcia, ktorá bola zabudovaná do programu,
je takzvaný "biely zoznam". Ak tento zoznam nie je prázdny, program
vyhľadáva sondy len na uvedených frekvenciách.
Ďalší zoznam je "sivý zoznam". Keď tento zoznam nie
je prázdný, tak program hľadá tak, ako podľa bieleho zoznamu, ale na
konci ešte spusti aj normálne vyhľadávanie. Tento spôsob je užitčný,
keď poznáme kmitočty blízkych sond - najde ich skôr, ale chceme mať
istotu že nezmeškáme ani sondu na náhodnom kmitočte (napr. viedenskú,
kde na kmitočet nie je záruka).
V pôvodnom programe sa nedala nastaviť citlivosť
prijímača. Hociaký parameter sme napísali na parameter rtlsdr_gain,
prijímač bol vždy nastavený na maximálnu citlivosť. Aj tento nedostatok
bol odstránený.
Tento program dekóduje pozíciu sond RS-92 podstatne
presnejšie ako napríklad program Sondemonitor, je preto užitočné tento
program používať aj pri hľadaní sondy. K tomu ale potrebné, aby program
mal dostupný internet odkiaľ môže stiahnúť potrebné ephemeris alebo
almanach data. V teréne ale nie je vždy internet dostupný. Bez
internetu pôvodný program prestane pracovať. Upravený program to
neberie až tak vážne, a keď zistí, že internet nie je dostupný, tak
skúsi používať posledný dostupný súbor. Samozrejme k dekódovaniu
presnej polohy sú potrebné čo najnovšie dáta, preto je potrebné pred
odchodom na lov stiahnuť najnovšie súbory z internetu.
Program po spustení začne hľadať sondu. Urobí toľko
pokusov, koľko je nastavených parametrom "search_attempts". Ak sondu
nenájde, tak prejde do stavu kľudu, keď program čaká na najbližší
termín vypustenia sondy. Termín je vždy o 12:00 a 24:00 prípadne aj
6:00 a 18:00 miestneho
zimného času. (V letnom období o 13:00 a 01:00.) Termíny vypustenia
sond treba nastaviť medzi parametrami ako launch_time. Uvedený režim
platí vtedy keď program bol spustený bez parametra -t. Ak chcete voliť
iný režim, tak program treba spustiť s parametrom -t (viď význam
parametrov na konci textu).
Výsledok dekódovania okrem obrazovky, program vie
posielať aj na sieť iGate (aprs.fi), na habhub.org alebo na ozi_plot.
Posielať na habhub však nedoporučujem a ozi_plot je austrálsky systém v
našich končinách nepoužívaný. Zôstane nám možnosť údaje posielať na
aprs.fi. K tomu tiež treba mať prístup do systemu iGate a mať heslo,
ale vybaviť to nie je žiadny problém. Časový interval posielania údajov
nastavíme v "station.cfg" parametrom "upload_rate". Program však
sleduje údaj o výške a rýchlosti sondy a ak výška sondy je menšie ako
10000m alebo horizontálna rýchlosť väčšia ako 20m/s, program nastavený
časový interval znižuje na polovicu. Ak výška sondy je nižšia ako
2000m, tak časový interval sa znižuje na 1/4 pôvodného intervalu. Tento
časový interval však nikdy nebude kratší, ako 10s.
K tomu, aby nové funkcie pracovali správne, je
potrebné nové parametre nastaviť v súbore "station.cfg". Hlavne treba
nastaviť vlastnú polohu a nadmorskú výšku. Ak chceme používať aj
rotátor, tak treba ho povoliť tiež. Rovnako môžeme určit aj východziu polohu rotátore. Po sledovaní programu pri hľadaní
sondy môžeme zistiť, ktoré kmitočty sú falošné a nepochádzajú od sond.
Tieto kmitočty môžeme zapísať do čiernej listiny. K tomu, aby program
sa zobudil zo spánku v potrebnom okamžiku, treba nastaviť aj
"time_zone", kde napíšeme časový rozdiel medzi UTC a miestnym zimným časom.
Ak pre parameter search_attempts nastavíme nulu, tak
program bude sondy hľadať nepretržite, ignoruje parametre -t a
launch_time.
Postup inštalovania programu:
Tento programový balík beží pod operačným systémom raspbian. Bol odskúšaný so starším OS Jessie aj s novším Strech.
Je lepšie používať verziu lite, tak nezaťažujeme procesor zbytočne s grafikou.
Inštalácia potrebných súborov:
Keď program inštalujeme na starší operačný systém, tak neuškodí to inovovať
:
Ak aj operačný systém sme inštalovali teraz, tak ďalšie 2 riadky preskočíme.
sudo apt-get upgrade
sudo apt-get update
Celý rogramový balík môžeme nainštalovať automaticky pomocou súboru install.sh:
wget www.om3bc.com/docs/RS/install.sh
chmod a+x install.sh
./install.sh
Ak celý rogramový balík už bol raz nainštalovaný, a chceme preinštalovať len program RS, tak stiahneme súbor: rs-install.sh:
wget www.om3bc.com/docs/RS/rs-install.sh
chmod a+x rs-install.sh
./rs-install.sh
alebo manuálne nasledujúcim spôsobom:
sudo apt-get install rtl-sdr
sudo apt-get install sox
sudo apt-get install python-numpy
sudo apt-get install python-serial
sudo apt-get install python-crcmod
V nových OS sú už niektoré komponenty predinštalované.
Inštalovanie programu RS:
mkdir RS
cd RS/
kopírovať súbor autofile.tar.gz do knižnice RS.
rozbaliť súbor autofile.tar.gz do adresára RS takto:
gunzip autofile.tar.gz
tar -xf autofile.tar
rm autofile.tar
otvoriť súbor:
nano station.cfg.example
prepísať parametre podľa potreby
uložiť ako station.cfg - bez .example
spustenie:
python auto_rx.py 2>error.log
Keď sa program nerozbehne, alebo sa zasekne, tak v súbore error.log nájdeme príčinu zlyhávania.
K nastaveniu automatického spustenia:
sudo nano /etc/rc.local
pred riadok exit0 treba napísať:
#RS
sleep 10
sudo -u pi /home/pi/RS/start.sh &
alebo keď Raspberry je bez displeja a je ridený dialkovo, tak:
sudo -u pi /home/pi/RS/start_sc.sh &
v tomto prípade po pripojení do príkazového riadku treba napísať:
screen -r auto_rx
uložiť súbor príkazom: CTRL X / Y / Enter
cd RS/
sudo chmod a+x *.sh
sudo chmod a+x rs_detect
sudo chmod a+x rs41mod
sudo chmod a+x rs92mod
sudo chmod a+x dfmmod
sudo chmod a+x m10mod
sudo chmod a+x m12mod
sudo chmod a+x reset_usb
Aby po určitom čase displej nevypol:
sudo nano /boot/cmdline.txt
V súbore je jeden jediný riadok. Na koniec tohoto riadku dopísať:
consoleblank=0
uložiť súbor
Program je možné spustiť bez parametrov, alebo používať tieto parametre:
-t čas -- doba behu programu. Keď program v danom časovom intervalu nenájde sondu, tak beh programu sa preruší
-f kmitočet -- keď nastavíme konkrétny kmitočet, tak program sondu bude hľadať len na uvedenom kmitočte
-c konfig.súbor -- ak chceme používať na konfiguráciu programu iný súbor ako station.cfg, tak sem treba napísať meno súboru
príklad: python auto_rx.py -t 180 2> error.log vyhľadávanie sondy v
intervale troch hodín od spustenia programu. Ak v tom čase nájde sondu,
začne ju dekódovať. Ak sa sonda počas nastaveného času nenájde, program
sa zastaví.
Prednastavená hodnota pre -t je 0.
Ak chcete vidieť sondu, ktorú sledujete na mape aprs, musíte najprv
získať prístup do siete iGate. Na základe toho je potrebné nastaviť
parametre aprs_user a aprs_pass. Ďalšou možnosťou je použitie mapy
ukhas. Mapu ukhas neodporúčam z dvoch dôvodov. Za prvé, vyžaduje
samostatnú konfiguráciu, za druhé, webová stránka nebola vytvorená na
tento účel, a meteorologické sondy tam nie sú výtané.
Predkompilovaný upravený program na Raspberry Pi2 alebo Pi3:
obrazový súbor SD karty
inštalačný súbor celého balíka
inštalačný súbor programu
autofile.tar.gz
výkres
Pôvodné programy:
https://github.com/rs1729/RS
https://github.com/darksidelemm/RS