OK1UFC


   Dálkově řízený TCP/IP tuner

Poslední aktualizace v srpnu 2020    

  

   Úvod

V tomto článku ukážu všechny důležité kroky, které musíme provést, pokud si navrhujeme dálkově řízený (z aplikace na PC, přes WiFi, tedy bez drátů) tuner pro krátkovlnnou anténu.

 

   Cíle projektu

1. Místo tahání kabelů použít počítačové komunikace po LAN, s využitím WiFi.
2. Spínat relé v tuneru pomocí pinů sériového expandéru, který jsme vymysleli zde.
3. Napsat si jednoduchou aplikaci pro Windows nebo Linux, která bude (bez drátů, jak jinak, že?) posílat povely pro řízení tuneru.

   Princip dálkově řízeného tuneru

Provedení tuneru lze vyjádřit tímto jednoduchým schémátkem. U antény máme hned na svorkách (nebo za balunem) tuner. Tuner je napájený adaptérem (SELV). Tuner přijímá povely po WiFi síti z našeho notebooku, na kterém nám běží komunikační program. Lze nastavovat způsob přizpůsobení (tlačítky LC nebo CL a myší hodnoty L a hodnoty C pomocí posuvníčků):

   Princip přizpůsobení antény

Pro tuto úlohu jsem vybral přizpůsobení pomocí nesymetrického L článku. Abychom mohli přizpůsobit impedance ve velikém rozsahu, volíme možnost nastavit konfiguraci CL nebo LC (vlevo pod textem). Konfiguraci nastavujeme pomocí relé, jejichž kontakty jsou nakresleny vpravo pod textem. Sepnutím kontaktu By Pass a současným rozepnutím obou kontaktů CL a LC lze tuner vyřadit z provozu.

Hodnoty L a C potřebujeme pro slušné přizpůsobení nastavovat s dostatečně jemným krokem. V tomto příkladě je pro každou veličinu (L a C) použito reléové spínání (celkem 16 switchů) a každou hodnotu lze nastavit v 256 krocích. Celé schéma VF části tuneru a s označením kontaktů switchů je níže:

Kontakty relé (SW1 až SW16, SW17, SW18 a SW19) řídíme pomocí povelů. Povely jsou přenášeny třemi bajty po počítačové síti z notebooku. Bajt B0 až B7 na adrese čipu expandéru 118 nastavuje hodnotu indukčnosti L (SW1 až SW7). Bajt B0 až B7 na adrese 119 nastavuje hodnotu kapacity C (SW9 až SW16). Bajt C0 až C2 (na adrese čipu 118) nastavuje konfiguraci tuneru podle Tabulky 1 níže. V tuneru jsou tedy
 

 

Protože v našem programu na PC obdržíme hodnoty posuvníků v rozsahu 0 až 255, budeme odesílat povely pro nastavení L a C jako trojmístnou sadu znaků 000 až 255 (což odpovídá hodnotě jednoho bajtu). Nastavení režimů vyžaduje tři funkční kombinace, které odešleme jako sadu znaků 004, 001 a 002 a opět na to použijeme v sériové komunikaci expandéru jen jeden bajt. Zkušenější si umí tři logické hodnoty switchů SW17, SW18 a SW19 přepočítat na dekadickou (příp. hexadekadickou) hodnotu z hlavy. Kdo s tím nedělá denně, může hodnoty přepočítat v prográmku HEX to DEC, který jsme si napsali jako jednu z prvních úloh, když jsme se učili psát aplikace pro desktop. Při počítání těch tří čísel to vypadá nějak takto:

   
 

   Aplikace na notebooku

Asi tušíte, že aplikace na notebooku bude velice jednoduchá. Pro nastavování L a C použijeme posuvníky (sliders). Pro nastavování konfigurace CL, LC a By Pass (vypnutí ladění) použijeme tlačítka. Ještě si do programu dáme pár "pamětí", jako máme na kalkulačce. Do pamětí budeme ukládat naladěné hodnoty, které pak budeme z pamětí číst kliknutím na jediné tlačítko. Tato filosofie dálkového řízení má jednu obrovskou výhodu - prvně si ladíme nejlepší přizpůsobení sami a s maximální pečlivostí (tj. přesností). Opakovaně volíme přizpůsobení jedník kliknutím na "paměť ". Automatický tuner má výhodu, že sice nemusíme nastavovat L, C a ani konfiguraci, najde si ji sám. Ale občas zjistíme, že bychom chtěli doladit přesněji. Občas to zjistí algoritmy použité v tuneru a začnou nám trtkat s relátky v průběhu vysílání. Samozřejmě, že si sníží výkon TRXu, ale dopálí vás to. V manuálně řízeném dálkově ovládaném tuneru vám nic během spojení netrtká a při přechodu na jiný kmitočet kliknete myší na jedno z tlačítek pamětí.

Pro inspiraci, v roce 2012 jsem používal tento design woken tuneru ve Windows, tenkrát to komunikovalo po sériovém portu:

   V roce  2019 jsem aplikaci jsem upravil z původní z roku 2012
Aplikace Vypadá takto. V okně ladění jsou tlačítka pro nastavení konfigurace tuneru (LC nebo CL). Progress bary nejsou programované pro nastavování hodnot. Jsou vedle nich Numeric Up Down komponenty. Ty zobrazují číselně hodnoty ( 0 až 255) C a L. Byla upravena pozice tlačítek ukládání do pamětí. Možná ještě změním rozmístění komponentů v hlavním wokně. Druhá varianta designu je ještě níže. U třetí varianty jsem použil komponenty TrackBar (Slider), které jsem našel v toolboxu.

U třetí varianty jsem použil komponenty TrackBar (Slider) z toolboxu Visual Studia:

   Testovací verze tuneru s TCP/IP přenosem dat

1. Jak jsem už napsal, aplikaci, kterou používám k testům, mám v následujícím vzhledu a verzi. Současná (moje finální verze) exe souboru (spíš portable aplikace) je ke stažení zde. Jde o archiv zip, velikost asi 22 kB, archiv rozbalíme do pracovního adresáře. Program vyžaduje, abyste již měli nainstalovaný odpovídající MS Framwork.

2. Vzhled aplikace, uvádím se všemi okny a s komentářem:

3. Výše popsaná aplikace (Windows) komunikuje s popisovanými moduly Elfin EW10, který je součástí tuneru.

4. Jako alternativní řešení byla komunikace zkoušena též s aplikací (Linux) běžící na jednodeskovém SBC počítači velikosti kreditky. SBC pracoval ve funkci tzv. naslouchacího serveru,  který vykonával současně roli směrovače povelů. Alternativní řešení je zde pro úplnost zmíněno, není však předmětem této publikace. Uvedené řešení nadále nepoužívám a ani nerozvíjím.
 

   Důležité SW algoritmy 

V této příloze je zazipovaný celý zdrojový kód programu (Visual Basic). Ten vznikl z původního kódu před rokem 2012, kdy se tuner používal jako dálkově ovládaný pomocí sériové komunikace. V roce 2019 byl modifikován - komunikace RS 232 byla z kódu odstraněna a byla naprogramována TCP/IP komunikace pomocí TCP/IP klienta. Důležtá procedura je níže a pod ní jsou dosazovací příkazy z příkladem, jak se data plní ze sliderů aplikace. Před datovými bajty jsou adresy čipů, které tvoří prambuli. Čip v tuneru reaguje jen na svou preambuli, kterou má naprogramovanou v bajtech qualifier. Podrobnosti - viz popisy sériové komunikace u čipů PICAXE.
 

 
   Související články  a starší řešení ok1ufc

Problematiku popsaného tuneru jsem popsal dříve na této původní stránce. Úvod do problematiky jednoduchého (ale vidláckého) způsobu programování, jsem popsal na těchto stránkách. Je určeno začátečníkům a neprofesionálům. Nicméně, uvedu zde několik důležitých skutečností, které jsou právě u mne aktuální:

1. Programování v prostředcích Visual Studio nebo Gambas není předmětem stránek o dálkovém řízení a telemetrii. Pro efektivní práci v této oblasti preferuji jiné prostředky, které budou popsány.

2. Popsaný anténní tuner byl mnoho let používanou aplikací v mé hamovně, verze se sériovou komuniací byla použitelná i s virtuálními sériovými porty a WiFi komunikací. Program byl modifikován z verze se sériovou komunikací na verzi s  komunikací TCP/IP, ale v roce 2020 byl nahrazen jinými aplikacemi. Nadále však program nepoužívám a ani nerozvíjím. Byl nahrazen novějším egronomičtějším řešením (bude popsáno). Původní HW tuneru je stále ve službě.

3. V souvisejících článcích, které jsem napsal, se setkáte s různými aplikacemi, které jsem zkoušel na jednodeskovém SBC Asus (Obdoba Rarpberry Pi3). Zejména vyvinuté řešení s tzv. směrovačem povelů z TCP serveru do USB sériových rozhraní počínaje rokem 2020 nadále nepoužívám. Měl jsem sice v úmyslu realizovat směrovač povelů na Raspberry Zero W (s WiFi). Toto zařízení je však bez pouzdra dražší, než profesionálně vyrobené směrovače Elfin EW10, které mi Rasbpberry Zero W nahradily. Funkcionality, které byly do modulů Elfin EW 10  naprogramovány, bych buď vyvíjel dlouhé večery nebo nakonec stejně použil řešení někoho jiného.

Od roku 2019 používám pro směrování povelů z TCP na UART jen moduly elfin EW10.
 
 
   Perspektivní řešení

Pro psaní aplikací v oboru dálkového řízení a telemetrie používám od roku 2019 výhradně vývojové prostředky Profilab Expert.

1. Jedná se o promyšlené, vysoce objektově orientované navrhování aplikací pro desktopy, které umožňuje celou řadu komunikačních protokolů a metod.

2. Prostředky obsahují jednoduchý a rychlý kompilátor, který vytvoří během několika sekund spustitelnou aplikaci pro Windows.

3. Prostředí je připraveno na spolupráci s velkým množstvím průmyslově vyráběných zařízení z oblasti měření a regulace.

4. I složitější aplikace v Profilab Expert lze vytvořit v krátkém čase (za večer, za směnu).

5. Aplikace popsané v této minipublikaci komunikují:

- s moduly Elfin EW10; nejjednodušší řešení je použití virtuálních sériových portů
- s různým zařízením a s různými aplikacemi v síti pomocí protokolů TCP/IP
- lze je obsluhovat po síti LAN (nebo Internet) přes webový prohlížeč (např. z mobilu, tabletu).

6. Vytváření aplikací pomocí ProfiLab Expert bude předmětem samostatných článků, stejně, jako použití ProfiLab webového serveru, který opravdu velmi jednoduše, elegantně a graficky ve velmi hezkém designu umožňuje provádět dálková měření a dálková ovládání z jakéhokoliv mobilu nebo tabletu s moderním webovým prohlížečem.

   TU 73, Mira, ok1ufc