|
|
Všeobecně
Desítky let jsem používal pro tento účel
nádherný program Nova for Windows od NLSA. Nic však netrvá věčně. A
tak se jednoho květnového dne v roce 2026 stalo, že si můj oblíbený
program nedokázal potřebná TLE data aktualizovat ze serverů Celestrak.
Rozhodl jsem se tedy ke stažení a instalaci jedné z dříve vyzkoušených
desktopových aplikací (ta druhá se jmenuje
Orbitron). Volba padla na
Gpredict (stránka programu je
zde). Program se stahuje
například na Sourcefoge. Co to jsou
TLE
(Keplerian Elements) jsem kdysi vysvětlil zde.
Instalace
Program se nikam neinstaluje. Stačí
rozzipovat stažený balíček a uložit ho do pracovní složky:

V pracovní složce jsem si vytvořil zástupce,
kterého jsem propojil na plochu, protože přeci jenom používám tento
program několikrát denně.
|
|
První spuštění a základní nastavení
Při prvním spuštění je třeba jednoduše
nastavit několik důležitých věcí z Menu - Edit - Preferences:
1. Odkaz na tzv. TLE data, aby Gpredict počítal s aktuálními
keplerovskými daty. Já používám tzv. dailytle soubor, který je pro
radioamatéry aktualizován denně organizací AMSAT.
2. Vlastní QTH, tj. QRA lokátor ze kterého si program vypočítá
zeměpisné souřadnice pozorovatele na Zemi, pro kterého počítá
oběhy družic.
3. Několik nastavení, aby program zobrazoval to, co potřebujeme.
|

|
|
Nastavení TLE souboru ze serverů
AMSAT
Nastavíme si v sekci Preferences -
General - TLE Update pomocí tlačítek Add/Delete TLE source
adresu na server AMSAT s potřebným souborem - viz obrázek.
Na serveru
jsou data uložena v textovém souboru, můžeme si je prohlédnout.
Na serveru jsou uložena i data bez
hlavičky, příklad uvádím zde.
Data TLE pro jeden satelit vypadají
takto:

Po nastavení provedeme Update TLE data from network.
Nastavení vlastního QTH stanoviště
se dělá rovněž z
Preferences, z položky Ground
Stations.
Nastavení zobrazení
se dělá z menu Predict. Můj postup
spočívá v tom, že si zvolím a pojmenuji nový modul. V tomto modulu
si vyberu satelity, které mě zajímají. V mém případě jsou to
satelity ISS, RS-44 a QO-100. Starý defaultní modul kliknutím
zavřu, aby se mi zobrazoval jen ten můj nový a ten si nastavím
tak, aby mi zobrazoval pozice (nebo dráhy) satelitů na mapě, v
radarovém zobrazení dráhu s časovými údaji a některé vybrané
tabulkové hodnoty (azimut, elevace, Doppler@100MHz).
Některá nastavení se na obrazovce projeví bezprostředně, jiná až
při dalším spuštění programu. Prorgam je malý, rychlý a startuje
okamžitě.
|
 |
|
Příklad zobrazení:
|
|
|
 |
|
|
|
Další nastavení
|
Program má v menu Preferences položku
Interfaces. Tam se nastavuje rozhraní pro komunikaci s
rotátory a rádii. Gpredict používá hamlib knihovny.
Vyzkoušíme si komunikaci s SDR++
Na obou zařízeních nastavíme:
IP adresu: 127.0.0.1 (localhost)
Port: 4545 (používám já, ale myslím, že
standardně pro rádia je 4522)
Spustíme SDR++ a zapneme naslouchání
serveru.
V Gpredict spustíme Radiocontrol (najdeme v menu vpravo
nahoře, je ukryté pod trojůhelníčkem).
Po otevření dialogového okna Radio
Control klikneme nejdříve na tlačítko Track a potom na
Engage.
Potom začne Gpredict počítat Dopplerův posun.
Poznámka:
1. Je třeba v Gpredict nastavit
správný transpondér satelitu.
2. V SDR++ si naladíme (myší) pracovní kmitočet ve spektru a
Gpredict nám ho bude dolaďovat. |
 |
| |
|

|
Vyzkoušení komunikace TCP s programem Gpredict
Protože je program Gpredict opravdu
dost dobrý, budeme ho chtít používat i jinak. Například nám
může poskytovat data o Dopplerovském posunu kmitočtu do naší
aplikace. Abychom se k tomu dopracovali, musíme si umět
upravit konfigurační soubor s transpondéry (*.trsp).
Na obrázku vpravo vidíte, kam ho Gpredict schoval a jak ho
označil. Označil ho číslem Norad satelitu. Takže pro satelit
RS-44 ho najdeme jako 44909.trsp
Změny v něm uděláme textovým
editorem. Vidíte, že jsem si udělal změny u V/U transponderu.
A to takové, že jsem vyrobil rozmezí kmitočtů pro uplink a
downlink tak, aby byly v pásmu od 9 MHz do 11 MHz. Nebo je
můžeme udělat pro pásmo od 90 MHz do 110 MHz, pokud bychom
chtěli počítat Dopplera pro 100 MHz (to používám já).
Jak Gpredict komunikuje?
Komunikuje jako TCP klient a používá
nějakou hamlib knihovnu. Umí se připojit jenom k jednomu
serveru TCP. Skript pro TCP server (TcpListener) bývá jednoduchý a syntaxe s
využitím knihoven v různých vývojových prostředcích bývá
známa. Než se však začneme trápit se skriptem, bylo by dobré
tuto TCP komunikaci ověřit a vyzkoušet.
Já jsem si komunikaci zkoušel v
oblíbeném Herkules terminálu, na portu 4545 (tem musí být
nastaven i v Gpredict).
Zkouška TCP komunikace z Herkules
terminálu
Vyžaduje trochu zručnosti, protože
Herkules terminál má jen jedno okno Send. Musíme tedy rychle a
správně psát.
1. Spustíme Herkules terminál v
záložce TCP server - viz obrázek vpravo.
2. Spustíme Gpredict s upraveným konfiguračním souborem
transpondérů (viz předchozí odstavec).
3. Spustíme Radio Control v Gpredict. Najdeme to v menu vpravo
nahoře (takové malinké bikinky vedle křížku).
4. Nastavíme Target (satelit na RS-44) a transponder na V/U.
5. Klikneme na Track, potom na Engage.
Až se hamlib klient ze všeho vzpamatuje a zmůže, odpoví nám do
Herkules terminálu informací o frekvenci ve tvaru např. F
99999190
6. Očekává od nás potvrzení. Odešleme z okna Send RPRT 0.
7. Gpredict odpoví znakem f (dotaz na frekvenci).
8. Vždy na znak f odpovíme hodnotou frekvence, tedy zde
10000000
9. Pokud Gpredict znovu odpoví f, opět mu pošleme 10000000.
Pokud to zpracuje, provede v modulu Radio Control výpočet
frekvence k korekcí na Dopplera a pošle nám hodnotu ve tvaru F
99999190.
Takže, komunikaci s Gpredict a jeho
klientem z hamlib knihovny lze vyzkoušet ručně z terminálu
Herkules. Pokud při zkoušce něco zmastíme, odešleme chybný
příkaz apod. Gpredict se nám odpojí od serveru.
To poznáme, že pošle znak "q".
V takovém případě nám nezbyde nic
jiného, než komunikaci klienta z menu Radio Control pustit
stisknutím na Engage znovu.
Nicméně, komunikaci vyzkoušet lze.
Během takové zkoušky ji pochopíme a máme další pevný bod ve
vesmíru, o který se můžeme opřít, až budeme programovat skript
nebo proceduru našeho programu.
Poznámky:
1. Při ručním zkoušení vidím, že Gpredict, resp. hamlib dává
za znakem F nějak hodně mezer. Ale vždycky vypadlo celé číslo
a poslední číslice udávala hodnotu v Hz. Takže, s ohledem na
účel si dělám parsing např. z posledních 7 nebo 8 číslic:

2. Dopplerův posun kmitočtů má lineární závislost. Já s ním
pracuji například tak, že si ho v programu Gpredict vypočítám
v daném čase, v mém QTH a pro požadovaný satelit na kmitočtu
100 MHz. S tím se dá pracovat tak, že například pro uplink na
kmitočtu 145.9 MHz musím hodnotu vynásobit 1.459 krát nebo pro
downlink na 435 MHz násobím 4.35 krát.
3. Pro práci na lineárních SSB
satelitech považuji za
nejlepší správnou praxi kompenzaci Dopplera na straně vysílače.
Potom se nám kmitočet ve spektru panoramatického přijímače ani
nehne a ladíme se s maximálním komfortem tak, jako při pozemním
vysílání a nemusíme protistanici nahánět po pásmu. Pro satelit
RS-44 násobíme posun vypočtený pro 100 MHz číslem 5.81605, pro
satelit FO-29 číslem 5.818, atd.
|
 |
| |
|
 |
|
Spolupráce s Gpredict přes hamlib
Tato část se nám může hodit v případě, že si píšeme
vlastní skript, například kontrolér.
Vřele doporučuji:
1. Nastavit z PowerShellu trvalou cestu do adresáře, ve
kterém jsou exe soubory hamlib:
setx PATH "$env:PATH;C:\Program Files\hamlib-w64-4.7.1\bin"
2. Spustit démona hamlib s těmito parametry:
Start-Process -FilePath "rigctld.exe" -ArgumentList "-m 1
-t 4545 -T 127.0.0.1" -WindowStyle Hidden; Start-Sleep
-Seconds 1; rigctl -m 2 -r 127.0.0.1:4545 F 100000000 M FM 0
|
 |
|
3. Význam parametrů v
ArgumentList - viz text vpravo.
4. Jak to vyzkoušíme?
Po spuštění démona můžeme zkusit připojit Gpredict, nastavený
podle předchozí uvedené konfigurace, se spuštěným Radio
Control a například jeden nebo dva terminály Herkules.
Na Radio Control nezapomenout na "Track" a "Engage".
V popsané konfiguraci to začne běžet, počítá to Dopplera pro
100 MHz. Na kmitočet s posunutím podle Dopplera se můžeme
ptát z terminálů Herkules odesláním "f". Obdržíme čísla, ve tvaru:
100000630; 100000632; ...; 100000639, tak, jak vidíme na
terminálu. |
-m1 ... bez fyzického rádia na
portu COMxx, tzv. režim Dummy;
-t 4545 ... číslo portu, na kterém jede hamlib Daemon
-T 127.0.0.1 ... IP adresa jako localhost
dále: skryté dosovské okno ve Windows; prodleva 1s
Start-Sleep, aby si to "sedlo"
rigctl -m2 ... znamená spuštění rigctl pro připojení
zařízení s TCP socketem, tedy to, co najdeme v terminálových
programech jako TCP klient, co je schopné poslat textové řádky
zakončené LF a přečíst znakové řetězce - viz obrázek dole;
-r ... localhost:4545 a stejný port;
F ... hodnota Frekvence, kterou to šoupne prvně do Gpredict;
M FM 0 ... nastavení módu (v příkladu FM)
|
|

Přesně podle zde popsaných pravidel
si můžete napsat ve svém programu jednoduchou proceduru, která
spustí démona hamlib, po připojení démona odpoví potvrzením
RPRT 0 a začne se v pravidelných intervalech (já používám 1000
ms) ptát na frekvenci s vypočteným posunem podle Dopplera.
Je
to spolehlivé. Jeden z algoritmů, který používám já, jsem
uvedl v popisu
kontrolérů pro LEO sats. |
 |
Popis jednoduchého testovacího programu a algoritmu
ve Visual Basic
|
|
|
Jednoduchý tester jsem napsal ve
Visual Basic. Můžete si
stáhnout zip, který obsahuje zdrojový kód pro Visual Studio i
spustitelný program.
Procedura se jmenuje SendHamLib, vypadá takto:
 |

Dělá
se s tím takto:
- kliknutím na "E" odešleme do démona Hamlib hodnotu
kmitočtu v kHz.
- kliknutím na "R" vyčteme hodnotu kmitočtu z démona;
- hodnota F se zobrazí v okně a taky v horním pruhu okna
testeru.
Pokud je připojen Gpredict a jezapnuto Trace a Engage,
zobrazuje nám to hodnotu korigovanou s ohledem na Dopplera.
Předpokládám, že toto je nejjednodušší cesta, jak dostat do
svých satelitních aplikací exaktně vypočtené hodnoty posunu
kmitočtů podle Dopplera a s využitím precizních NORAD
SGP4/SDP4 algoritmů a napsat si proceduru pro řízení Dopplera
na straně vysílače TX tak, aby to odpovídalo
kodexu nejlepší možné
praxe. |
|
|
|
|
|
|
Porovnání programů Gpredict a
Orbitron Každý z programů plní
základní funkce, které potřebuji. U obou programů se snadno
nastavují základní data (QTH, požadované satelity a získávání TLE
dat). Rovněž nastavení zobrazení je přiměřeně jednoduché a rychlé. Když přijdu k PC, zapínám
Gpredict, protože v něm okamžitě vidím následující AOS (Next AOS),
tedy čas, kdy sledovaný satelit zase vyjde nad obzor a bude možné
pracovat. Rovněž na jedno kliknutí si mohu zobrazit tzv. pass
details, tj. data, polární (radarové) zobrazení s časovými údaji,
či tabulku Az/El. Tohle v Orbitronu není okamžitě zřejmé a řešit
výpočty předpovědí je obvykle zdržující a méně přehledné.
Když se přiblížil bod AOS, tak zapnu SDR Console, vysílač Icom,
můj kontrolér a připojím se ke Gpredict.
Závěr Gpredict se pro mě stal první
volbou pro můj malý satelitní LEO
setup, protože je:
- přehledný, jednoduchý a malý;
- bere aktualizace TLE on-line ze serveru Amsat; tam je mají v
textovém souboru, ale formát Unix (jen LF na koncích řádků);
- a "zmohl" jsem ho na tolik, že z něho umím vydolovat (sice skrz hamlib, který nemám vůbec rád)
informace o Doppleru pro konkrétní satelit. |
|
|
|
|