Śledzimy szybowce, samoloty, helikoptery i balony cz. 3 – FLARM

Śledzimy szybowce, samoloty, helikoptery i balony cz. 3 – FLARM

Umiemy już śledzić za pomocą dongle DVB-T na USB oraz Raspbery Pi lub jego kolna samoloty. Poznajmy więc kolejny system, który za pomocą tego samego sprzętu pozwoli na śledzenie:

  • szybowców
  • śmigłowców
  • balonów
  • samolotów

===
szybowiec7
FLARM – to system unikania kolizji dla lekkich obiektów latających, zatwierdzony przez EASA, zdobywający popularność i stosowany głównie w Polsce na szybowcach. Oczywiście – nie będziemy używać go do unikania kolizji, ale do obioru pozycji takich obiektów i nanoszenia ich na mapę projektu OPEN GLIDER. Gdy spojrzymy na mapę – stacji w Polsce jest bardzo mało – warto więc rozbudować sieć, aby szybownicy i nie tylko – mogli czuć się bezpieczniej, a ich rekordy – być rejestrowane.

Czego będziemy potrzebować?

Sprzęt:

  • RPI Zero W” rel=”noopener” target=”_blank”>Raspberry Pi Zero W lub Orange Pi Zero albo One. Cena od $9 do $11
  • DVB-T USB Dongle. Ponownie – w wersji w niebieskiej obudowie „DVB-T RTL2832U+R820T2”. Cena: około $7
  • Karta micro SD – może być tania karta 8G za $4, ale lepiej Sandisk Extreme/Ultra minimalnie 4GB
  • Zasilacz 1.5 lub 2A 5V z micro USB (np: ładowarka do komórki)
  • Małe radiatory (dwie sztuki) na CPU i kontroler w Orange Pi Zero/One lub Raspberry Pi
  • ALTERNATYWNIE: Raspberry Pi 2 lub 3 – posiadają odpowiednią moc CPU, chociaż są trzykrotnie droższe
  • Antena na 868MHz. Na początek wystarczy modyfikacja dołączonej anteny do dongle – przytnijmy ją do pojedynczego segmentu. Moja dołączona antena daje mi zasięg około 50km – bez modyfikacji

Software:

  • Armbian dla Orange Pi – obecnie najlepszą wersją jest Xenial, wersja developer/beta, z jądrem 4.9.x – pobieramy z Night releases z https://www.armbian.com/orange-pi-zero/, lub ostatni, aktualny Raspbian – tak jak w poprzednim wpisie.
  • ogn-decode i ogn-rf – oprogramowanie do pobrania w wersji na CPU ARM
  • Wolne porty 8080 i 8081 na naszej maszynie (jeśli nie ma nic zainstalowanego to będą wolne)
    szybowiec4-768x1024

Instalacja

Należy – jeśli jeszcze nie mamy – zainstalować bilbiotekę SDR, kilka bibliotek systemowych, a następnie pobrać odpowiednie pliki z glidernet.org:

cd /home/pi
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install rtl-sdr
sudo apt-get install libconfig-dev fftw3-dev libjpeg-dev libconfig9 libjpeg8

Wyłączamy sterowniki do DVB-T – inaczej nie moglibyśmy użyć naszego dongle DVB-T w trybie surowym

nano /etc/modprobe.d/rtl-sdr-blacklist.conf

wklejamy:

blacklist dvb_usb_rtl28xxu
blacklist e4000
blacklist rtl2832
blacklist r820t
blacklist rtl2830
blacklist dvb_usb_rtl28xxu
blacklist dvb_usb_rtl2832u

Następnie uruchamiamy ponownie nasze Orange Pi/Raspberry Pi
Pobieram z glidernet.org plik, oraz rozpakowujemy:

wget http://download.glidernet.org/arm/rtlsdr-ogn-bin-ARM-latest.tgz
tar xvzf rtlsdr-ogn-bin-ARM-latest.tgz

Teraz należy stworzyć potok (specjalny plik do wymiany danych między dwoma programami ogn):

cd rtlsdr-ogn
mkfifo ogn-rf.fifo

szybowiec3
(zdj. Stanisław Lampart)

Teraz przystępujemy do kalibracji naszego odbiornika – tanie tunery DVB-T mają niską precyzję dostrojenia do wybranej częstotliwości – należy zweryfikować i zmodyfikować odchylenie. Używamy do tego specjalnego programu, który używając częstotliwości GSM, pokaże nam o ile zmienić wartość ppm (korekcji oscylatora):

cd rtlsdr-ogn
./gsm_scan --ppm 50 --gain 20

Zmieniamy wartości aż odchył będzie w granicach max 10ppm (dla najlepszej częstotliwości GSM) – zapisujemy je.
Następnie – tworzymy własną konfigurację z przykładu:

cp Template.conf EPXX_OGN.conf
nano EPXX_OGN.conf

Przykładowy plik z wyliczeniami dla mojego tunera, wpisujemy WŁASNE wartości FreqCorr, GSM CenterFreq Gain – wyliczone z programu gsm_scan:

RF:
{
  FreqCorr = +87.060;          # [ppm]      "big" R820T sticks have 40-80ppm correction factors, measure it with gsm_scan

  GSM:                     # for frequency calibration based on GSM signals
  { CenterFreq  = 938.4;   # [MHz] find the best GSM frequency with gsm_scan
    Gain        =  25.0;   # [dB]  RF input gain (beware that GSM signals are very strong !)
  } ;
} ;

Position:
{ Latitude   =   +51.1514; # [deg] Antenna coordinates
  Longitude  =   +18.4642; # [deg]
  Altitude   =        150; # [m]   Altitude above sea leavel
  GeoidSepar =         48; # [m]   Geoid separation: FLARM transmits GPS altitude, APRS uses means Sea level altitude
} ;

APRS:
{ Call = "EPXX1";     # APRS callsign (max. 9 characters)
                                       # Please refer to http://wiki.glidernet.org/receiver-naming-convention
} ;

Następnie uruchamiamy w tle dwa programy, jak zwykle używam mojej prymitywnej, ale solidnie działającej metody – programu uruchamającego oraz wpis do cron:
Tworzymy dwa pliki:

cd /home/pi
nano /home/pi/rtlsdr-ogn/run_ogn-rf

z zawartością:

#!/bin/bash
cd /home/pi/rtlsdr-ogn
/home/pi/rtlsdr-ogn/ogn-rf /home/pi/rtlsdr-ogn/EPXX_OGN.conf

Nadajemy prawa wykonywania:

chmod 755 /home/pi/rtlsdr-ogn/run_ogn-rf

Drugi plik:

nano /home/pi/rtlsdr-ogn/run_ogn-decode

z zawartością:

#!/bin/bash
cd /home/pi/rtlsdr-ogn
/home/pi/rtlsdr-ogn/ogn-decode /home/pi/rtlsdr-ogn/EPXX_OGN.conf

Nadajemy prawa wykonywania:

chmod 755 /home/pi/rtlsdr-ogn/run_ogn-decode

Następnie edytujemy crontab:

crontab -e

Wklejamy:

*/5 * * * * if [ `pgrep ogn-rf | tr '\n' ' '| awk '{print $1}'` ]; then echo "ogn-rf dziala"; else screen -dmS ognrf /home/pi/rtlsdr-ogn/run_ogn-rf; fi > /tmp/ognrf.log 2>&1
*/5 * * * * if [ `pgrep ogn-decode | tr '\n' ' '| awk '{print $1}'` ]; then echo "ogn-decode dziala"; else screen -dmS ogndecode /home/pi/rtlsdr-ogn/run_ogn-decode; fi > /tmp/ogndecode.log 2>&1

Oczywiście – w przykładzie używamy użytkownika „pi”.
Weryfikujemy działanie łącząc się albo przez screen -r XXX, albo przez podejerzenie działania na przeglądarce – http://adres_ip:8080/ oraz http://adres_ip:8081/. Naszą stację, wraz z pojawiajacymi się informacjami o zasięgu możemy oglądać pod adresem: http://ognrange.onglide.com/. Co najmniej raz na pół roku należy sprawdzić czy nie pojawiła się nowa wersja FLARM.

To wszystko!

szybowiec2-768x576
(zdj. Stanisław Lampart)

Previous Post Next Post