Řídicí jednotka rotátoru pro magnetická čidla Autor: Datum:
Ing.Tomáš Pavera / OK2TPQ 8.7.2009
Úvod Popisovaná jednotka slouží hned k několika účelům. Jednotka získává z magnetických čidel údaje o poloze antén, zobrazuje data na displeji, spíná pohony dvou možných rotátorů, zprostředkovává jak ruční ovládaní, tak ovládaní z počítače. Jednotka umožňuje pracovat i s programem KJTlog od Robina OK2UWQ.
Popis funkce Výchozím úkolem pro správnou funkci jednotky je získání korektních dat z jednotlivých magnetických čidel pomocí sběrnice RS-485. Čidel může být na sběrnici připojených celá řada, firmware je však optimalizován pro práci s dvěmi čidly – pro azimut a elevaci, přičemž je možné používat obě osy i samostatně. Při všech datových přenosech se data opatřují kontrolním součtem a tedy riziko chybného údaje je minimální. Údaje přečtené z čidel se zpracovávají a zobrazují na LCD displeji. Jednotka obsahuje relé pro spínání pohonu obou možných rotátorů. Každý směr rotace má k dispozici jeden přepínací kontakt relé. Zpracované údaje je možné načítat rovněž do počítače přes sběrnici RS-232. Připojený počítač má kromě zobrazování a ovládání svou funkci i při nastavování komunikace s čidly, definování mechanických vlastností obou rotátorů či aktualizací firmware jednotky nebo připojených čidel.
Popis zapojení Na schématu, které je zobrazeno dále, je vidět, že zapojení není nijak komplikované. Veškerá elektronika je napájena napětím 5 V, které je získáváno přes osazený lineární stabilizátor 7805. Konektor sběrnice RS-485 pro magnetická čidla obsahuje rovněž dva piny napájení, které není tímto stabilizátorem upravováno a je pouze průchozí. Doporučené napětí magnetických čidel je asi 12 V, proto i napájení řídicí jednotky by mělo být 12 V. Proudové odběry jednotky se pohybují řadově kolem 500 mA v závislosti na vytížení sběrnice RS-485, podsvícení displeje a množství sepnutých relé. Z uvedeného vyplývá, že je nutné na stabilizátor připevnit středně velký chladič, aby nedocházelo k přehřívání stabilizátoru. Centrem celé jednotky je mikrokontrolér ATMega128. Ten byl volen hlavně s ohledem na dostupnost, cenu a zabudovaný dvojitý UART. Je taktován krystalem o kmitočtu 11,0592 MHz. K mikrokontroléru je připojen převodník sběrnice RS-485 75176 s ochrannými diodami pro připojení magnetických čidel, převodník sběrnice RS-232 ST232 pro připojení počítače. Pro zobrazování slouží znakový displej 2x16 nebo 2x20 znaků s řadičem kompatibilním s čipem HD44780. Výstupy jsou ovládány pomocí tranzistorů v zapojení s otevřeným kolektorem, které spínají relé s cívkou 5V. Místo relé je možné osadit propojky a spínat jiné prvky – například optočleny, které jsem použil při úpravě továrního rotátoru Yaesu G-450. K ručnímu ovládání může sloužit konektor CON13. K němu se připojují spínače pro jednotlivé směry otáčení. Další variantou ručního poloautomatického ovládání je inkrementační mechanický kodér PRE30S, který se připojuje ke konektoru CON12. Otáčením kodéru vpravo nebo vlevo se přednastavuje zvolená poloha antén. Stiskem kodéru se volí, zda-li chceme nastavovat azimut nebo elevaci.
Schéma zapojení
Na schématu je znázorněno připojení LCD displej pomocí konektorů. Číslování pinů konektorů a displeje se záměrně kříží, neboť se tím kompenzuje křížení při použití konektorů PFL-16 i na zadní straně displeje. Konektor CON14 je považován za rezervní a osazuje se pouze propojkami mezi piny 1-2 a piny 3-4. Místo těchto pinů se můžou připojit vypínače. Propojení pinů 1-2 má již svůj význam. Rozpojením těchto pinů zakážeme povely pro natáčení rotátoru z počítače. To je užitečné, chceme-li například jednoduše zablokovat pozici antén při trasování drah družic.
Programové vybavení Funkce řídicí jednotky jsou z největší části definované programem v mikrokontroléru. Během sbírání mých zkušeností s programováním se mi osvědčilo použití bootloaderu pro aktualizaci firmwaru. Pro laiky pouze uvádím, že bootloader je program, který zajistí nahrání aplikačního programu prostřednictvím použitých periférií zařízení. Aplikační program se pak stará o hlavní činnost zařízení. V tomto případě je tedy možné kdykoliv prostřednictvím sběrnice RS-232 aktualizovat firmware podle potřeb. Například bude-li třeba doplnit další funkci nebo odstranit chybu. Na rozdíl od magnetických čidlem se v tomto případě používá k prvnímu naprogramování rozhraní JTAG, které je vyvedeno na desce plošných spojů jako konektor CON2. Někomu možná přijde divné, že u čidel se k tomuto účelu používá rozhraní SPI a v této konstrukci rozhraní JTAG. Koneckonců každý si sám může zvolit jaké rozhraní bude využívat. Já jsem to provedl takhle s ohledem na návrh desky plošných spojů a to hlavně protože piny rozhraní SPI pro programování a piny sériového rozhraní pro sběrnici RS-485 se funkčně překrývají. Prostřednictvím JTAG konektoru se tedy bootloader poprvé nahraje. Vše ostatní, co se týče programování, se pak už děje jen prostřednictvím rozhraní RS-232.
Postup programování Program dávám k dispozici veřejnosti, nesmí být však využíván ke komerčním účelům. Na mých webových stránkách v sekci "Ke stažení - Firmware" lze stáhnout kód bootloaderu. Důležité je správně nastavit pojistky mikrokontroléru. Hlavně zvolíme, ať mikrokontrolér využívá externí krystalový oscilátor, dále povolíme funkci watchdogu, bit BOOTRST pro spuštění bootloaderu a velikost bootloaderu 4096 slov (tedy adresu vektoru bootloaderu 0xf000). Na obrázku uvádím přiklad nastavení pojistek v AVR Studiu.
Obrázek 2 – Nastavení pojistek
Po úspěšném naprogramování začne v krátkém intervalu blikat LED osazená přímo na plošném spoji. To znamená, že se zařízení nachází v režimu bootloader. Pokud ten nalezne platný aplikační program, dojde k jeho spuštění. LED v aplikačním režim má již jiný význam. Naprogramování aplikačního programu je pak nutné provést prostřednictvím sběrnice RS232. Je k němu třeba utilita "rs-flash.exe", kterou jsem vytvořil k tomuto účelu a je rovněž ke stažení na stejném místě jako kód bootloaderu. Po spuštění utility zvolíme komunikační port. Dále zapíšeme ID zařízení, se kterým se bude komunikovat. ID jednotky se nikdy nemění a po nahrání bootloaderu je 1. Stisknutím tlačítka "Connect" dojde k připojení k jednotce. Pokud je úspěšné, program rozezná o jaký hardware se jedná a je možné stáhnout prostřednictvím internetu aktuální verzi firmware. To se provede stiskem tlačítka "Download from Internet". Po stažení je již možné zapsat firmware tlačítkem "Flash device". Jakmile je zápis úspěšně ukončen, tlačítkem "Disconnect" se ukončí komunikace s bootloaderem a proběhlo-li doposud vše v pořádku, po pár sekundách dojde k spuštění aplikačního firmware. Kromě programování jednotky samotné je možné i jejím prostřednictvím stejných způsobem programovat čidla polohy připojená na sběrnici RS-485. Stačí pouze vyplnit ID čidla místo ID jednotky. Na displeji se při adresování jiného zařízení objeví nápis s informací, že se zařízení nachází v tzv. „bypass režimu“. V tomto režimu jednotka propojuje kanály mezi sběrnicemi RS-232 a RS-485. Zrušit tento režim lze libovolným ovládacím tlačítkem směru. „Režim bypass“ je možný pouze v aplikačním firmwaru jednotky. Není tedy možné programovat „skrze jednotku“ v době, kdy zařízení „bootuje“.
Popis nastavení Dalo by se říci, že každý anténní systém je unikátní a má různé mechanické vlastnosti. V řídicí jednotce lze proto nastavit některé parametry tak, aby vyhovoval konkrétní situaci. K nastavení je potřeba mít k jednotce připojený počítač s programem „rot_control.exe“.
Obrázek 3 – Nastavení jednotky
Po spuštění programu zvolíme v menu „Nastavení - Port“ komunikační port. Na obrázku 3 je vidět okno, které vyvoláme v menu „Nastavení – Zařízení“. V tomto případě nejsou vyplněné všechny údaje a nejsou povolena tlačítka pro zápis. To je z důvodu, že jsem v daný moment neměl k počítači připojenou jednotku. V první části okna se nacházejí kolonky pro vyplnění ID jednotlivých čidel. Čísla ID jsou potřeba pro rozlišení jednotlivých čidel na společné sběrnici RS-485. Volí se v rozsahu od 2 do 254, přitom nikdy nemůžou mít dvě různá zařízení stejné ID. Výchozí ID hodnoty jsou pro azimut ID = 2 a pro elevaci ID = 3. Magnetická čidla mají po naprogramování bootloaderu výchozí hodnotu ID = 254. Pomocí programu „rs_flash.exe“ lze ID čidel měnit a tedy vše nastavit podle potřeby. Zápisem ID = 0 pro azimut nebo elevaci určíme, který rotátor se nebude používat. V druhé části okna se nacházejí charakteristické konstanty pro definování vlastností rotátoru azimutu. „Citlivost automatiky“ udává minimální rozdíl mezi žádanou a skutečnou hodnotou azimutu, při kterém dojde k rozběhu motoru. Citlivost musí být vždy menší (číselně vetší) než setrvačnost, aby nedošlo ke kmitání automatiky. „Setrvačnost systému [°]“ udává, o kolik stupňů se rotátoru ještě samovolně otočí při vypnutí motoru. Jinak to také znamená, o kolik stupňů dříve se má motor vypnout, aby došlo k přesnějšímu zaměření. „Setrvačnost systému [s]” udává, jak dlouho se bude ještě rotátor samovolně otáčet po vypnutí motoru. Tento údaj definuje, za jak dlouho je možné spustit motor v opačném směru. Zamezuje se tím nadměrnému mechanickému namáhání anténního systému a rotátoru. „Umístění koncového spínače“ udává azimut koncového spínače. Je to hodnota, která nebude a nesmí být nikdy překročena z jakékoliv strany. Pro optimální provoz jednotky je vhodné mít rotátor s koncovými spínači, který má rozsah větší než 360 stupňů a mít azimut koncového spínače nastaven v místě, kde se dráhy jednotlivých směrů rotátoru překrývají.
Obrázek 4 – Optimální rotátor Obrázek 4 znázorňuje popisovanou situaci, kdy je vhodné mít koncový spínač umístěn v blízkosti severu. Jednotka omezuje pohyb rotátoru na 360 stupňů. To protože není možné spolehlivě zabezpečit detekci přetočení magnetických čidel při zapínání a vypínání napájení. Jakmile dojde k přetočení rotátoru mimo pracovní rozsah a zároveň i k vypnutí a zapnutí napájení, není již jednotka schopná určit skutečnou polohu rotátoru.
V další části okna se nachází nastavení parametrů pro elevaci. Význam údajů je stejný jako u azimutu. Rozdíl je v tom, že se nedefinuje poloha koncového spínače, ale maximální pracovní elevace rotátoru. V poslední části okna si můžeme zvolit, jakou má displej připojený k jednotce zobrazovací schopnost. Na obrázku 5 je vidět okno, které vyvoláme v menu „Nastavení – Čidla“.
Obrázek 5 – Kalibrace čidel Okno slouží ke kalibraci čidel. Tu je možné provádět plně programově, což velmi zjednodušuje práci při mechanické montáži. Při programové kalibraci lze čidla nulovat, invertovat nebo zapsat konkrétní hodnotu. V praxi tedy stačí si zjistit kam antény směřují a tuto hodnotu zapsat do čidla. Inverze čidla je funkce, která mění smysl otáčení čidel. Nemusíme tedy při montáži brát ohled na to, jak máme čidlo k rotátoru mechanicky připojeno, pouze musíme zachovat převodový poměr 1:1.
Osazovací plán – strana součástek a strana spojů
Seznam součástek R0_1, R0_2, R0_3,R0_4 R0_5, R0_6 R1,R2,R4,R7,R8,R9,R10 R11,R12,R13,R14,R15,R16 R3 R5,R17,R18 R6,R20,R21 R19 C1,C4,C5,C11,12,13 C2,C3 C6,C7,C8,C9 C10 D1 D2,D3,D4,D5 D6,D7,D8 LED1 Q1 T1,T2,T3,T4 IC1 IC3 IC4 IC6 CH1 CON1 CON2 CON3 CON4 CON6 CON7,CON8,CON9,CON10 CON12,CON13,CON14 K1,K2,K3,K4
0R SMD 1206 0R SMD 1206 4k7 SMD 1206 4k7 SMD 1206 trimr ležatý 5k RM5/5 10R SMD 1206 470R SMD 1206 270R SMD 1206 100nF SMD 1206 27pF SMD 1206 4,7uF/16V SMD tantal 47uF/16V 1N4007 1N4148 ZD 5,6V SMD LED 3mm green krystal 11,0592 MHz BC547 ATMega128-16AU ST232 SMD 7805 75176 SMD V7477 ARK210/2 MLW10G PSH02-04PG MLW16G PSH02-03PG ARK210/3 lámací lišta M15E05CN
Závěrem Konstrukcí magnetických čidel a řídicí jednotky jsem se snažil zpřístupnit všem radioamatérům spolehlivé řízení rotátorů. Využití magnetického snímání polohy přineslo skutečně spolehlivé a časově stále řešení.