Uživatelské nástroje

Nástroje pro tento web


cs:pysdr

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
Poslední revizeObě strany příští revize
cs:pysdr [2015/08/19 20:12] – [Socket spojeni] kubacs:pysdr [2017/07/31 15:03] – [Ovládání programu] kaklik
Řádek 1: Řádek 1:
-====== OpenGL waterfall display pySDR ======+====== PySDR ======
  
-Jde o program určený ke zobrazení živého waterfallu (spektrogramu) ze streamu dat. Ten může být poskytnut přes unixovou rouru, nebo Jack audio systém. +Jde o program určený ke zobrazení živého waterfallu (spektrogramu) ze streamu dat. Ten může být poskytnut přes unixovou rouru, nebo JACK audio systém.  
 +Nástroj je užitečný pro ladění [[http://wiki.bolidozor.cz/doku.php?id=cs:rmds|detekční stanice Bolidozor]]. K vizualizaci dat návštěvníkům má sloužit nástroj [[cs:freya|Freya]].
  
 ===== Základní vlastnosti ===== ===== Základní vlastnosti =====
Řádek 10: Řádek 11:
   * Dynamická změna měřítka pomocí myši   * Dynamická změna měřítka pomocí myši
  
 +
 +{{youtube>UKHGVK75AGA?medium}}
  
 {{:cs:pysdr:pysdr_detector.png?500|PySDR s detekčním skriptem.}} {{:cs:pysdr:pysdr_detector.png?500|PySDR s detekčním skriptem.}}
Řádek 24: Řádek 27:
   ./pysdr-waterfall   ./pysdr-waterfall
  
-Otevře se nám okno, které v případě, že je připojený nějaký zdroj dat, obsahuje spektrogram+Otevře se nám okno, které v případě, že je připojený nějaký zdroj dat, obsahuje spektrogram. Spektrogram lze levým tlačítkem myši posouvat a pravým zoomovat. 
  
 === Klávesové zkratky === === Klávesové zkratky ===
Řádek 74: Řádek 77:
  
   ./pysdr-waterfall   ./pysdr-waterfall
-   
- 
- 
-==== Použití s gnuradiem ==== 
- 
-{{:examples:pysdr.grc.png?600|}} 
- 
  
 ===== Slyšitelný výstup ===== ===== Slyšitelný výstup =====
Řádek 109: Řádek 105:
  
  
-==== Princip funkce programu ====+==== Princip fungování programu ====
  
 Program provádí frekvenční konverzi komplexním násobením signálu s lokálním číslicovým oscilátorem. Tím je dosaženo frekvenčního posunu odrazu meteoru do nižších frekvencí ze slyšitelného pásma.  Program provádí frekvenční konverzi komplexním násobením signálu s lokálním číslicovým oscilátorem. Tím je dosaženo frekvenčního posunu odrazu meteoru do nižších frekvencí ze slyšitelného pásma. 
Řádek 117: Řádek 113:
   sox SVAK1_1386323982726.wav -c 2 -t f32 -r 44100 - repeat 20 | jack-stdin pysdr:input_i pysdr:input_q -e float   sox SVAK1_1386323982726.wav -c 2 -t f32 -r 44100 - repeat 20 | jack-stdin pysdr:input_i pysdr:input_q -e float
      
-===== Prezentace signálu z detekční stanice ===== 
- 
-Pro přímé zobrazování detekovaných meteorů může běžet živý waterfall i na jiném počítači, než na kterém běží detekční stanice. Blokové schéma systému pak vypadá následovně: 
- 
-{{:cs:rmds:user_interface_system.png?600|}} 
- 
- 
-Jednotlivé bloky jsou výše zmíněné programy.  Za ideálních podmínek by prezentačních stanic mohlo být k jedné detekční stanici připojeno více.  
- 
- 
-==== Spuštění pySDR na prezentačním počítači ==== 
- 
-Pokud je stanice připojena datovou linkou s dostatečnou propustností, tak je možné pustil pySDR lokálně a prohlížet si přitom data ze vzdálené stanice.  
- 
- 
-=== SSH === 
- 
-Jednou z možností je použití trubek přes ssh spojení. V tom případě budeme postupovat následovně.  
- 
-  - Spustíme jack například přes 'qjackctl' 
-  - Spustíme pySDR  'python waterfall.py' 
-  - Připojíme se na vzdálenou stanici a přesměrujeme data do unixové trubky: 
- 
-  ssh radio.ust.cz "arecord -f S16_LE -r 44100 -c 2 | buffer -b 1024" | jack-stdin i q 
- 
-V qjackctl pak přetažením myší spojíme stdin a pysdr. Nyní by měl být v pysdr vidět waterfall ze vzdálené stanice. 
- 
- 
-=== NetJack === 
- 
-  sudo apt-get install qjackctl 
- 
- 
-Uživatel musi byt v skupine audio 
- 
-  sudo adduser kaklik audio 
- 
-a v /etc/security/limits.conf je treba nastavit: 
- 
-  @audio - rtprio 99 
-  @audio - memlock unlimited 
- 
-Pokud se to neudala, tak spusteni jakck zkonci takto:  
- 
-  jackdmp 1.9.8 
-  Copyright 2001-2005 Paul Davis and others. 
-  Copyright 2004-2011 Grame. 
-  jackdmp comes with ABSOLUTELY NO WARRANTY 
-  This is free software, and you are welcome to redistribute it 
-  under certain conditions; see the file COPYING for details 
-  JACK server starting in realtime mode with priority 10 
-  Segmentation fault (core dumped) 
- 
- 
- 
-== Lokalni spojeni Jack == 
- 
-Potom lze jack spustit: 
- 
-  jackd -d alsa -dhw:1 
- 
-kde hw:1 cislo je urcene podle /proc/asound/cards, nebo: 
- 
-  aplay -l  
- 
- 
-== Sitove spojeni Jack == 
-  
- 
-Nejdrive musi instalace jack fungovat lokalne viz vise.  
- 
-Nasledne na master pocitaci spustime: 
- 
-  qjackctl 
- 
-a nastavime zdroj dat z remote klienta na lokalni siti: 
- 
-  jack_netsource -H kaklik-netbook.local 
- 
-Na remote klientovi pak presmerujeme audiovystup na jack v siti: 
- 
-  jackd -R -d netone  
- 
-Zdroj http://netjack.sourceforge.net/ 
- 
-=== Jacktrip === 
- 
-Jacktrip je metoda pro přenášení zvukových dat přes jack, která synchronizuje vzájemně dvě instance jacku běžící na různých strojích.. V Ubuntu je potřeba jacktrip zkompilovat, protože balíčková verze v Ubuntu nefunguje a padá na segfault. 
- 
-  sudo apt-get install libasound2-dev libjack-jackd2-dev qt4-qmake qt4-default 
-  git clone https://github.com/jcacerec/jacktrip.git 
-  cd ./jacktrip/jacktrip/src/ 
-  ./build 
- 
-== Server == 
- 
-Na staničním počítači musíme spustit instanci jacku, která bude číst data ze správné zvukovky. V tomto případě je to externí USB zvukovka s hw:1 
-  jackd -R -dalsa -dhw:1 
- 
-Dále pak spustíme jacktrip server  
- 
-  jacktrip -q 8 -r 3 -s 
- 
- 
-== Klient == 
- 
-Na vizualizačním počítači pak spustíme istanci jacku, která musí mít nastavenou stejnou vzorkovací frekvenci, jako instance detekční stanici, zde si ale můžeme pomoci grafickým nástrojem qjackctl 
- 
-  qjackctl  
- 
- 
-Kde v jeho menu nastavíme správnou vzorkovací frekvenci. Pak spustíme jacktrip klienta s parametrem IP adresy detekční stanice.   
- 
-  ./jacktrip -z -c 192.168.1.21 
- 
-protože jacktrip nepodporuje zeroconf, tak můžete nechat IP adresu doplnit bash 
- 
-  `resolveip -s popelnice.local` 
-   
-nebo například 
-   
-  avahi-resolve -4 -n meteor4.local 
- 
-Po spojení s protistanicí by se v zapojovací desce qjackctl mělo objevit zařízení jacktrip. Parametr -z v tomto případě znamená poskytnutí nulových hodnot při podtečení bufferu. 
- 
-==Více klientů== 
-Pokud chcete mít připojení ke stanici pro více uživatelů, musí být na detekčním PC spuštěno více serverů s jiným portem.  
- 
-Na straně serveru pro každého klienta musíte do nového terminálu zadat 
- 
-  jacktrip -s -o10 
- 
-kde za parametrem -o je offset od portu 4464, pro každé nové připojení tento offset musí být jiný. 
- 
-Na uživatelském počítači zadáte: 
- 
-  jacktrip -c -o10 
- 
-se stejným parametrem  -oX 
- 
-=== QmidiNet === 
- 
-Qmidinet je aplikace, která slouží k přenosu Midi dat po síti. 
- 
-QmidiNet nainstalujete: 
- 
-  sudo apt-get install qmidinet 
-   
-A spouští se stejným příkazem na straně serveru i u klienta. 
- 
-  qmidinet -p21928 
-   
-kde za -p vložíte vlastní UDP port. Ještě je potřeba povolit připojení qmidinet k jacku. V grafickém prostředí to lze udělat snadno nastavením v nabídce ikony qmidinet. Přes příkazovou řádku je však potřeba vytvořit soubor //~/.config/rncbc.org/QmidiNet.conf// a naplnit jej konfigurací: 
- 
-  [Options] 
-  General\NumPorts=1 
-  General\AlsaMidi=true 
-  General\JackMidi=true 
-  Network\Interface=eth0 
-  Network\UdpPort=21928 
- 
-Pak by se po spuštění qmidinet měla v qjackctl objevit QmidiNet propojka.  
- 
- 
 ==== Socket spojeni ==== ==== Socket spojeni ====
  
-PySDR se muze pripojit na stanici primo ~/repos/pysdr$ nc radio-TEST.local 3701 | ./pysdr-waterfall -r 96000+PySDR se může připojit na stanici RMDS02D přímo pomocí netcat. Příklad použití je následující. 
 +  nc radio-TEST.local 3701 | ./pysdr-waterfall -r 96000
  
 +Kde radio-TEST.local je sitove jmeno stanice. V případě, že pysdr spouštíme rovnou na stanici, tak je to localhost. 
      
cs/pysdr.txt · Poslední úprava: 2020/08/09 19:40 autor: kaklik