Od dob bratří Wrightů, kdy se po obloze prohánělo pouze všelijaké ptactvo, a občas vzbudila pozornost vzducholoď, se nám ve výhledu směrem vzhůru mnohé změnilo. Každý den vzlétne několik set tisíc letadel různých typů, které ročně přepraví přes tři miliardy pasažérů. Pro zajištění přehledu o provozu na jednotlivých letových hladinách i letištích samotných, byl vyvinut systém ADS-B, který rozšiřuje tzv. sekundární přehledový radar. Každé letadlo, až na specifické výjimky, vysílá v definovaných intervalech přesnou polohu, která je získána z GPS, svou identifikaci, a další více či méně důležité informace. Díky ADS-B má pozemní řízení letového provozu (ATC), a okolní letadla, přehled o stavu ve vzduchu.
Pro systém ADS-B (Automatic Dependent Surveillance – Broadcast) je zejména vyhrazen pracovní kmitočet 1090 MHz, za určitých podmínek i 978 MHz. Nicméně v našich končinách nás zajímá pouze 1090 MHz.
ADS-B využívá informací o poloze z GPS. Díky tomu lze přesně určit pozice letadla vzhledem k jakémukoli místu na Zemi. Ostatní informace, jako teploty, počasí, apod. jsou získávány z palubních počítačů.
Protokol, který je využíván pro ADS-B je standardizován a přesně popsán. Proto není větším problémem vysílané informace přijímat a dekódovat poměrně jednoduchým zařízením. Kromě profesionálních přijímačů, kterými jsou vybavována letadla, a mají možnost předvídat kolize (TCAS/ACAS), existují komerční přijímače pro amatéry, které jsou vybaveny velkým přehledovým displayem zobrazující jednotlivá letadla na mapovém podkladu.
Podobné zařízení si lze také postavit v čistě amatérských podmínkách. Tuto možnost využijí zejména zájemci o leteckou techniku, kteří by rádi věděli, jaké letadlo právě letí nad jejich hlavami. V dnešní době není problém na svém chytrém telefonu provozovat aplikace jako Flightradar24 či FlightAware, které jsou schopné potřebné informace zprostředkovat. Nicméně někdo rád získá přesná data přímo od prolétajícího stroje.
Dosah
V případě přijmu dat ADS-B je nutné si uvědomit, že při kmitočtu 1090 MHz je již potřeba přímé viditelnosti na zdroj, tedy letadlo. Samozřejmě je možné zachytit signál i např. pod střechou, bude ale silně utlumen. Na druhé straně výhodou je, že letadla létají v letových hladinách až do cca 14 000 m n. m., a proto je možné přijímat signál z opravdu velké vzdálenosti. Ta je ve volném terénu bez překážek limitována zakřivením Země. Maximální vzdálenosti dosahu se mohou pohybovat až okolo 500 km. Pokud se budeme pohybovat v zarušeném prostředí, města nebo místa s rozsáhlou průmyslovou výrobou, možnosti příjmu budou dále degradované.
Technické vybavení – hardware
Příjem signálu není ani v případě ADS-B jednoduchou záležitostí, protože přijímaný signál je často na hranici šumu. Pojďme si ale jednotlivé části signálové části popsat detailněji.
Anténa
Pro bezproblémový příjem je potřeba určité vybavení. Pasivním prvkem je anténa, která je schopna přijímat kmitočet 1090 MHz. Takovou anténu si můžeme zakoupit, popřípadě vyrobit. Kromě provozovaného kmitočtu je potřeba zmínit, že vysílání probíhá s vertikální polarizací. Pro naše účely použijeme všesměrovou anténu. To z toho důvodu, že budeme přijímat signál ze všech směrů. Samozřejmě máme možnost připojit anténu směrovou, ale taková možnost je vhodná pouze v případě příjmu signálu pouze z určitého směru, např. z letištní plochy.
Impedance může být 50 Ω nebo 75 Ω. Pokud použijeme napáječ (koaxiální kabel) s jinou impedancí než má anténa, měli bychom použít přizpůsobovací člen/transformátor. Pokud to neuděláme, nikdo nám hlavu trhat nebude a přijímat budeme také, musíme ale počítat s nižším ziskem.
Na obrázku je kolineární anténa se ziskem cca 5,3dBi, která je vyrobena z Cu drátu průměr drátu 3 mm. Pokud by byla umístěna do umělohmotného krytu, nebo vyrobena z izolovaných vodičů, z plastem zakrytých délek bychom odečetli cca 5 % (bez proměření antény nelze přesně odhadnout). To proto, že plast se také částečně podílí na přenosu elektromagnetické vlny (viz odstavec filtry, zkracovací činitel). Plast pro použití ve venkovním prostředí vybíráme UV stabilní PVC. Pozor na samozhášivé typy, protože obsahují nejčastěji směs vápníku a zinku, a proto nejsou pro rádiové vlny vhodným společníkem. Pokud ale nemáme jinou možnost, použijeme. Impedance je 50 Ω.
Existuje několik typů kolineárních antén, ale pro příjem ADS-B postačí i jednoduchý půlvlnný dipól, λ/4 nebo anténka, která bývá přibalena k USB DVB-T přijímači. U té ale žádný větší dosah předpokládat nelze. Pouze si ověříme, že s naší konfigurací dokážeme přijímat signál ADS-B.
Anténu umisťujeme co nejvýše nad okolní terén. Díky tomu budeme přijímat signál z větší vzdálenosti. Každý výškový metr může hrát určitou roli. Je zde jedno ale. Blízké silné vysílače pracující na harmonických kmitočtech mohou příjem zarušit. Typickými představiteli jsou GSM, LTE a DVB-T. Tento problém bohužel nelze efektivně eliminovat. Dále se mohou vyskytovat zdroje s podobným kmitočtem kolem 1000 ± 200 MHz . Tím je zpravidla LTE. Takový signál dokáže přebudit vstupní obvody vlastního integrovaného přijímače nebo zesilovače. V tomto případě poslouží vhodný filtr – pásmová propust pro kmitočet 1090 MHz. Takový filtr lze zakoupit, vyrobit nebo…
Filtr
… nebo použijeme tzv. čtvrtvlnný zkrat. Je to vlastně odbočka na koaxiálním kabelu o délce λ/4.
Výpočet je jednoduchý. Vlnová délka pro kmitočet 1090 MHz je 0,275 m. Čtvrtina = 68,8 mm, tu ale musíme ještě vynásobit zkracovacím činitelem vf (velocity factor), který je definován pro každý koaxiální kabel – je nutné se podívat do datového listu. Zkracovací činitel udává, jaká je rychlost přenosu informace v kabelu oproti vakuu, např. v mém případě 0,82 (82 %) pro Belden H126. Výsledná délka včetně konektoru je 56 mm. (Ano, používám anténu s impedancí 50 Ω a koaxiální kabel s impedancí 75 Ω bez přizpůsobení, ideální to není, ale lze.)
Tento „pahýl“ propouští kmitočet pro který je vyroben ± 10 %. Ostatní jsou utlumeny. Přesněji, propouští definovaný kmitočet + jeho sudé harmonické. (Ponecháme-li konec odbočky rozpojený – open end, je efekt opačný, tedy, příslušný kmitočet a jeho harmonické jsou zadrženy. V tomto případě se samozřejmě středový vodič odbočky nezemní.)
Velkou výhodou je, že pokud odbočku (nebo T adaptér) uzemníme, získáme jednoduchou ochranu proti statickému napětí, které může poškodit zesilovač nebo přijímač. Ale pozor, není to ochrana proti blesku! Nezemníme ke svodům hromosvodu, ale k ekvipotenciální sběrnici. Samotná anténa a koaxiální kabel musí být instalovány v ochranném úhlu hromosvodu. Nikdy nemůžeme důvěřovat představě, že pokud je anténa v nevodivém plastovém obalu, je dostatečně chráněna před úderem blesku.
Pokud po koaxiálním kabelu napájíme stejnosměrným napětím nějaké zařízení, nikdy nesmíme připojit čtvrtvlnný zkrat mezi napájecí zdroj (t-bias, fantom) a např. zesilovač. Podobně jako filtr postavený pro 1090 MHz, tak i čtvrtvlnný zkrat zapojíme před samotný zesilovač.
Koaxiální kabel
Kabel použijeme kvalitnější vysokofrekvenční. Opět vybíráme také podle vhodné impedance. V mé instalaci používám Belden H126 Cu nebo Draka 1.13/4.8 Cu. Důležitým parametrem je útlum kabelu při 1 GHz. Obecně lze říci, že lze použít koaxiální kabel pro WiFi a satelitní příjem. O něco více zde.
Nalezneme-li kabely typu RG-58, RG-174 a podobné, necháme si je raději na krátké propojky.
Jelikož koaxiální kabel pracuje také jako anténa, snažíme se o co nejkratší délku signálového vedení.
Zesilovač
Použití zesilovače pro „umělé“ zvýšení dosahu samozřejmě lze, ale často to není nutné. Můžeme použít běžný širokopásmový vysokofrekvenční zesilovač (Mini-Circuits PSA4-5043+, Hittite HMC599), nebo typ s integrovaným filtrem pro 1090 MHz. Opět by měla být impedance stejná jako v případě koaxiálního kabelu.
Napájení zesilovačů bývá provedeno externím konektorem nebo po koaxiálním kabelu.
Potřebný zisk nelze přesně odhadnout, ale vyhoví asi prakticky každý nízkošumový zesilovač se ziskem cca 20 dB.
Přijímač vysokofrekvenčního signálu
Na trhu nalezneme nepřeberné množství vhodných přijímačů. Já se ale budu věnovat pouze jednomu, a to tzv. SDR (softwarově definované rádio), DVB-T přijímači s Realtek RTL2832U a Rafael Micro R820T.
Tento DVB-T přijímač dokáže kromě televize přijímat kmitočty v rozmezí 24 až 1766 MHz. Tím pádem pokrývá i 1090 MHz. Velkou devizou je cena, která začíná kolem 170 Kč. K dispozici je např. na eBay. Poprvé jsem se o tomto přijímači zmínil při popisu příjmu DVB-T a distribuci po IP.
Vstupní impedance je 75 Ω. Pro připojení k PC slouží USB port. Přes vhodný adaptér je možné přijímač připojit i k chytrým telefonům s podporou OTG.
Uživatelé GNU/Linux ocení existenci ovladačů ve stabilních jádrech. Pokud zařízení použijeme jako SDR ve Windows, musíme originální ovladače nahradit libusb (projekt Zadig). Z menu Options vybereme volbu List All Devices. V rozbalovacím boxu se zobrazí RTL2838UHIDIR. Položku vybereme a ověříme, zda je původní ovladač RTL2838UUSB a nový WinUSB. Pokud je tomu tak, klikneme na tlačítko Replace Driver. Tímto způsobem jsme zaměnili původní ovladač přijímače za nový, který zpřístupní zařízení jako SDR.
Výpočetní systém
Přijatý signál musíme zpracovat programovým vybavením na vhodném výpočetním systému – počítači, embedded zařízení apod.
Často se setkáváme s popisem příjmu ADS-B na Raspberry Pi. Já ale zajdu ještě dále do historie. Pro ADS-B používám Alix 3D3. Obsahuje i586 CPU AMD Geode LX800 pracujícím na 500 MHz a 256 MB DDR DRAM. Vytížení CPU je někde okolo 91 %. I přesto je možné na zařízení běžně pracovat (používám ho jako NAS se SMB; operační systém Arch Linux).
Programové vybavení
Přijímací cestu se všemi komponentami máme postavenu. Nyní přichází na řadu zpracování přijatého signálu programovým vybavením, zobrazení letadel na mapě, ale také přispívání přijatými daty celosvětové komunitě.
Zpracování signálu v mém případě probíhá na operačním systému Arch Linux. Jádro umožňuje použít přijímač s RTL2832U jak pro DVB-T, tak jako SDR. Pro SDR není potřeba žádného zakazování jaderných ovladačů DVB-T. S tím mám (22. 9. 2016) v nejnovějším vydání Ubuntu problém – nezvládá to stejně dobře jako Arch Linux.
dump1090
Důležitým předpokladem pro běh SDR je instalace balíku rtl-sdr
. Příslušné knihovny jsou využívány ostatním SW. Vlastní zpracování přijatého signálu zajišťuje program dump1090 (dump1090-mutability-git) , který je dostupný z repositáře AUR.
Během instalace je automaticky vytvořen uživatelský účet dump1090, který slouží pro spuštění služby dump1090-mutability
. Službu je možné nastavit parametry v souboru /etc/dump1090-mutability
.
1 |
DUMP1090_OPTS="--quiet --net --gain -10 --enable-agc --modeac --fix --phase-enhance --mlat --oversample --max-range 600 --lat 48.332 --lon 14.283 --net-bi-port 30104 --write-json /var/lib/dump1090 --write-json-every 10" |
Jak je možné poznat z mé konfigurace, je možné nastavit např. vlastní GPS souřadnice umístění přijímače a adresář (write-json
), kam bude každých write-json-every
sekund služba zapisovat aktuální informace. Ty lze následně zobrazit na mapě, viz dále nginx. Adresář musí vlastnit uživatel dump1090.
Používáme-li MS Windows, můžeme přeložené binární soubory stáhnout z adresy https://github.com/MalcolmRobb/dump1090. Před spuštěním ale musíme nainstalovat ovladače libusb (viz Zadig). Aktuální verze pro Windows (dump1090-win.1.10.3010.14.zip) obsahuje chybu, při které je mapa provozu (localhost:8080) prázdná. Problém se nachází v adresáři public_html
. Opravit ji můžeme nahrazením původních souborů z dump1090-win.1.10.3010.14.zip celým adresářem public_html
z https://github.com/MalcolmRobb/dump1090. Nevím proč autor nevytvořil archiv znovu, ale je tomu bohužel tak.
Vraťme se ale k Arch Linux. Na svém serveru Alix 3D3 také pro lokální síť provozuji jednoduchý webový portál, který využívá službu nginx. Ve výchozím nastavení dump1090 čeká na spojení z internetového prohlížeče na portu 8080/tcp. Jelikož chci poskytovat informace v lokální síti přes nginx, musím provést určité kroky:
- z repositáře https://github.com/mutability/dump1090 stáhnu adresář
public_html
a obsah rozbalím do rootu nginx jakodump1090/
(/srv/http/dump1090
); - přidám do nastavení nginx následující:
1 2 3 4 5 6 7 |
location /dump1090 { index gmap.html; } location /dump1090/data { alias /var/lib/dump1090; } |
Po připojení internetovým prohlížečem na adresu http://lokalni-server.local/dump1090
je zobrazena mapa s letadly, od kterých byl přijat signál ADS-B.
Černou barvou je na mapě zobrazen přibližný tvar možné propagace vysokofrekvenčního signálu v závislosti na terénu. Více v článku Zobrazení dosahu přímé rádiové vlny na profilu terénu.
RTL1090, adsbSCOPE
V prostředí MS Windows můžeme provozovat několik různých projektů. RTL1090 (v době psaní článku je portál nedostupný; lokální archiv) slouží pro zpracování přijatého signálu, který je zobrazován pomocí adsbSCOPE.
Sdílíme přijatá data – data feeder
Zpracovaná data můžeme sdílet s různými projekty. Velice často na oplátku dostaneme prémiové přístupy k obsahu, který je jinak zpoplatněn. Zástupci těchto služeb jsou např. Flightradar24 či FlightAware.
V obou případech je potřeba nainstalovat specializovanou službu, která získává přijatá a dekódovaná data z dump1090, a přeposílá je do datových úložišť jednotlivých provozovatelů.
Flightradar24
Pro Arch Linux existuje aplikace fr24fee
, která je dostupná z AUR jako flightradar24.
Po instalaci je potřeba registraci, ke které potřebujeme zadat naši emailovou adresu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
[root@linux ~]# sudo -u fr24 fr24feed --signup --config-file=/etc/fr24feed/fr24feed.ini libcommon read_config failed - /etc/fr24feed/fr24feed.ini [main][i]FR24 Feeder/Decoder [main][i]Version: 1.0.18-5/generic [main][i]Built on Mar 2 2016 20:06:10 (devel-d11ca48.git/Linux/i686) [main][i]Copyright 2012-2016 Flightradar24 AB [main][i]http://flightradar24.com [main][i]DNS mode: LIBC [main][w]Config file /etc/fr24feed does not exist! Welcome to the FR24 Decoder/Feeder sign up wizard! Before you continue please make sure that: 1 - Your ADS-B receiver is connected to this computer or is accessible over network 2 - You know your antenna's latitude/longitude up to 4 decimal points and the altitude in feet 3 - You have a working email address that will be used to contact you 4 - fr24feed service is stopped. If not, please run: sudo service fr24feed stop To terminate - press Ctrl+C at any point Step 1.1 - Enter your email address (username@domain.tld) $:jmeno@domena.net Step 1.2 - If you used to feed FR24 with ADS-B data before enter your sharing key. If you don't remember your sharing key, pelase use the retrival form: http://feed.flightradar24.com/forgotten_key.php Otherwise leave this field empty and continue. $: Step 1.3 - Would you like to participate in MLAT calculations? (yes/no)$:yes IMPORTANT: For MLAT calculations the antenna's location should be entered very precise! Step 3.A - Enter antenna's latitude (DD.DDDD) $:50.1286 Step 3.B - Enter antenna's longitude (DDD.DDDD) $:14.2334 Step 3.C - Enter antenna's altitude above the sea level (in feet) $:26 Using latitude: 50.1286, longitude: 14.2334, altitude: 26ft above sea level Validating email/location information...OK The closest airport found is ICAO:LKPR IATA:PRG near Prague. Latitude: 50.100830 Longitude: 14.260000 Country: Czech Republic Flightradar24 may, if needed, use your email address to contact you regarding your data feed. Would you like to continue using these settings? Enter your choice (yes/no)$:yes We have detected that you already have a dump1090 instance running. We can therefore automatically configure the FR24 feeder to use existing receiver configuration, or you can manually configure all the parameters. Would you like to use autoconfig (*yes*/no)$:yes Step 6A - Please select desired logfile mode: 0 - Disabled 1 - 48 hour, 24h rotation 2 - 72 hour, 24h rotation Select logfile mode (0-2)$:1 Step 6B - Please enter desired logfile path (/var/log): $: Submitting form data...OK Congratulations! You are now registered and ready to share ADS-B data with Flightradar24. + Your sharing key (b7da92bc8c23) has been configured and emailed to you for backup purposes. + Your radar id is T-LKPR3422, please include it in all email communication with us. + Please make sure to start sharing data within the next 3 days as otherwise your ID/KEY will be deleted. Thank you for supporting Flightradar24! We hope that you will enjoy our Premium services that will be available to you when you become an active feeder. To start sending data now please execute: sudo service fr24feed start Saving settings to /etc/fr24feed/fr24feed.ini...OK |
Nastartujeme službu:
1 |
[root@linux ~]# systemctl start fr24feed |
Následně si na portálu Flightradar24 vytvoříme se zadanou emailovou adresou účet. Tím se nám propojí s aplikací posílající a aktivuje prémiový obsah.
Flightradar24 nám dovoluje nahlédnou na některé statistiky vztahující se k našemu účtu:
FlightAware
I FlightAware má vlastní aplikaci přeposílající data z dump1090 na servery společnosti.
Její název je piaware-git a je opět dostupná z AUR.
Před instalací si vytvoříme uživatelské konto na portálu FlightAware.
Po instalaci musíme provést nastavení v souboru /etc/piaware.conf
. Zde zadáme uživatelské jméno a heslo, které používáme pro účet FlightAware.
Nastartujeme službu:
1 |
[root@linux ~]# systemctl start piaware |
Po spuštění služby na internetovém portálu potvrdíme aktivaci a následně je nám přidělen prémiový obsah.
V případě FlightAware je k dispozici opravdu velké množství různých statistik:
Závěr
Ať jsme lovci letadel nebo jen občasní sledující, díky různým technologiím máme možnost získat přehled o tom, co se děje nad našimi hlavami.
Následující obrázek zachycuje příjem ADS-B anténou Color supra, kterou používám pro příjem DVB-T z cca 80 km vzdáleného vysílače:
Anténa obsahuje předzesilovač. V signálové cestě není instalován žádný filtr, pouze aktivní čtyřcestný DVB-T rozbočovač. Ač je signál ADS-B vysílán s vertikální polarizací a anténa je nainstalována pro příjem horizontální, na obrázku s dump1090 je vidět množství sledovaných letadel. Severním směrem, za reflektorem antény, stojí vysoká budova, proto je příjem z tohoto směru velmi limitován.
Pingback: Arch Linux on Orange Pi Zero | brichacek.net