Poslední aktualizace  červen  2019 

      
 

   Dálkově ovládaný krátkovlnný anténní tuner

Ú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 a sériový expandér ovládat z jednodeskového SBC v roli routeru povelů, který jsme vymysleli zde.
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) posílat povely pro řízení tuneru.

Jak jsem psal, v žádném případě nejde o podrobný návod, ale návrh zařízení. Všechny dílčí postupy byly uvedené v mých publikacích na webu. Byly vysvětleny důležité věci z komunikace po počítačových sítích LAN (klient a server TCP, sériová komunikace), z jednoduchého psaní aplikací pro Windows, či Linux a z principů přizpůsobování impedancí anténním tunerem.

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č. 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.
 

 

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í. Aplikace vysílá po síti do tuneru vždy dvacet znaků, např. 0118255004 0119255000. Pokud jste četli v článcích o expandéru a routeru povelů pečlivě, znáte význam jednotlivých znaků:

0 na začátku každé skupiny znamená, že expandér je strčen do portu ttyUSB0
118 a 119 na pozici 2 až 4 představuje adresy dvou čipů v tzv. prambuli protokolu (použil jsem dva čipy PICAXE 20M2 na spínání SW1 až SW19)
255 je datový bajt čipu 118, rozsah platných hodnot je 000 až 255 a nastavují se jím switche SW1 až SW8
255 je rovněž bajt čipu 119 ve druhé skupině znaků,  rozsah platných hodnot je 000 až 255 a nastavují se jím switche SW9 až SW16
004 je datový bajt čipu 118, kterým se řídí port C, konkrétně jen piny C0, C1 a C2, tj. switche SW17, SW18 a SW 19, kterými se řadí konfigurace CL, LC, ByPass - viz tabulka 1, bajt nabývá hodnot 001, 002, 004.

Tak co? Mám tady nechat pauzu dvou týdnů? Napíšete si aplikaci pro notebook sami? Je to fakt jednoduché.

(Za čtrnáct dní to tu dopíšu ... pro inspiraci, v roce 2012 jsem používal tento design woken tuneru ve Windows, tenkrát to komunikovalo po sériovém portu):

Letošní (2019) aplikaci jsem upravil z té původní (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.

Odpovědi na několik mailových dotazů

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 aplikací (Linux) běžící na jednodeskovém SBC počítači velikosti kreditky, s tzv. naslouchajícím serverem, který vykonává současně roli směrovače povelů. Rovněž tato aplikace má grafické rozhraní, jehož funkcionality jsou popsány přímo na screenu obrazovky:

Na spodním obrázku je spuštěná stejná aplikace pod TinkerOS na desce Asus Tinker Board:

Vize

Vize bych měl dvě:

1. Místo jednodeskového SBC typu Asus Tinker Board pouze použít např. Raspberry Zero. Těch 19 špiček bych na konektoru našel. Ale musel bych napsat celý program nový. To se mi až tak nechce, očekávám, že to však brzy bude někdo publikovat.

2. Nechat povelouvý router tak, jak je a používat ho ke všem dalším účelům - ke spínání anténních přepínačů, spotřebičů v okolí antény, atd. Ale sloučit VF desku s relátky se sériovým expandérem, který má jen jeden čip a dostatek pinů (např. PICAXE 40X2). Změny v SW by byly minimální, ale odpadly by pracné mnohažilové ploché propojovací kabely mezi deskou expandéru a deskou relátek. To určitě v prototypu zrealizuji, avšak jen na ručně dělané desce. V žádném případě však nepočítám s žádnou komerční výrobou tohoto zařízení nebo jeho dílů.

3. Dneska je 9.6.2019 - obě předchozí vize jsou krásné. Nedostatek času je však realitou. Takže jsem včera namaloval desku, která obsahuje 2 ks PICAXE 20M2 (jsou laciné a mám jich několik v zásobě), všechna relátka, všechny indukčnosti i kapacity, všechny maličké hexfety, dva konektory SO-239 (anténa a TRX), jeden napájecí konektor a jeden konektor se sériovým rozhraním. Reálný prototyp se rodí. Ten však patří do tématu antén. Zatím si hraji s funkčním vzorkem.

Poznámky

1. Uvedený program (řídící aplikaci) jsem napsal ve Visual Basic Express 2008. Ten používá runtime CLR verze 2 (.NET Framework 3.5). Všechny programy na tomto webu lze importovat do vyšší verze Visual Studio 2010. Nějaké informace o .NET Framework jsem stáhnul a popsal také zde. Řídící aplikaci lze napsat snadno ve vývojových prostředcích Visual Studia (pro desktop Windows) nebo v Gambasu (pro Linux).

2. Zamýšlím se, zda má smysl mít řídící program spuštěný na maličkém SBC velikosti kreditky. Asus Tinker Board s operačním systéme Tinker OS zvládá monitor s rozlišením 1920 x 1080 pixlů. SBC s monitorem lze pořídit v ceně do 4 tis. Kč a pracovní plocha s úhlopříčkou 22 nebo 24 palců je už velmi dobrou plochou pro malý bezdrátový řídící dispečink.

3.  Serverovou část (Linuxový program) jsem subjektivně zkoušel program na 32 bitovém Asus Eee (Atom, 1 jádro, 2G RAM) a na mini SBC Asus TinkerBoard, velikost kreditky (cílový počítač, ARM, 4 jádra). Na obou platformách program fungoval bez problémů. Asus Tinker Board je velice výkonný, svižně zvládá běžné práce s Internetem (prohlížeč Chromium), takže aplikace tuneru s TCP Socketem a směrovačem povelů je bezproblémová.

Závěr

1. Přestože jsem funkční vzorek tohoto tuneru realizoval na třech deskách (1. VF deska s kondíky, indukčnostmi, relátky a spínacími hexfety relátek, 2. SBC Povelový router, 3. Sériový expandér) a všechno zavřel do plastové krabice rozvaděče, tuner funguje slušně. Prototyp - viz Vize, bod 3. ho během několika dní nahradí.

2. Asi bych měl uvést celkovou dobu návrhu všech přístrojů - desktopové části, serverové části a expandéru. Odmakané hodiny jsem si nepsal, ale určitě jsem aplikacím pro desktop a server nevěnoval více, než 20 hodin a aplikaci expandéru jen několik hodin (deska 4 hodiny, program 4 hodiny, zkoušení ??). Asi nejdéle mi trvalo hraní si s tunerem u rádia, psaní webových stránek.

3. Zajímavá je rovněž doba učení se konkrétním dovednostem. Pokud bych každý článeček o psaní jednoduchých aplikací nazval začátečnickou lekcí, jeho prostudování odhadl na jednu hodinu, praktické psaní úkolu na PC odhadl také na jednu hodinu, pak je vidlácké programování koncentrováno asi do 20 lekcí a 10 doporučených odkazů. Učení mi tedy vychází asi na 50 hodin. Když k tomu přidáme neproduktivní dohledání některých detailů na Internetu, přidáme rezervu 20 hodin na stáří 60+ a uvědomování si souvislostí, i tak bychom měli být schopni potřebné dovednosti vstřebat během nějakých 80 hodin. To by odpovídalo pracovní době poloviny měsíce. Tak jo. To už bych se mohl považovat za mírně pokročilého začátečníka. Ale pořád se mi zdá, že to je doba srovnatelná s časem, který jsem věnoval učení se zámečnickým dovednostem, obrábění materiálu a výrobě prototypů přístrojů klasickým způsobem.

 

 


 

   TU 73, Mira, ok1ufc