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 miestny
m 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